From 1e4ca2eb298cd679d86c2d556ed29f3032ddc164 Mon Sep 17 00:00:00 2001 From: elliott-home-pc Date: Thu, 24 Feb 2022 14:27:29 +1100 Subject: [PATCH 01/74] Convert mutation variables type from void to any --- src/plugins/react-query/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/react-query/index.ts b/src/plugins/react-query/index.ts index 1177264d..d95cdbb1 100644 --- a/src/plugins/react-query/index.ts +++ b/src/plugins/react-query/index.ts @@ -16,12 +16,12 @@ const pluginReactQueryOps = ({ ts: `export function useTyped${capitalized}>( ${operation}Key: string | unknown[], ${operation}: TData | ValueTypes[O], - options?: Omit, '${operation}Key' | '${operation}Fn'>, + options?: Omit, '${operation}Key' | '${operation}Fn'>, zeusOptions?: OperationOptions, host = "${host || ''}", hostOptions: chainOptions[1] = {}, ) { - return use${capitalized}(${operation}Key, () => Chain(host, hostOptions)("${operation}")(${operation}, zeusOptions) as Promise, options); + return use${capitalized}(${operation}Key, () => Chain(host, hostOptions)("${operation}")(${operation}, zeusOptions) as Promise, options); }`, }; }; From 50bbd8a308593618f0ff3ef6ebf67b068b1e0f04 Mon Sep 17 00:00:00 2001 From: aexol Date: Tue, 1 Mar 2022 11:00:22 +0100 Subject: [PATCH 02/74] :construction: WIP of implementing new tree --- doc/package.json | 2 +- .../typescript-node-big-schema/package.json | 2 +- .../src/zeus/const.ts | 17105 ++++------------ .../src/zeus/index.ts | 14452 ++++++------- .../src/zeus/reactQuery.ts | 4 +- examples/typescript-node/package.json | 2 +- examples/typescript-node/src/zeus/apollo.ts | 18 +- examples/typescript-node/src/zeus/const.ts | 228 +- examples/typescript-node/src/zeus/index.ts | 978 +- examples/typescript-node/src/zeus/modified.ts | 261 + .../typescript-node/src/zeus/reactQuery.ts | 4 +- examples/typescript-node/zeus.graphql | 116 +- package.json | 2 +- src/Models/DisplayMap.ts | 45 - src/Models/Options.ts | 5 - src/Models/ParserTree.ts | 22 - src/Models/Spec.ts | 93 - src/Models/Types.ts | 35 - src/Models/index.ts | 5 - src/TreeToJSONSchema/index.ts | 27 +- src/TreeToTS/index.ts | 3 +- src/TreeToTS/templates/resolveValueTypes.ts | 67 +- src/TreeToTS/templates/returnedModelTypes.ts | 61 +- src/TreeToTS/templates/returnedPropTypes.ts | 22 +- src/TreeToTS/templates/returnedReturns.ts | 5 +- src/TreeToTS/templates/returnedTypes.ts | 67 +- .../templates/typescript/operations.ts | 3 +- src/__tests__/TreeToTS/Field.spec.ts | 5 +- src/__tests__/TreeToTS/Interface.spec.ts | 5 +- 29 files changed, 11714 insertions(+), 21930 deletions(-) create mode 100644 examples/typescript-node/src/zeus/modified.ts delete mode 100644 src/Models/DisplayMap.ts delete mode 100644 src/Models/Options.ts delete mode 100644 src/Models/ParserTree.ts delete mode 100644 src/Models/Spec.ts delete mode 100644 src/Models/Types.ts diff --git a/doc/package.json b/doc/package.json index 6d3dcb5d..421597b5 100644 --- a/doc/package.json +++ b/doc/package.json @@ -7,7 +7,7 @@ "style": "tailwindcss -i ./input.css -o ./src/tw.css --watch", "dev": "purplehaze", "start": "concurrently \"npm run dev\" \"npm run style\" ", - "build": "purplehaze --build" + "build": "purplehaze --build && echo \"https://zeus.graphqleditor.com\" > out/CNAME" }, "author": "", "license": "ISC", diff --git a/examples/typescript-node-big-schema/package.json b/examples/typescript-node-big-schema/package.json index 13799ec0..ecd32670 100644 --- a/examples/typescript-node-big-schema/package.json +++ b/examples/typescript-node-big-schema/package.json @@ -10,7 +10,7 @@ "license": "ISC", "devDependencies": { "ts-node": "^8.3.0", - "typescript": "3.8.3" + "typescript": "^4.5.5" }, "dependencies": { "@apollo/client": "^3.4.16", diff --git a/examples/typescript-node-big-schema/src/zeus/const.ts b/examples/typescript-node-big-schema/src/zeus/const.ts index ff26098c..ad2d5510 100644 --- a/examples/typescript-node-big-schema/src/zeus/const.ts +++ b/examples/typescript-node-big-schema/src/zeus/const.ts @@ -4,22321 +4,12058 @@ export const AllTypesProps: Record = { _text: "String", _text_comparison_exp:{ _eq:{ - type:"_text", - array:false, - arrayRequired:false, - required:false + type:"_text" }, _gt:{ - type:"_text", - array:false, - arrayRequired:false, - required:false + type:"_text" }, _gte:{ - type:"_text", - array:false, - arrayRequired:false, - required:false + type:"_text" }, _in:{ - type:"_text", - array:true, - arrayRequired:false, - required:true + type:"[_text]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _lt:{ - type:"_text", - array:false, - arrayRequired:false, - required:false + type:"_text" }, _lte:{ - type:"_text", - array:false, - arrayRequired:false, - required:false + type:"_text" }, _neq:{ - type:"_text", - array:false, - arrayRequired:false, - required:false + type:"_text" }, _nin:{ - type:"_text", - array:true, - arrayRequired:false, - required:true + type:"[_text]!" } }, booking:{ lines:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, lines_aggregate:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, metadata:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, relatedBookings:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, relatedBookings_aggregate:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, tags:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, tags_aggregate:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } } }, booking_aggregate_fields:{ count:{ columns:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, booking_aggregate_order_by:{ avg:{ - type:"booking_avg_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_avg_order_by" }, count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"booking_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_max_order_by" }, min:{ - type:"booking_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_min_order_by" }, stddev:{ - type:"booking_stddev_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_stddev_order_by" }, stddev_pop:{ - type:"booking_stddev_pop_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_stddev_pop_order_by" }, stddev_samp:{ - type:"booking_stddev_samp_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_stddev_samp_order_by" }, sum:{ - type:"booking_sum_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_sum_order_by" }, var_pop:{ - type:"booking_var_pop_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_var_pop_order_by" }, var_samp:{ - type:"booking_var_samp_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_var_samp_order_by" }, variance:{ - type:"booking_variance_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_variance_order_by" } }, booking_append_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, booking_arr_rel_insert_input:{ data:{ - type:"booking_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[booking_insert_input!]!" }, on_conflict:{ - type:"booking_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"booking_on_conflict" } }, booking_avg_order_by:{ guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_bool_exp:{ _and:{ - type:"booking_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[booking_bool_exp]!" }, _not:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" }, _or:{ - type:"booking_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[booking_bool_exp]!" }, bookedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, bookerName:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, bookingChannel:{ - type:"booking_channel_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_enum_comparison_exp" }, checkIn:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, checkOut:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, confirmationCode:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, connection:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, connectionId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, currency:{ - type:"currency_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"currency_enum_comparison_exp" }, entity:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" }, entityId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, guestName:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, guests:{ - type:"Int_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Int_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, isOTA:{ - type:"Boolean_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Boolean_comparison_exp" }, lines:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" }, metadata:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, nights:{ - type:"Int_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Int_comparison_exp" }, otaBooking:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" }, otaBookingId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, relatedBookings:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" }, status:{ - type:"booking_status_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_status_enum_comparison_exp" }, tags:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, uniqueRef:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, unit:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" }, unitId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" } }, booking_channel_aggregate_fields:{ count:{ columns:{ - type:"booking_channel_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, booking_channel_bool_exp:{ _and:{ - type:"booking_channel_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_bool_exp]!" }, _not:{ - type:"booking_channel_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_bool_exp" }, _or:{ - type:"booking_channel_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, booking_channel_constraint: "enum", booking_channel_enum: "enum", booking_channel_enum_comparison_exp:{ _eq:{ - type:"booking_channel_enum", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_enum" }, _in:{ - type:"booking_channel_enum", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"booking_channel_enum", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_enum" }, _nin:{ - type:"booking_channel_enum", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_enum]!" } }, booking_channel_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, booking_channel_on_conflict:{ constraint:{ - type:"booking_channel_constraint", - array:false, - arrayRequired:false, - required:true + type:"booking_channel_constraint!" }, update_columns:{ - type:"booking_channel_update_column", - array:true, - arrayRequired:true, - required:true + type:"[booking_channel_update_column!]!" }, where:{ - type:"booking_channel_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_bool_exp" } }, booking_channel_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_channel_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, booking_channel_select_column: "enum", booking_channel_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, booking_channel_update_column: "enum", booking_constraint: "enum", booking_delete_at_path_input:{ metadata:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, booking_delete_elem_input:{ metadata:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, booking_delete_key_input:{ metadata:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, booking_inc_input:{ guests:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, nights:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, booking_insert_input:{ bookedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, bookerName:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, bookingChannel:{ - type:"booking_channel_enum", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_enum" }, checkIn:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, checkOut:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, confirmationCode:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, connection:{ - type:"connection_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_obj_rel_insert_input" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, currency:{ - type:"currency_enum", - array:false, - arrayRequired:false, - required:false + type:"currency_enum" }, entity:{ - type:"entity_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"entity_obj_rel_insert_input" }, entityId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, guestName:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, guests:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, isOTA:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, lines:{ - type:"line_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"line_arr_rel_insert_input" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, nights:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, otaBooking:{ - type:"booking_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"booking_obj_rel_insert_input" }, otaBookingId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, relatedBookings:{ - type:"booking_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"booking_arr_rel_insert_input" }, status:{ - type:"booking_status_enum", - array:false, - arrayRequired:false, - required:false + type:"booking_status_enum" }, tags:{ - type:"tag_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"tag_arr_rel_insert_input" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, unit:{ - type:"unit_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"unit_obj_rel_insert_input" }, unitId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, booking_max_order_by:{ bookedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, bookerName:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, checkIn:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, checkOut:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, confirmationCode:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, guestName:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, otaBookingId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_min_order_by:{ bookedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, bookerName:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, checkIn:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, checkOut:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, confirmationCode:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, guestName:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, otaBookingId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_obj_rel_insert_input:{ data:{ - type:"booking_insert_input", - array:false, - arrayRequired:false, - required:true + type:"booking_insert_input!" }, on_conflict:{ - type:"booking_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"booking_on_conflict" } }, booking_on_conflict:{ constraint:{ - type:"booking_constraint", - array:false, - arrayRequired:false, - required:true + type:"booking_constraint!" }, update_columns:{ - type:"booking_update_column", - array:true, - arrayRequired:true, - required:true + type:"[booking_update_column!]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, booking_order_by:{ bookedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, bookerName:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, bookingChannel:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, checkIn:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, checkOut:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, confirmationCode:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connection:{ - type:"connection_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, currency:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entity:{ - type:"entity_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_order_by" }, entityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, guestName:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, isOTA:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, lines_aggregate:{ - type:"line_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_aggregate_order_by" }, metadata:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, otaBooking:{ - type:"booking_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_order_by" }, otaBookingId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, relatedBookings_aggregate:{ - type:"booking_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_aggregate_order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, tags_aggregate:{ - type:"tag_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"tag_aggregate_order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unit:{ - type:"unit_order_by", - array:false, - arrayRequired:false, - required:false + type:"unit_order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, booking_prepend_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, booking_select_column: "enum", booking_set_input:{ bookedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, bookerName:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, bookingChannel:{ - type:"booking_channel_enum", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_enum" }, checkIn:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, checkOut:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, confirmationCode:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, currency:{ - type:"currency_enum", - array:false, - arrayRequired:false, - required:false + type:"currency_enum" }, entityId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, guestName:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, guests:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, isOTA:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, nights:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, otaBookingId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, status:{ - type:"booking_status_enum", - array:false, - arrayRequired:false, - required:false + type:"booking_status_enum" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, unitId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, booking_status_enum: "enum", booking_status_enum_comparison_exp:{ _eq:{ - type:"booking_status_enum", - array:false, - arrayRequired:false, - required:false + type:"booking_status_enum" }, _in:{ - type:"booking_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[booking_status_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"booking_status_enum", - array:false, - arrayRequired:false, - required:false + type:"booking_status_enum" }, _nin:{ - type:"booking_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[booking_status_enum]!" } }, booking_stddev_order_by:{ guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_stddev_pop_order_by:{ guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_stddev_samp_order_by:{ guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_sum_order_by:{ guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_update_column: "enum", booking_var_pop_order_by:{ guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_var_samp_order_by:{ guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, booking_variance_order_by:{ guests:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, nights:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, bookingStatus_aggregate_fields:{ count:{ columns:{ - type:"bookingStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, bookingStatus_bool_exp:{ _and:{ - type:"bookingStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_bool_exp]!" }, _not:{ - type:"bookingStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_bool_exp" }, _or:{ - type:"bookingStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, bookingStatus_constraint: "enum", bookingStatus_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, bookingStatus_on_conflict:{ constraint:{ - type:"bookingStatus_constraint", - array:false, - arrayRequired:false, - required:true + type:"bookingStatus_constraint!" }, update_columns:{ - type:"bookingStatus_update_column", - array:true, - arrayRequired:true, - required:true + type:"[bookingStatus_update_column!]!" }, where:{ - type:"bookingStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_bool_exp" } }, bookingStatus_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, bookingStatus_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, bookingStatus_select_column: "enum", bookingStatus_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, bookingStatus_update_column: "enum", Boolean_comparison_exp:{ _eq:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _gt:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _gte:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _in:{ - type:"Boolean", - array:true, - arrayRequired:false, - required:true + type:"[Boolean]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _lt:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _lte:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _nin:{ - type:"Boolean", - array:true, - arrayRequired:false, - required:true + type:"[Boolean]!" } }, classification_aggregate_fields:{ count:{ columns:{ - type:"classification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[classification_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, classification_bool_exp:{ _and:{ - type:"classification_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[classification_bool_exp]!" }, _not:{ - type:"classification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"classification_bool_exp" }, _or:{ - type:"classification_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[classification_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, classification_constraint: "enum", classification_enum: "enum", classification_enum_comparison_exp:{ _eq:{ - type:"classification_enum", - array:false, - arrayRequired:false, - required:false + type:"classification_enum" }, _in:{ - type:"classification_enum", - array:true, - arrayRequired:false, - required:true + type:"[classification_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"classification_enum", - array:false, - arrayRequired:false, - required:false + type:"classification_enum" }, _nin:{ - type:"classification_enum", - array:true, - arrayRequired:false, - required:true + type:"[classification_enum]!" } }, classification_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, classification_on_conflict:{ constraint:{ - type:"classification_constraint", - array:false, - arrayRequired:false, - required:true + type:"classification_constraint!" }, update_columns:{ - type:"classification_update_column", - array:true, - arrayRequired:true, - required:true + type:"[classification_update_column!]!" }, where:{ - type:"classification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"classification_bool_exp" } }, classification_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, classification_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, classification_select_column: "enum", classification_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, classification_update_column: "enum", connection:{ bookings:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, bookings_aggregate:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, credentials:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, entities:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, entities_aggregate:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, jobs:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, jobs_aggregate:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, lines:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, lines_aggregate:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, metrics:{ distinct_on:{ - type:"metric_select_column", - array:true, - arrayRequired:false, - required:true + type:"[metric_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"metric_order_by", - array:true, - arrayRequired:false, - required:true + type:"[metric_order_by]!" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" } }, metrics_aggregate:{ distinct_on:{ - type:"metric_select_column", - array:true, - arrayRequired:false, - required:true + type:"[metric_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"metric_order_by", - array:true, - arrayRequired:false, - required:true + type:"[metric_order_by]!" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" } }, payments:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, payments_aggregate:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, persistentState:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, tags:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, tags_aggregate:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, units:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } }, units_aggregate:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } } }, connection_aggregate_fields:{ count:{ columns:{ - type:"connection_select_column", - array:true, - arrayRequired:false, - required:true + type:"[connection_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, connection_aggregate_order_by:{ count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"connection_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_max_order_by" }, min:{ - type:"connection_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_min_order_by" } }, connection_append_input:{ credentials:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, persistentState:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, connection_arr_rel_insert_input:{ data:{ - type:"connection_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[connection_insert_input!]!" }, on_conflict:{ - type:"connection_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"connection_on_conflict" } }, connection_bool_exp:{ _and:{ - type:"connection_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[connection_bool_exp]!" }, _not:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, _or:{ - type:"connection_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[connection_bool_exp]!" }, bookings:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, credentials:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, entities:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, integration:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" }, integrationId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, jobs:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" }, lines:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" }, metrics:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, payments:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" }, persistentState:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, status:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, tags:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, units:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" }, webhookKey:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, connection_constraint: "enum", connection_delete_at_path_input:{ credentials:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, persistentState:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, connection_delete_elem_input:{ credentials:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, persistentState:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, connection_delete_key_input:{ credentials:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, persistentState:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, connection_insert_input:{ bookings:{ - type:"booking_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"booking_arr_rel_insert_input" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, credentials:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, entities:{ - type:"entity_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"entity_arr_rel_insert_input" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, integration:{ - type:"integration_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"integration_obj_rel_insert_input" }, integrationId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, jobs:{ - type:"job_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"job_arr_rel_insert_input" }, lines:{ - type:"line_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"line_arr_rel_insert_input" }, metrics:{ - type:"metric_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"metric_arr_rel_insert_input" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, payments:{ - type:"payment_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"payment_arr_rel_insert_input" }, persistentState:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, status:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, tags:{ - type:"tag_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"tag_arr_rel_insert_input" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, units:{ - type:"unit_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"unit_arr_rel_insert_input" }, webhookKey:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, connection_max_order_by:{ createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, webhookKey:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, connection_min_order_by:{ createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, webhookKey:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, connection_obj_rel_insert_input:{ data:{ - type:"connection_insert_input", - array:false, - arrayRequired:false, - required:true + type:"connection_insert_input!" }, on_conflict:{ - type:"connection_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"connection_on_conflict" } }, connection_on_conflict:{ constraint:{ - type:"connection_constraint", - array:false, - arrayRequired:false, - required:true + type:"connection_constraint!" }, update_columns:{ - type:"connection_update_column", - array:true, - arrayRequired:true, - required:true + type:"[connection_update_column!]!" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" } }, connection_order_by:{ bookings_aggregate:{ - type:"booking_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_aggregate_order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, credentials:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entities_aggregate:{ - type:"entity_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_aggregate_order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integration:{ - type:"integration_order_by", - array:false, - arrayRequired:false, - required:false + type:"integration_order_by" }, integrationId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, jobs_aggregate:{ - type:"job_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"job_aggregate_order_by" }, lines_aggregate:{ - type:"line_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_aggregate_order_by" }, metrics_aggregate:{ - type:"metric_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_aggregate_order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, payments_aggregate:{ - type:"payment_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_aggregate_order_by" }, persistentState:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, tags_aggregate:{ - type:"tag_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"tag_aggregate_order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, units_aggregate:{ - type:"unit_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"unit_aggregate_order_by" }, webhookKey:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, connection_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, connection_prepend_input:{ credentials:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, persistentState:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, connection_select_column: "enum", connection_set_input:{ createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, credentials:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, integrationId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, persistentState:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, status:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, webhookKey:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, connection_update_column: "enum", currency_aggregate_fields:{ count:{ columns:{ - type:"currency_select_column", - array:true, - arrayRequired:false, - required:true + type:"[currency_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, currency_bool_exp:{ _and:{ - type:"currency_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[currency_bool_exp]!" }, _not:{ - type:"currency_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"currency_bool_exp" }, _or:{ - type:"currency_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[currency_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, currency_constraint: "enum", currency_enum: "enum", currency_enum_comparison_exp:{ _eq:{ - type:"currency_enum", - array:false, - arrayRequired:false, - required:false + type:"currency_enum" }, _in:{ - type:"currency_enum", - array:true, - arrayRequired:false, - required:true + type:"[currency_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"currency_enum", - array:false, - arrayRequired:false, - required:false + type:"currency_enum" }, _nin:{ - type:"currency_enum", - array:true, - arrayRequired:false, - required:true + type:"[currency_enum]!" } }, currency_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, currency_on_conflict:{ constraint:{ - type:"currency_constraint", - array:false, - arrayRequired:false, - required:true + type:"currency_constraint!" }, update_columns:{ - type:"currency_update_column", - array:true, - arrayRequired:true, - required:true + type:"[currency_update_column!]!" }, where:{ - type:"currency_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"currency_bool_exp" } }, currency_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, currency_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, currency_select_column: "enum", currency_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, currency_update_column: "enum", entity:{ bookings:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, bookings_aggregate:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, diffJson:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, json:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, normalizedJson:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, payments:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, payments_aggregate:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, successorEntities:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, successorEntities_aggregate:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, units:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } }, units_aggregate:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } } }, entity_aggregate_fields:{ count:{ columns:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, entity_aggregate_order_by:{ count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"entity_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_max_order_by" }, min:{ - type:"entity_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_min_order_by" } }, entity_append_input:{ diffJson:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, json:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, normalizedJson:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, entity_arr_rel_insert_input:{ data:{ - type:"entity_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[entity_insert_input!]!" }, on_conflict:{ - type:"entity_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"entity_on_conflict" } }, entity_bool_exp:{ _and:{ - type:"entity_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[entity_bool_exp]!" }, _not:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" }, _or:{ - type:"entity_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[entity_bool_exp]!" }, bookings:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" }, connection:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, connectionId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, description:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, diffJson:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, hash:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, job:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" }, jobId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, json:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, normalizedJson:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, normalizedType:{ - type:"normalized_type_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"normalized_type_enum_comparison_exp" }, parsedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, payments:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" }, predecessorEntity:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" }, predecessorEntityId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, status:{ - type:"entity_status_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_status_enum_comparison_exp" }, statusText:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, successorEntities:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, type:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, uniqueRef:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, units:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" } }, entity_constraint: "enum", entity_delete_at_path_input:{ diffJson:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, json:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, normalizedJson:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, entity_delete_elem_input:{ diffJson:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, json:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, normalizedJson:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, entity_delete_key_input:{ diffJson:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, json:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, normalizedJson:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, entity_insert_input:{ bookings:{ - type:"booking_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"booking_arr_rel_insert_input" }, connection:{ - type:"connection_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_obj_rel_insert_input" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, description:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, diffJson:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, hash:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, job:{ - type:"job_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"job_obj_rel_insert_input" }, jobId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, json:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, normalizedJson:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, normalizedType:{ - type:"normalized_type_enum", - array:false, - arrayRequired:false, - required:false + type:"normalized_type_enum" }, parsedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, payments:{ - type:"payment_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"payment_arr_rel_insert_input" }, predecessorEntity:{ - type:"entity_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"entity_obj_rel_insert_input" }, predecessorEntityId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, status:{ - type:"entity_status_enum", - array:false, - arrayRequired:false, - required:false + type:"entity_status_enum" }, statusText:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, successorEntities:{ - type:"entity_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"entity_arr_rel_insert_input" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, units:{ - type:"unit_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"unit_arr_rel_insert_input" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, entity_max_order_by:{ connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, description:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, hash:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, jobId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, parsedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, predecessorEntityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, statusText:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, entity_min_order_by:{ connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, description:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, hash:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, jobId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, parsedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, predecessorEntityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, statusText:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, entity_obj_rel_insert_input:{ data:{ - type:"entity_insert_input", - array:false, - arrayRequired:false, - required:true + type:"entity_insert_input!" }, on_conflict:{ - type:"entity_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"entity_on_conflict" } }, entity_on_conflict:{ constraint:{ - type:"entity_constraint", - array:false, - arrayRequired:false, - required:true + type:"entity_constraint!" }, update_columns:{ - type:"entity_update_column", - array:true, - arrayRequired:true, - required:true + type:"[entity_update_column!]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, entity_order_by:{ bookings_aggregate:{ - type:"booking_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_aggregate_order_by" }, connection:{ - type:"connection_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, description:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, diffJson:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, hash:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, job:{ - type:"job_order_by", - array:false, - arrayRequired:false, - required:false + type:"job_order_by" }, jobId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, json:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, normalizedJson:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, normalizedType:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, parsedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, payments_aggregate:{ - type:"payment_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_aggregate_order_by" }, predecessorEntity:{ - type:"entity_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_order_by" }, predecessorEntityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, statusText:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, successorEntities_aggregate:{ - type:"entity_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_aggregate_order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, units_aggregate:{ - type:"unit_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"unit_aggregate_order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, entity_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, entity_prepend_input:{ diffJson:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, json:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, normalizedJson:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, entity_select_column: "enum", entity_set_input:{ connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, description:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, diffJson:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, hash:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, jobId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, json:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, normalizedJson:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, normalizedType:{ - type:"normalized_type_enum", - array:false, - arrayRequired:false, - required:false + type:"normalized_type_enum" }, parsedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, predecessorEntityId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, status:{ - type:"entity_status_enum", - array:false, - arrayRequired:false, - required:false + type:"entity_status_enum" }, statusText:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, entity_status_enum: "enum", entity_status_enum_comparison_exp:{ _eq:{ - type:"entity_status_enum", - array:false, - arrayRequired:false, - required:false + type:"entity_status_enum" }, _in:{ - type:"entity_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[entity_status_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"entity_status_enum", - array:false, - arrayRequired:false, - required:false + type:"entity_status_enum" }, _nin:{ - type:"entity_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[entity_status_enum]!" } }, entity_update_column: "enum", entityStatus_aggregate_fields:{ count:{ columns:{ - type:"entityStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, entityStatus_bool_exp:{ _and:{ - type:"entityStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_bool_exp]!" }, _not:{ - type:"entityStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_bool_exp" }, _or:{ - type:"entityStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, entityStatus_constraint: "enum", entityStatus_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, entityStatus_on_conflict:{ constraint:{ - type:"entityStatus_constraint", - array:false, - arrayRequired:false, - required:true + type:"entityStatus_constraint!" }, update_columns:{ - type:"entityStatus_update_column", - array:true, - arrayRequired:true, - required:true + type:"[entityStatus_update_column!]!" }, where:{ - type:"entityStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_bool_exp" } }, entityStatus_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, entityStatus_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, entityStatus_select_column: "enum", entityStatus_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, entityStatus_update_column: "enum", float8: "String", float8_comparison_exp:{ _eq:{ - type:"float8", - array:false, - arrayRequired:false, - required:false + type:"float8" }, _gt:{ - type:"float8", - array:false, - arrayRequired:false, - required:false + type:"float8" }, _gte:{ - type:"float8", - array:false, - arrayRequired:false, - required:false + type:"float8" }, _in:{ - type:"float8", - array:true, - arrayRequired:false, - required:true + type:"[float8]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _lt:{ - type:"float8", - array:false, - arrayRequired:false, - required:false + type:"float8" }, _lte:{ - type:"float8", - array:false, - arrayRequired:false, - required:false + type:"float8" }, _neq:{ - type:"float8", - array:false, - arrayRequired:false, - required:false + type:"float8" }, _nin:{ - type:"float8", - array:true, - arrayRequired:false, - required:true + type:"[float8]!" } }, Int_comparison_exp:{ _eq:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, _gt:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, _gte:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, _in:{ - type:"Int", - array:true, - arrayRequired:false, - required:true + type:"[Int]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _lt:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, _lte:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, _neq:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, _nin:{ - type:"Int", - array:true, - arrayRequired:false, - required:true + type:"[Int]!" } }, integration:{ connections:{ distinct_on:{ - type:"connection_select_column", - array:true, - arrayRequired:false, - required:true + type:"[connection_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"connection_order_by", - array:true, - arrayRequired:false, - required:true + type:"[connection_order_by]!" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" } }, connections_aggregate:{ distinct_on:{ - type:"connection_select_column", - array:true, - arrayRequired:false, - required:true + type:"[connection_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"connection_order_by", - array:true, - arrayRequired:false, - required:true + type:"[connection_order_by]!" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" } }, jobs:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, jobs_aggregate:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } } }, integration_aggregate_fields:{ count:{ columns:{ - type:"integration_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integration_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, integration_aggregate_order_by:{ count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"integration_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"integration_max_order_by" }, min:{ - type:"integration_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"integration_min_order_by" } }, integration_arr_rel_insert_input:{ data:{ - type:"integration_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[integration_insert_input!]!" }, on_conflict:{ - type:"integration_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"integration_on_conflict" } }, integration_bool_exp:{ _and:{ - type:"integration_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[integration_bool_exp]!" }, _not:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" }, _or:{ - type:"integration_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[integration_bool_exp]!" }, apiDevUrl:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, apiUrl:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, connections:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, icon:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, isApproved:{ - type:"Boolean_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Boolean_comparison_exp" }, isPrivate:{ - type:"Boolean_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Boolean_comparison_exp" }, jobs:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, type:{ - type:"integration_type_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_type_enum_comparison_exp" }, uniqueRef:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, integration_constraint: "enum", integration_insert_input:{ apiDevUrl:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, apiUrl:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, connections:{ - type:"connection_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_arr_rel_insert_input" }, icon:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, isApproved:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, isPrivate:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, jobs:{ - type:"job_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"job_arr_rel_insert_input" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"integration_type_enum", - array:false, - arrayRequired:false, - required:false + type:"integration_type_enum" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, integration_max_order_by:{ apiDevUrl:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, apiUrl:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, icon:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, integration_min_order_by:{ apiDevUrl:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, apiUrl:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, icon:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, integration_obj_rel_insert_input:{ data:{ - type:"integration_insert_input", - array:false, - arrayRequired:false, - required:true + type:"integration_insert_input!" }, on_conflict:{ - type:"integration_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"integration_on_conflict" } }, integration_on_conflict:{ constraint:{ - type:"integration_constraint", - array:false, - arrayRequired:false, - required:true + type:"integration_constraint!" }, update_columns:{ - type:"integration_update_column", - array:true, - arrayRequired:true, - required:true + type:"[integration_update_column!]!" }, where:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" } }, integration_order_by:{ apiDevUrl:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, apiUrl:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connections_aggregate:{ - type:"connection_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_aggregate_order_by" }, icon:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, isApproved:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, isPrivate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, jobs_aggregate:{ - type:"job_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"job_aggregate_order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, integration_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, integration_select_column: "enum", integration_set_input:{ apiDevUrl:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, apiUrl:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, icon:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, isApproved:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, isPrivate:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"integration_type_enum", - array:false, - arrayRequired:false, - required:false + type:"integration_type_enum" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, integration_type_enum: "enum", integration_type_enum_comparison_exp:{ _eq:{ - type:"integration_type_enum", - array:false, - arrayRequired:false, - required:false + type:"integration_type_enum" }, _in:{ - type:"integration_type_enum", - array:true, - arrayRequired:false, - required:true + type:"[integration_type_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"integration_type_enum", - array:false, - arrayRequired:false, - required:false + type:"integration_type_enum" }, _nin:{ - type:"integration_type_enum", - array:true, - arrayRequired:false, - required:true + type:"[integration_type_enum]!" } }, integration_update_column: "enum", integrationType_aggregate_fields:{ count:{ columns:{ - type:"integrationType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, integrationType_bool_exp:{ _and:{ - type:"integrationType_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_bool_exp]!" }, _not:{ - type:"integrationType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integrationType_bool_exp" }, _or:{ - type:"integrationType_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, integrationType_constraint: "enum", integrationType_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, integrationType_on_conflict:{ constraint:{ - type:"integrationType_constraint", - array:false, - arrayRequired:false, - required:true + type:"integrationType_constraint!" }, update_columns:{ - type:"integrationType_update_column", - array:true, - arrayRequired:true, - required:true + type:"[integrationType_update_column!]!" }, where:{ - type:"integrationType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integrationType_bool_exp" } }, integrationType_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, integrationType_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, integrationType_select_column: "enum", integrationType_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, integrationType_update_column: "enum", issue:{ requestParams:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, resolveParams:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } } }, issue_aggregate_fields:{ count:{ columns:{ - type:"issue_select_column", - array:true, - arrayRequired:false, - required:true + type:"[issue_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, issue_aggregate_order_by:{ count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"issue_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"issue_max_order_by" }, min:{ - type:"issue_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"issue_min_order_by" } }, issue_append_input:{ requestParams:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, resolveParams:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, issue_arr_rel_insert_input:{ data:{ - type:"issue_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[issue_insert_input!]!" }, on_conflict:{ - type:"issue_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"issue_on_conflict" } }, issue_bool_exp:{ _and:{ - type:"issue_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[issue_bool_exp]!" }, _not:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" }, _or:{ - type:"issue_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[issue_bool_exp]!" }, code:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, isPublic:{ - type:"Boolean_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Boolean_comparison_exp" }, isResolved:{ - type:"Boolean_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Boolean_comparison_exp" }, job:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" }, jobId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, message:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, requestParams:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, resolveParams:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, type:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" } }, issue_constraint: "enum", issue_delete_at_path_input:{ requestParams:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, resolveParams:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, issue_delete_elem_input:{ requestParams:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, resolveParams:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, issue_delete_key_input:{ requestParams:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, resolveParams:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, issue_insert_input:{ code:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, isPublic:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, isResolved:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, job:{ - type:"job_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"job_obj_rel_insert_input" }, jobId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, message:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, requestParams:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, resolveParams:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, issue_max_order_by:{ code:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, jobId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, message:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, issue_min_order_by:{ code:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, jobId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, message:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, issue_on_conflict:{ constraint:{ - type:"issue_constraint", - array:false, - arrayRequired:false, - required:true + type:"issue_constraint!" }, update_columns:{ - type:"issue_update_column", - array:true, - arrayRequired:true, - required:true + type:"[issue_update_column!]!" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" } }, issue_order_by:{ code:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, isPublic:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, isResolved:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, job:{ - type:"job_order_by", - array:false, - arrayRequired:false, - required:false + type:"job_order_by" }, jobId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, message:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, requestParams:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, resolveParams:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, issue_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, issue_prepend_input:{ requestParams:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, resolveParams:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, issue_select_column: "enum", issue_set_input:{ code:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, isPublic:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, isResolved:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, jobId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, message:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, requestParams:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, resolveParams:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, issue_update_column: "enum", job:{ entities:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, entities_aggregate:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, issues:{ distinct_on:{ - type:"issue_select_column", - array:true, - arrayRequired:false, - required:true + type:"[issue_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"issue_order_by", - array:true, - arrayRequired:false, - required:true + type:"[issue_order_by]!" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" } }, issues_aggregate:{ distinct_on:{ - type:"issue_select_column", - array:true, - arrayRequired:false, - required:true + type:"[issue_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"issue_order_by", - array:true, - arrayRequired:false, - required:true + type:"[issue_order_by]!" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" } }, logs:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, params:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, response:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } } }, job_aggregate_fields:{ count:{ columns:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, job_aggregate_order_by:{ count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"job_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"job_max_order_by" }, min:{ - type:"job_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"job_min_order_by" } }, job_append_input:{ logs:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, params:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, response:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, job_arr_rel_insert_input:{ data:{ - type:"job_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[job_insert_input!]!" }, on_conflict:{ - type:"job_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"job_on_conflict" } }, job_bool_exp:{ _and:{ - type:"job_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[job_bool_exp]!" }, _not:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" }, _or:{ - type:"job_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[job_bool_exp]!" }, apiVersion:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, connection:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, connectionId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, endedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, entities:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, integration:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" }, integrationId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, integrationSdkVersion:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, integrationVersion:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, issues:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" }, logFile:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, logLink:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, logs:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, method:{ - type:"job_method_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"job_method_enum_comparison_exp" }, params:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, requestId:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, response:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, sdkVersion:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, startedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, status:{ - type:"job_status_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"job_status_enum_comparison_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" } }, job_constraint: "enum", job_delete_at_path_input:{ logs:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, params:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, response:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, job_delete_elem_input:{ logs:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, params:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, response:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, job_delete_key_input:{ logs:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, params:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, response:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, job_insert_input:{ apiVersion:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, connection:{ - type:"connection_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_obj_rel_insert_input" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, endedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, entities:{ - type:"entity_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"entity_arr_rel_insert_input" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, integration:{ - type:"integration_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"integration_obj_rel_insert_input" }, integrationId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, integrationSdkVersion:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, integrationVersion:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, issues:{ - type:"issue_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"issue_arr_rel_insert_input" }, logFile:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, logLink:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, logs:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, method:{ - type:"job_method_enum", - array:false, - arrayRequired:false, - required:false + type:"job_method_enum" }, params:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, requestId:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, response:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, sdkVersion:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, startedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, status:{ - type:"job_status_enum", - array:false, - arrayRequired:false, - required:false + type:"job_status_enum" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, job_max_order_by:{ apiVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, endedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationSdkVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, logFile:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, logLink:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, requestId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, sdkVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, startedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, job_method_enum: "enum", job_method_enum_comparison_exp:{ _eq:{ - type:"job_method_enum", - array:false, - arrayRequired:false, - required:false + type:"job_method_enum" }, _in:{ - type:"job_method_enum", - array:true, - arrayRequired:false, - required:true + type:"[job_method_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"job_method_enum", - array:false, - arrayRequired:false, - required:false + type:"job_method_enum" }, _nin:{ - type:"job_method_enum", - array:true, - arrayRequired:false, - required:true + type:"[job_method_enum]!" } }, job_min_order_by:{ apiVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, endedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationSdkVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, logFile:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, logLink:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, requestId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, sdkVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, startedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, job_obj_rel_insert_input:{ data:{ - type:"job_insert_input", - array:false, - arrayRequired:false, - required:true + type:"job_insert_input!" }, on_conflict:{ - type:"job_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"job_on_conflict" } }, job_on_conflict:{ constraint:{ - type:"job_constraint", - array:false, - arrayRequired:false, - required:true + type:"job_constraint!" }, update_columns:{ - type:"job_update_column", - array:true, - arrayRequired:true, - required:true + type:"[job_update_column!]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, job_order_by:{ apiVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connection:{ - type:"connection_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, endedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entities_aggregate:{ - type:"entity_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_aggregate_order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integration:{ - type:"integration_order_by", - array:false, - arrayRequired:false, - required:false + type:"integration_order_by" }, integrationId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationSdkVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrationVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, issues_aggregate:{ - type:"issue_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"issue_aggregate_order_by" }, logFile:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, logLink:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, logs:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, method:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, params:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, requestId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, response:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, sdkVersion:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, startedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, job_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, job_prepend_input:{ logs:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, params:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, response:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, job_select_column: "enum", job_set_input:{ apiVersion:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, endedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, integrationId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, integrationSdkVersion:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, integrationVersion:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, logFile:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, logLink:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, logs:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, method:{ - type:"job_method_enum", - array:false, - arrayRequired:false, - required:false + type:"job_method_enum" }, params:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, requestId:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, response:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, sdkVersion:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, startedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, status:{ - type:"job_status_enum", - array:false, - arrayRequired:false, - required:false + type:"job_status_enum" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, job_status_enum: "enum", job_status_enum_comparison_exp:{ _eq:{ - type:"job_status_enum", - array:false, - arrayRequired:false, - required:false + type:"job_status_enum" }, _in:{ - type:"job_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[job_status_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"job_status_enum", - array:false, - arrayRequired:false, - required:false + type:"job_status_enum" }, _nin:{ - type:"job_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[job_status_enum]!" } }, job_update_column: "enum", jobMethod_aggregate_fields:{ count:{ columns:{ - type:"jobMethod_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, jobMethod_bool_exp:{ _and:{ - type:"jobMethod_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_bool_exp]!" }, _not:{ - type:"jobMethod_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_bool_exp" }, _or:{ - type:"jobMethod_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, jobMethod_constraint: "enum", jobMethod_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, jobMethod_on_conflict:{ constraint:{ - type:"jobMethod_constraint", - array:false, - arrayRequired:false, - required:true + type:"jobMethod_constraint!" }, update_columns:{ - type:"jobMethod_update_column", - array:true, - arrayRequired:true, - required:true + type:"[jobMethod_update_column!]!" }, where:{ - type:"jobMethod_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_bool_exp" } }, jobMethod_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, jobMethod_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, jobMethod_select_column: "enum", jobMethod_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, jobMethod_update_column: "enum", jobStatus_aggregate_fields:{ count:{ columns:{ - type:"jobStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, jobStatus_bool_exp:{ _and:{ - type:"jobStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_bool_exp]!" }, _not:{ - type:"jobStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_bool_exp" }, _or:{ - type:"jobStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, jobStatus_constraint: "enum", jobStatus_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, jobStatus_on_conflict:{ constraint:{ - type:"jobStatus_constraint", - array:false, - arrayRequired:false, - required:true + type:"jobStatus_constraint!" }, update_columns:{ - type:"jobStatus_update_column", - array:true, - arrayRequired:true, - required:true + type:"[jobStatus_update_column!]!" }, where:{ - type:"jobStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_bool_exp" } }, jobStatus_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, jobStatus_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, jobStatus_select_column: "enum", jobStatus_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, jobStatus_update_column: "enum", jsonb: "String", jsonb_comparison_exp:{ _contained_in:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, _contains:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, _eq:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, _gt:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, _gte:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, _has_key:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _has_keys_all:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, _has_keys_any:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, _in:{ - type:"jsonb", - array:true, - arrayRequired:false, - required:true + type:"[jsonb]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _lt:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, _lte:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, _neq:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, _nin:{ - type:"jsonb", - array:true, - arrayRequired:false, - required:true + type:"[jsonb]!" } }, line:{ enhancementLines:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, enhancementLines_aggregate:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, metadata:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } } }, line_aggregate_fields:{ count:{ columns:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, line_aggregate_order_by:{ avg:{ - type:"line_avg_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_avg_order_by" }, count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"line_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_max_order_by" }, min:{ - type:"line_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_min_order_by" }, stddev:{ - type:"line_stddev_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_stddev_order_by" }, stddev_pop:{ - type:"line_stddev_pop_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_stddev_pop_order_by" }, stddev_samp:{ - type:"line_stddev_samp_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_stddev_samp_order_by" }, sum:{ - type:"line_sum_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_sum_order_by" }, var_pop:{ - type:"line_var_pop_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_var_pop_order_by" }, var_samp:{ - type:"line_var_samp_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_var_samp_order_by" }, variance:{ - type:"line_variance_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_variance_order_by" } }, line_append_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, line_arr_rel_insert_input:{ data:{ - type:"line_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[line_insert_input!]!" }, on_conflict:{ - type:"line_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"line_on_conflict" } }, line_avg_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_bool_exp:{ _and:{ - type:"line_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[line_bool_exp]!" }, _not:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" }, _or:{ - type:"line_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[line_bool_exp]!" }, booking:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" }, bookingId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, centTotal:{ - type:"Int_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Int_comparison_exp" }, classification:{ - type:"classification_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"classification_enum_comparison_exp" }, connection:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, connectionId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, description:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, enhancementLines:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" }, enhancingLine:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" }, enhancingLineId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, invoiceStatus:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, isEnhanced:{ - type:"Boolean_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Boolean_comparison_exp" }, metadata:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, originCentTotal:{ - type:"Int_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Int_comparison_exp" }, originCurrency:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, originExchangeRate:{ - type:"numeric_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"numeric_comparison_exp" }, payment:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" }, paymentId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, subclassification:{ - type:"subclassification_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"subclassification_enum_comparison_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, type:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, uniqueRef:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, unitId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" } }, line_constraint: "enum", line_delete_at_path_input:{ metadata:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, line_delete_elem_input:{ metadata:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, line_delete_key_input:{ metadata:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, line_inc_input:{ centTotal:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, originCentTotal:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, originExchangeRate:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" } }, line_insert_input:{ booking:{ - type:"booking_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"booking_obj_rel_insert_input" }, bookingId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, centTotal:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, classification:{ - type:"classification_enum", - array:false, - arrayRequired:false, - required:false + type:"classification_enum" }, connection:{ - type:"connection_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_obj_rel_insert_input" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, description:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, enhancementLines:{ - type:"line_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"line_arr_rel_insert_input" }, enhancingLine:{ - type:"line_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"line_obj_rel_insert_input" }, enhancingLineId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, invoiceStatus:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, isEnhanced:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, originCentTotal:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, originCurrency:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, originExchangeRate:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, payment:{ - type:"payment_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"payment_obj_rel_insert_input" }, paymentId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, subclassification:{ - type:"subclassification_enum", - array:false, - arrayRequired:false, - required:false + type:"subclassification_enum" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, unitId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, line_max_order_by:{ bookingId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, description:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, enhancingLineId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, invoiceStatus:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCurrency:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, paymentId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_min_order_by:{ bookingId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, description:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, enhancingLineId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, invoiceStatus:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCurrency:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, paymentId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_obj_rel_insert_input:{ data:{ - type:"line_insert_input", - array:false, - arrayRequired:false, - required:true + type:"line_insert_input!" }, on_conflict:{ - type:"line_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"line_on_conflict" } }, line_on_conflict:{ constraint:{ - type:"line_constraint", - array:false, - arrayRequired:false, - required:true + type:"line_constraint!" }, update_columns:{ - type:"line_update_column", - array:true, - arrayRequired:true, - required:true + type:"[line_update_column!]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, line_order_by:{ booking:{ - type:"booking_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_order_by" }, bookingId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, classification:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connection:{ - type:"connection_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, description:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, enhancementLines_aggregate:{ - type:"line_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_aggregate_order_by" }, enhancingLine:{ - type:"line_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_order_by" }, enhancingLineId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, invoiceStatus:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, isEnhanced:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, metadata:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCurrency:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, payment:{ - type:"payment_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_order_by" }, paymentId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, subclassification:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, line_prepend_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, line_select_column: "enum", line_set_input:{ bookingId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, centTotal:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, classification:{ - type:"classification_enum", - array:false, - arrayRequired:false, - required:false + type:"classification_enum" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, description:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, enhancingLineId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, invoiceStatus:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, isEnhanced:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, originCentTotal:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, originCurrency:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, originExchangeRate:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, paymentId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, subclassification:{ - type:"subclassification_enum", - array:false, - arrayRequired:false, - required:false + type:"subclassification_enum" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, unitId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, line_stddev_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_stddev_pop_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_stddev_samp_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_sum_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_update_column: "enum", line_var_pop_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_var_samp_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, line_variance_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originCentTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, originExchangeRate:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric:{ metadata:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } } }, metric_aggregate_fields:{ count:{ columns:{ - type:"metric_select_column", - array:true, - arrayRequired:false, - required:true + type:"[metric_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, metric_aggregate_order_by:{ avg:{ - type:"metric_avg_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_avg_order_by" }, count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"metric_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_max_order_by" }, min:{ - type:"metric_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_min_order_by" }, stddev:{ - type:"metric_stddev_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_stddev_order_by" }, stddev_pop:{ - type:"metric_stddev_pop_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_stddev_pop_order_by" }, stddev_samp:{ - type:"metric_stddev_samp_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_stddev_samp_order_by" }, sum:{ - type:"metric_sum_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_sum_order_by" }, var_pop:{ - type:"metric_var_pop_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_var_pop_order_by" }, var_samp:{ - type:"metric_var_samp_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_var_samp_order_by" }, variance:{ - type:"metric_variance_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_variance_order_by" } }, metric_append_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, metric_arr_rel_insert_input:{ data:{ - type:"metric_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[metric_insert_input!]!" }, on_conflict:{ - type:"metric_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"metric_on_conflict" } }, metric_avg_order_by:{ value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_bool_exp:{ _and:{ - type:"metric_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[metric_bool_exp]!" }, _not:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" }, _or:{ - type:"metric_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[metric_bool_exp]!" }, connection:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, connectionId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, ensuedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, metadata:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, text:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, type:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, uniqueRef:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, unitId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, value:{ - type:"float8_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"float8_comparison_exp" } }, metric_constraint: "enum", metric_delete_at_path_input:{ metadata:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, metric_delete_elem_input:{ metadata:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, metric_delete_key_input:{ metadata:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, metric_inc_input:{ value:{ - type:"float8", - array:false, - arrayRequired:false, - required:false + type:"float8" } }, metric_insert_input:{ connection:{ - type:"connection_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_obj_rel_insert_input" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, ensuedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, text:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, unitId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, value:{ - type:"float8", - array:false, - arrayRequired:false, - required:false + type:"float8" } }, metric_max_order_by:{ connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, ensuedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, text:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_min_order_by:{ connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, ensuedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, text:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_on_conflict:{ constraint:{ - type:"metric_constraint", - array:false, - arrayRequired:false, - required:true + type:"metric_constraint!" }, update_columns:{ - type:"metric_update_column", - array:true, - arrayRequired:true, - required:true + type:"[metric_update_column!]!" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" } }, metric_order_by:{ connection:{ - type:"connection_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, ensuedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, metadata:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, text:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, metric_prepend_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, metric_select_column: "enum", metric_set_input:{ connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, ensuedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, text:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, unitId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, value:{ - type:"float8", - array:false, - arrayRequired:false, - required:false + type:"float8" } }, metric_stddev_order_by:{ value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_stddev_pop_order_by:{ value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_stddev_samp_order_by:{ value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_sum_order_by:{ value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_update_column: "enum", metric_var_pop_order_by:{ value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_var_samp_order_by:{ value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, metric_variance_order_by:{ value:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, mutation_root:{ deleteBooking:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteBookingStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteBookingStatuses:{ where:{ - type:"bookingStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"bookingStatus_bool_exp!" } }, deleteBookings:{ where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"booking_bool_exp!" } }, deleteClassification:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteClassifications:{ where:{ - type:"classification_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"classification_bool_exp!" } }, deleteConnection:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteConnections:{ where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"connection_bool_exp!" } }, deleteCurrencies:{ where:{ - type:"currency_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"currency_bool_exp!" } }, deleteCurrency:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteEntities:{ where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"entity_bool_exp!" } }, deleteEntity:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteEntityStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteEntityStatuses:{ where:{ - type:"entityStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"entityStatus_bool_exp!" } }, deleteIntegration:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteIntegrationType:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteIntegrationTypes:{ where:{ - type:"integrationType_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"integrationType_bool_exp!" } }, deleteIntegrations:{ where:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"integration_bool_exp!" } }, deleteIssue:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteIssues:{ where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"issue_bool_exp!" } }, deleteJob:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteJobMethod:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteJobMethods:{ where:{ - type:"jobMethod_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"jobMethod_bool_exp!" } }, deleteJobStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteJobStatuses:{ where:{ - type:"jobStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"jobStatus_bool_exp!" } }, deleteJobs:{ where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"job_bool_exp!" } }, deleteLine:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteLines:{ where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"line_bool_exp!" } }, deleteMetric:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteMetrics:{ where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"metric_bool_exp!" } }, deleteNormalizedType:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteNormalizedTypes:{ where:{ - type:"normalizedType_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"normalizedType_bool_exp!" } }, deletePayment:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deletePaymentStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deletePaymentStatuses:{ where:{ - type:"paymentStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"paymentStatus_bool_exp!" } }, deletePaymentType:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deletePaymentTypes:{ where:{ - type:"paymentType_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"paymentType_bool_exp!" } }, deletePayments:{ where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"payment_bool_exp!" } }, deleteSubclassification:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteSubclassifications:{ where:{ - type:"subclassification_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"subclassification_bool_exp!" } }, deleteTag:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteTags:{ where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"tag_bool_exp!" } }, deleteTeam:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteTeamUser:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteTeamUsers:{ where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"teamUser_bool_exp!" } }, deleteTeams:{ where:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"team_bool_exp!" } }, deleteUnit:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteUnits:{ where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"unit_bool_exp!" } }, deleteUser:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteUserStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, deleteUserStatuses:{ where:{ - type:"userStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"userStatus_bool_exp!" } }, deleteUsers:{ where:{ - type:"user_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"user_bool_exp!" } }, deleteWebhook:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, deleteWebhooks:{ where:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"webhook_bool_exp!" } }, delete_booking_channel:{ where:{ - type:"booking_channel_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"booking_channel_bool_exp!" } }, delete_booking_channel_by_pk:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, insertBooking:{ object:{ - type:"booking_insert_input", - array:false, - arrayRequired:false, - required:true + type:"booking_insert_input!" }, on_conflict:{ - type:"booking_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"booking_on_conflict" } }, insertBookingStatus:{ object:{ - type:"bookingStatus_insert_input", - array:false, - arrayRequired:false, - required:true + type:"bookingStatus_insert_input!" }, on_conflict:{ - type:"bookingStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_on_conflict" } }, insertBookingStatuses:{ objects:{ - type:"bookingStatus_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[bookingStatus_insert_input!]!" }, on_conflict:{ - type:"bookingStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_on_conflict" } }, insertBookings:{ objects:{ - type:"booking_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[booking_insert_input!]!" }, on_conflict:{ - type:"booking_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"booking_on_conflict" } }, insertClassification:{ object:{ - type:"classification_insert_input", - array:false, - arrayRequired:false, - required:true + type:"classification_insert_input!" }, on_conflict:{ - type:"classification_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"classification_on_conflict" } }, insertClassifications:{ objects:{ - type:"classification_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[classification_insert_input!]!" }, on_conflict:{ - type:"classification_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"classification_on_conflict" } }, insertConnection:{ object:{ - type:"connection_insert_input", - array:false, - arrayRequired:false, - required:true + type:"connection_insert_input!" }, on_conflict:{ - type:"connection_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"connection_on_conflict" } }, insertConnections:{ objects:{ - type:"connection_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[connection_insert_input!]!" }, on_conflict:{ - type:"connection_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"connection_on_conflict" } }, insertCurrencies:{ objects:{ - type:"currency_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[currency_insert_input!]!" }, on_conflict:{ - type:"currency_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"currency_on_conflict" } }, insertCurrency:{ object:{ - type:"currency_insert_input", - array:false, - arrayRequired:false, - required:true + type:"currency_insert_input!" }, on_conflict:{ - type:"currency_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"currency_on_conflict" } }, insertEntities:{ objects:{ - type:"entity_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[entity_insert_input!]!" }, on_conflict:{ - type:"entity_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"entity_on_conflict" } }, insertEntity:{ object:{ - type:"entity_insert_input", - array:false, - arrayRequired:false, - required:true + type:"entity_insert_input!" }, on_conflict:{ - type:"entity_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"entity_on_conflict" } }, insertEntityStatus:{ object:{ - type:"entityStatus_insert_input", - array:false, - arrayRequired:false, - required:true + type:"entityStatus_insert_input!" }, on_conflict:{ - type:"entityStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_on_conflict" } }, insertEntityStatuses:{ objects:{ - type:"entityStatus_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[entityStatus_insert_input!]!" }, on_conflict:{ - type:"entityStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_on_conflict" } }, insertIntegration:{ object:{ - type:"integration_insert_input", - array:false, - arrayRequired:false, - required:true + type:"integration_insert_input!" }, on_conflict:{ - type:"integration_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"integration_on_conflict" } }, insertIntegrationType:{ object:{ - type:"integrationType_insert_input", - array:false, - arrayRequired:false, - required:true + type:"integrationType_insert_input!" }, on_conflict:{ - type:"integrationType_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"integrationType_on_conflict" } }, insertIntegrationTypes:{ objects:{ - type:"integrationType_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[integrationType_insert_input!]!" }, on_conflict:{ - type:"integrationType_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"integrationType_on_conflict" } }, insertIntegrations:{ objects:{ - type:"integration_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[integration_insert_input!]!" }, on_conflict:{ - type:"integration_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"integration_on_conflict" } }, insertIssue:{ object:{ - type:"issue_insert_input", - array:false, - arrayRequired:false, - required:true + type:"issue_insert_input!" }, on_conflict:{ - type:"issue_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"issue_on_conflict" } }, insertIssues:{ objects:{ - type:"issue_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[issue_insert_input!]!" }, on_conflict:{ - type:"issue_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"issue_on_conflict" } }, insertJob:{ object:{ - type:"job_insert_input", - array:false, - arrayRequired:false, - required:true + type:"job_insert_input!" }, on_conflict:{ - type:"job_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"job_on_conflict" } }, insertJobMethod:{ object:{ - type:"jobMethod_insert_input", - array:false, - arrayRequired:false, - required:true + type:"jobMethod_insert_input!" }, on_conflict:{ - type:"jobMethod_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_on_conflict" } }, insertJobMethods:{ objects:{ - type:"jobMethod_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[jobMethod_insert_input!]!" }, on_conflict:{ - type:"jobMethod_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_on_conflict" } }, insertJobStatus:{ object:{ - type:"jobStatus_insert_input", - array:false, - arrayRequired:false, - required:true + type:"jobStatus_insert_input!" }, on_conflict:{ - type:"jobStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_on_conflict" } }, insertJobStatuses:{ objects:{ - type:"jobStatus_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[jobStatus_insert_input!]!" }, on_conflict:{ - type:"jobStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_on_conflict" } }, insertJobs:{ objects:{ - type:"job_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[job_insert_input!]!" }, on_conflict:{ - type:"job_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"job_on_conflict" } }, insertLine:{ object:{ - type:"line_insert_input", - array:false, - arrayRequired:false, - required:true + type:"line_insert_input!" }, on_conflict:{ - type:"line_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"line_on_conflict" } }, insertLines:{ objects:{ - type:"line_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[line_insert_input!]!" }, on_conflict:{ - type:"line_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"line_on_conflict" } }, insertMetric:{ object:{ - type:"metric_insert_input", - array:false, - arrayRequired:false, - required:true + type:"metric_insert_input!" }, on_conflict:{ - type:"metric_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"metric_on_conflict" } }, insertMetrics:{ objects:{ - type:"metric_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[metric_insert_input!]!" }, on_conflict:{ - type:"metric_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"metric_on_conflict" } }, insertNormalizedType:{ object:{ - type:"normalizedType_insert_input", - array:false, - arrayRequired:false, - required:true + type:"normalizedType_insert_input!" }, on_conflict:{ - type:"normalizedType_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_on_conflict" } }, insertNormalizedTypes:{ objects:{ - type:"normalizedType_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[normalizedType_insert_input!]!" }, on_conflict:{ - type:"normalizedType_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_on_conflict" } }, insertPayment:{ object:{ - type:"payment_insert_input", - array:false, - arrayRequired:false, - required:true + type:"payment_insert_input!" }, on_conflict:{ - type:"payment_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"payment_on_conflict" } }, insertPaymentStatus:{ object:{ - type:"paymentStatus_insert_input", - array:false, - arrayRequired:false, - required:true + type:"paymentStatus_insert_input!" }, on_conflict:{ - type:"paymentStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_on_conflict" } }, insertPaymentStatuses:{ objects:{ - type:"paymentStatus_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[paymentStatus_insert_input!]!" }, on_conflict:{ - type:"paymentStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_on_conflict" } }, insertPaymentType:{ object:{ - type:"paymentType_insert_input", - array:false, - arrayRequired:false, - required:true + type:"paymentType_insert_input!" }, on_conflict:{ - type:"paymentType_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"paymentType_on_conflict" } }, insertPaymentTypes:{ objects:{ - type:"paymentType_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[paymentType_insert_input!]!" }, on_conflict:{ - type:"paymentType_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"paymentType_on_conflict" } }, insertPayments:{ objects:{ - type:"payment_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[payment_insert_input!]!" }, on_conflict:{ - type:"payment_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"payment_on_conflict" } }, insertSubclassification:{ object:{ - type:"subclassification_insert_input", - array:false, - arrayRequired:false, - required:true + type:"subclassification_insert_input!" }, on_conflict:{ - type:"subclassification_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"subclassification_on_conflict" } }, insertSubclassifications:{ objects:{ - type:"subclassification_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[subclassification_insert_input!]!" }, on_conflict:{ - type:"subclassification_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"subclassification_on_conflict" } }, insertTag:{ object:{ - type:"tag_insert_input", - array:false, - arrayRequired:false, - required:true + type:"tag_insert_input!" }, on_conflict:{ - type:"tag_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"tag_on_conflict" } }, insertTags:{ objects:{ - type:"tag_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[tag_insert_input!]!" }, on_conflict:{ - type:"tag_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"tag_on_conflict" } }, insertTeam:{ object:{ - type:"team_insert_input", - array:false, - arrayRequired:false, - required:true + type:"team_insert_input!" }, on_conflict:{ - type:"team_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"team_on_conflict" } }, insertTeamUser:{ object:{ - type:"teamUser_insert_input", - array:false, - arrayRequired:false, - required:true + type:"teamUser_insert_input!" }, on_conflict:{ - type:"teamUser_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"teamUser_on_conflict" } }, insertTeamUsers:{ objects:{ - type:"teamUser_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[teamUser_insert_input!]!" }, on_conflict:{ - type:"teamUser_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"teamUser_on_conflict" } }, insertTeams:{ objects:{ - type:"team_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[team_insert_input!]!" }, on_conflict:{ - type:"team_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"team_on_conflict" } }, insertUnit:{ object:{ - type:"unit_insert_input", - array:false, - arrayRequired:false, - required:true + type:"unit_insert_input!" }, on_conflict:{ - type:"unit_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"unit_on_conflict" } }, insertUnits:{ objects:{ - type:"unit_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[unit_insert_input!]!" }, on_conflict:{ - type:"unit_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"unit_on_conflict" } }, insertUser:{ object:{ - type:"user_insert_input", - array:false, - arrayRequired:false, - required:true + type:"user_insert_input!" }, on_conflict:{ - type:"user_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"user_on_conflict" } }, insertUserStatus:{ object:{ - type:"userStatus_insert_input", - array:false, - arrayRequired:false, - required:true + type:"userStatus_insert_input!" }, on_conflict:{ - type:"userStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"userStatus_on_conflict" } }, insertUserStatuses:{ objects:{ - type:"userStatus_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[userStatus_insert_input!]!" }, on_conflict:{ - type:"userStatus_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"userStatus_on_conflict" } }, insertUsers:{ objects:{ - type:"user_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[user_insert_input!]!" }, on_conflict:{ - type:"user_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"user_on_conflict" } }, insertWebhook:{ object:{ - type:"webhook_insert_input", - array:false, - arrayRequired:false, - required:true + type:"webhook_insert_input!" }, on_conflict:{ - type:"webhook_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"webhook_on_conflict" } }, insertWebhooks:{ objects:{ - type:"webhook_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[webhook_insert_input!]!" }, on_conflict:{ - type:"webhook_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"webhook_on_conflict" } }, insert_booking_channel:{ objects:{ - type:"booking_channel_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[booking_channel_insert_input!]!" }, on_conflict:{ - type:"booking_channel_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_on_conflict" } }, insert_booking_channel_one:{ object:{ - type:"booking_channel_insert_input", - array:false, - arrayRequired:false, - required:true + type:"booking_channel_insert_input!" }, on_conflict:{ - type:"booking_channel_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_on_conflict" } }, updateBooking:{ _append:{ - type:"booking_append_input", - array:false, - arrayRequired:false, - required:false + type:"booking_append_input" }, _delete_at_path:{ - type:"booking_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"booking_delete_at_path_input" }, _delete_elem:{ - type:"booking_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"booking_delete_elem_input" }, _delete_key:{ - type:"booking_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"booking_delete_key_input" }, _inc:{ - type:"booking_inc_input", - array:false, - arrayRequired:false, - required:false + type:"booking_inc_input" }, _prepend:{ - type:"booking_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"booking_prepend_input" }, _set:{ - type:"booking_set_input", - array:false, - arrayRequired:false, - required:false + type:"booking_set_input" }, pk_columns:{ - type:"booking_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"booking_pk_columns_input!" } }, updateBookingStatus:{ _set:{ - type:"bookingStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_set_input" }, pk_columns:{ - type:"bookingStatus_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"bookingStatus_pk_columns_input!" } }, updateBookingStatuses:{ _set:{ - type:"bookingStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_set_input" }, where:{ - type:"bookingStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"bookingStatus_bool_exp!" } }, updateBookings:{ _append:{ - type:"booking_append_input", - array:false, - arrayRequired:false, - required:false + type:"booking_append_input" }, _delete_at_path:{ - type:"booking_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"booking_delete_at_path_input" }, _delete_elem:{ - type:"booking_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"booking_delete_elem_input" }, _delete_key:{ - type:"booking_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"booking_delete_key_input" }, _inc:{ - type:"booking_inc_input", - array:false, - arrayRequired:false, - required:false + type:"booking_inc_input" }, _prepend:{ - type:"booking_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"booking_prepend_input" }, _set:{ - type:"booking_set_input", - array:false, - arrayRequired:false, - required:false + type:"booking_set_input" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"booking_bool_exp!" } }, updateClassification:{ _set:{ - type:"classification_set_input", - array:false, - arrayRequired:false, - required:false + type:"classification_set_input" }, pk_columns:{ - type:"classification_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"classification_pk_columns_input!" } }, updateClassifications:{ _set:{ - type:"classification_set_input", - array:false, - arrayRequired:false, - required:false + type:"classification_set_input" }, where:{ - type:"classification_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"classification_bool_exp!" } }, updateConnection:{ _append:{ - type:"connection_append_input", - array:false, - arrayRequired:false, - required:false + type:"connection_append_input" }, _delete_at_path:{ - type:"connection_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"connection_delete_at_path_input" }, _delete_elem:{ - type:"connection_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"connection_delete_elem_input" }, _delete_key:{ - type:"connection_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"connection_delete_key_input" }, _prepend:{ - type:"connection_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"connection_prepend_input" }, _set:{ - type:"connection_set_input", - array:false, - arrayRequired:false, - required:false + type:"connection_set_input" }, pk_columns:{ - type:"connection_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"connection_pk_columns_input!" } }, updateConnections:{ _append:{ - type:"connection_append_input", - array:false, - arrayRequired:false, - required:false + type:"connection_append_input" }, _delete_at_path:{ - type:"connection_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"connection_delete_at_path_input" }, _delete_elem:{ - type:"connection_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"connection_delete_elem_input" }, _delete_key:{ - type:"connection_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"connection_delete_key_input" }, _prepend:{ - type:"connection_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"connection_prepend_input" }, _set:{ - type:"connection_set_input", - array:false, - arrayRequired:false, - required:false + type:"connection_set_input" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"connection_bool_exp!" } }, updateCurrencies:{ _set:{ - type:"currency_set_input", - array:false, - arrayRequired:false, - required:false + type:"currency_set_input" }, where:{ - type:"currency_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"currency_bool_exp!" } }, updateCurrency:{ _set:{ - type:"currency_set_input", - array:false, - arrayRequired:false, - required:false + type:"currency_set_input" }, pk_columns:{ - type:"currency_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"currency_pk_columns_input!" } }, updateEntities:{ _append:{ - type:"entity_append_input", - array:false, - arrayRequired:false, - required:false + type:"entity_append_input" }, _delete_at_path:{ - type:"entity_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"entity_delete_at_path_input" }, _delete_elem:{ - type:"entity_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"entity_delete_elem_input" }, _delete_key:{ - type:"entity_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"entity_delete_key_input" }, _prepend:{ - type:"entity_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"entity_prepend_input" }, _set:{ - type:"entity_set_input", - array:false, - arrayRequired:false, - required:false + type:"entity_set_input" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"entity_bool_exp!" } }, updateEntity:{ _append:{ - type:"entity_append_input", - array:false, - arrayRequired:false, - required:false + type:"entity_append_input" }, _delete_at_path:{ - type:"entity_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"entity_delete_at_path_input" }, _delete_elem:{ - type:"entity_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"entity_delete_elem_input" }, _delete_key:{ - type:"entity_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"entity_delete_key_input" }, _prepend:{ - type:"entity_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"entity_prepend_input" }, _set:{ - type:"entity_set_input", - array:false, - arrayRequired:false, - required:false + type:"entity_set_input" }, pk_columns:{ - type:"entity_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"entity_pk_columns_input!" } }, updateEntityStatus:{ _set:{ - type:"entityStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_set_input" }, pk_columns:{ - type:"entityStatus_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"entityStatus_pk_columns_input!" } }, updateEntityStatuses:{ _set:{ - type:"entityStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_set_input" }, where:{ - type:"entityStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"entityStatus_bool_exp!" } }, updateIntegration:{ _set:{ - type:"integration_set_input", - array:false, - arrayRequired:false, - required:false + type:"integration_set_input" }, pk_columns:{ - type:"integration_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"integration_pk_columns_input!" } }, updateIntegrationType:{ _set:{ - type:"integrationType_set_input", - array:false, - arrayRequired:false, - required:false + type:"integrationType_set_input" }, pk_columns:{ - type:"integrationType_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"integrationType_pk_columns_input!" } }, updateIntegrationTypes:{ _set:{ - type:"integrationType_set_input", - array:false, - arrayRequired:false, - required:false + type:"integrationType_set_input" }, where:{ - type:"integrationType_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"integrationType_bool_exp!" } }, updateIntegrations:{ _set:{ - type:"integration_set_input", - array:false, - arrayRequired:false, - required:false + type:"integration_set_input" }, where:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"integration_bool_exp!" } }, updateIssue:{ _append:{ - type:"issue_append_input", - array:false, - arrayRequired:false, - required:false + type:"issue_append_input" }, _delete_at_path:{ - type:"issue_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"issue_delete_at_path_input" }, _delete_elem:{ - type:"issue_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"issue_delete_elem_input" }, _delete_key:{ - type:"issue_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"issue_delete_key_input" }, _prepend:{ - type:"issue_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"issue_prepend_input" }, _set:{ - type:"issue_set_input", - array:false, - arrayRequired:false, - required:false + type:"issue_set_input" }, pk_columns:{ - type:"issue_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"issue_pk_columns_input!" } }, updateIssues:{ _append:{ - type:"issue_append_input", - array:false, - arrayRequired:false, - required:false + type:"issue_append_input" }, _delete_at_path:{ - type:"issue_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"issue_delete_at_path_input" }, _delete_elem:{ - type:"issue_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"issue_delete_elem_input" }, _delete_key:{ - type:"issue_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"issue_delete_key_input" }, _prepend:{ - type:"issue_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"issue_prepend_input" }, _set:{ - type:"issue_set_input", - array:false, - arrayRequired:false, - required:false + type:"issue_set_input" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"issue_bool_exp!" } }, updateJob:{ _append:{ - type:"job_append_input", - array:false, - arrayRequired:false, - required:false + type:"job_append_input" }, _delete_at_path:{ - type:"job_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"job_delete_at_path_input" }, _delete_elem:{ - type:"job_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"job_delete_elem_input" }, _delete_key:{ - type:"job_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"job_delete_key_input" }, _prepend:{ - type:"job_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"job_prepend_input" }, _set:{ - type:"job_set_input", - array:false, - arrayRequired:false, - required:false + type:"job_set_input" }, pk_columns:{ - type:"job_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"job_pk_columns_input!" } }, updateJobMethod:{ _set:{ - type:"jobMethod_set_input", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_set_input" }, pk_columns:{ - type:"jobMethod_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"jobMethod_pk_columns_input!" } }, updateJobMethods:{ _set:{ - type:"jobMethod_set_input", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_set_input" }, where:{ - type:"jobMethod_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"jobMethod_bool_exp!" } }, updateJobStatus:{ _set:{ - type:"jobStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_set_input" }, pk_columns:{ - type:"jobStatus_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"jobStatus_pk_columns_input!" } }, updateJobStatuses:{ _set:{ - type:"jobStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_set_input" }, where:{ - type:"jobStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"jobStatus_bool_exp!" } }, updateJobs:{ _append:{ - type:"job_append_input", - array:false, - arrayRequired:false, - required:false + type:"job_append_input" }, _delete_at_path:{ - type:"job_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"job_delete_at_path_input" }, _delete_elem:{ - type:"job_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"job_delete_elem_input" }, _delete_key:{ - type:"job_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"job_delete_key_input" }, _prepend:{ - type:"job_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"job_prepend_input" }, _set:{ - type:"job_set_input", - array:false, - arrayRequired:false, - required:false + type:"job_set_input" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"job_bool_exp!" } }, updateLine:{ _append:{ - type:"line_append_input", - array:false, - arrayRequired:false, - required:false + type:"line_append_input" }, _delete_at_path:{ - type:"line_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"line_delete_at_path_input" }, _delete_elem:{ - type:"line_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"line_delete_elem_input" }, _delete_key:{ - type:"line_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"line_delete_key_input" }, _inc:{ - type:"line_inc_input", - array:false, - arrayRequired:false, - required:false + type:"line_inc_input" }, _prepend:{ - type:"line_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"line_prepend_input" }, _set:{ - type:"line_set_input", - array:false, - arrayRequired:false, - required:false + type:"line_set_input" }, pk_columns:{ - type:"line_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"line_pk_columns_input!" } }, updateLines:{ _append:{ - type:"line_append_input", - array:false, - arrayRequired:false, - required:false + type:"line_append_input" }, _delete_at_path:{ - type:"line_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"line_delete_at_path_input" }, _delete_elem:{ - type:"line_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"line_delete_elem_input" }, _delete_key:{ - type:"line_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"line_delete_key_input" }, _inc:{ - type:"line_inc_input", - array:false, - arrayRequired:false, - required:false + type:"line_inc_input" }, _prepend:{ - type:"line_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"line_prepend_input" }, _set:{ - type:"line_set_input", - array:false, - arrayRequired:false, - required:false + type:"line_set_input" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"line_bool_exp!" } }, updateMetric:{ _append:{ - type:"metric_append_input", - array:false, - arrayRequired:false, - required:false + type:"metric_append_input" }, _delete_at_path:{ - type:"metric_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"metric_delete_at_path_input" }, _delete_elem:{ - type:"metric_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"metric_delete_elem_input" }, _delete_key:{ - type:"metric_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"metric_delete_key_input" }, _inc:{ - type:"metric_inc_input", - array:false, - arrayRequired:false, - required:false + type:"metric_inc_input" }, _prepend:{ - type:"metric_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"metric_prepend_input" }, _set:{ - type:"metric_set_input", - array:false, - arrayRequired:false, - required:false + type:"metric_set_input" }, pk_columns:{ - type:"metric_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"metric_pk_columns_input!" } }, updateMetrics:{ _append:{ - type:"metric_append_input", - array:false, - arrayRequired:false, - required:false + type:"metric_append_input" }, _delete_at_path:{ - type:"metric_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"metric_delete_at_path_input" }, _delete_elem:{ - type:"metric_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"metric_delete_elem_input" }, _delete_key:{ - type:"metric_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"metric_delete_key_input" }, _inc:{ - type:"metric_inc_input", - array:false, - arrayRequired:false, - required:false + type:"metric_inc_input" }, _prepend:{ - type:"metric_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"metric_prepend_input" }, _set:{ - type:"metric_set_input", - array:false, - arrayRequired:false, - required:false + type:"metric_set_input" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"metric_bool_exp!" } }, updateNormalizedType:{ _set:{ - type:"normalizedType_set_input", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_set_input" }, pk_columns:{ - type:"normalizedType_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"normalizedType_pk_columns_input!" } }, updateNormalizedTypes:{ _set:{ - type:"normalizedType_set_input", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_set_input" }, where:{ - type:"normalizedType_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"normalizedType_bool_exp!" } }, updatePayment:{ _append:{ - type:"payment_append_input", - array:false, - arrayRequired:false, - required:false + type:"payment_append_input" }, _delete_at_path:{ - type:"payment_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"payment_delete_at_path_input" }, _delete_elem:{ - type:"payment_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"payment_delete_elem_input" }, _delete_key:{ - type:"payment_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"payment_delete_key_input" }, _inc:{ - type:"payment_inc_input", - array:false, - arrayRequired:false, - required:false + type:"payment_inc_input" }, _prepend:{ - type:"payment_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"payment_prepend_input" }, _set:{ - type:"payment_set_input", - array:false, - arrayRequired:false, - required:false + type:"payment_set_input" }, pk_columns:{ - type:"payment_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"payment_pk_columns_input!" } }, updatePaymentStatus:{ _set:{ - type:"paymentStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_set_input" }, pk_columns:{ - type:"paymentStatus_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"paymentStatus_pk_columns_input!" } }, updatePaymentStatuses:{ _set:{ - type:"paymentStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_set_input" }, where:{ - type:"paymentStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"paymentStatus_bool_exp!" } }, updatePaymentType:{ _set:{ - type:"paymentType_set_input", - array:false, - arrayRequired:false, - required:false + type:"paymentType_set_input" }, pk_columns:{ - type:"paymentType_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"paymentType_pk_columns_input!" } }, updatePaymentTypes:{ _set:{ - type:"paymentType_set_input", - array:false, - arrayRequired:false, - required:false + type:"paymentType_set_input" }, where:{ - type:"paymentType_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"paymentType_bool_exp!" } }, updatePayments:{ _append:{ - type:"payment_append_input", - array:false, - arrayRequired:false, - required:false + type:"payment_append_input" }, _delete_at_path:{ - type:"payment_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"payment_delete_at_path_input" }, _delete_elem:{ - type:"payment_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"payment_delete_elem_input" }, _delete_key:{ - type:"payment_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"payment_delete_key_input" }, _inc:{ - type:"payment_inc_input", - array:false, - arrayRequired:false, - required:false + type:"payment_inc_input" }, _prepend:{ - type:"payment_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"payment_prepend_input" }, _set:{ - type:"payment_set_input", - array:false, - arrayRequired:false, - required:false + type:"payment_set_input" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"payment_bool_exp!" } }, updateSubclassification:{ _set:{ - type:"subclassification_set_input", - array:false, - arrayRequired:false, - required:false + type:"subclassification_set_input" }, pk_columns:{ - type:"subclassification_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"subclassification_pk_columns_input!" } }, updateSubclassifications:{ _set:{ - type:"subclassification_set_input", - array:false, - arrayRequired:false, - required:false + type:"subclassification_set_input" }, where:{ - type:"subclassification_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"subclassification_bool_exp!" } }, updateTag:{ _append:{ - type:"tag_append_input", - array:false, - arrayRequired:false, - required:false + type:"tag_append_input" }, _delete_at_path:{ - type:"tag_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"tag_delete_at_path_input" }, _delete_elem:{ - type:"tag_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"tag_delete_elem_input" }, _delete_key:{ - type:"tag_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"tag_delete_key_input" }, _prepend:{ - type:"tag_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"tag_prepend_input" }, _set:{ - type:"tag_set_input", - array:false, - arrayRequired:false, - required:false + type:"tag_set_input" }, pk_columns:{ - type:"tag_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"tag_pk_columns_input!" } }, updateTags:{ _append:{ - type:"tag_append_input", - array:false, - arrayRequired:false, - required:false + type:"tag_append_input" }, _delete_at_path:{ - type:"tag_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"tag_delete_at_path_input" }, _delete_elem:{ - type:"tag_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"tag_delete_elem_input" }, _delete_key:{ - type:"tag_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"tag_delete_key_input" }, _prepend:{ - type:"tag_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"tag_prepend_input" }, _set:{ - type:"tag_set_input", - array:false, - arrayRequired:false, - required:false + type:"tag_set_input" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"tag_bool_exp!" } }, updateTeam:{ _inc:{ - type:"team_inc_input", - array:false, - arrayRequired:false, - required:false + type:"team_inc_input" }, _set:{ - type:"team_set_input", - array:false, - arrayRequired:false, - required:false + type:"team_set_input" }, pk_columns:{ - type:"team_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"team_pk_columns_input!" } }, updateTeamUser:{ _set:{ - type:"teamUser_set_input", - array:false, - arrayRequired:false, - required:false + type:"teamUser_set_input" }, pk_columns:{ - type:"teamUser_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"teamUser_pk_columns_input!" } }, updateTeamUsers:{ _set:{ - type:"teamUser_set_input", - array:false, - arrayRequired:false, - required:false + type:"teamUser_set_input" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"teamUser_bool_exp!" } }, updateTeams:{ _inc:{ - type:"team_inc_input", - array:false, - arrayRequired:false, - required:false + type:"team_inc_input" }, _set:{ - type:"team_set_input", - array:false, - arrayRequired:false, - required:false + type:"team_set_input" }, where:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"team_bool_exp!" } }, updateUnit:{ _append:{ - type:"unit_append_input", - array:false, - arrayRequired:false, - required:false + type:"unit_append_input" }, _delete_at_path:{ - type:"unit_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"unit_delete_at_path_input" }, _delete_elem:{ - type:"unit_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"unit_delete_elem_input" }, _delete_key:{ - type:"unit_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"unit_delete_key_input" }, _prepend:{ - type:"unit_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"unit_prepend_input" }, _set:{ - type:"unit_set_input", - array:false, - arrayRequired:false, - required:false + type:"unit_set_input" }, pk_columns:{ - type:"unit_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"unit_pk_columns_input!" } }, updateUnits:{ _append:{ - type:"unit_append_input", - array:false, - arrayRequired:false, - required:false + type:"unit_append_input" }, _delete_at_path:{ - type:"unit_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"unit_delete_at_path_input" }, _delete_elem:{ - type:"unit_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"unit_delete_elem_input" }, _delete_key:{ - type:"unit_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"unit_delete_key_input" }, _prepend:{ - type:"unit_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"unit_prepend_input" }, _set:{ - type:"unit_set_input", - array:false, - arrayRequired:false, - required:false + type:"unit_set_input" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"unit_bool_exp!" } }, updateUser:{ _set:{ - type:"user_set_input", - array:false, - arrayRequired:false, - required:false + type:"user_set_input" }, pk_columns:{ - type:"user_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"user_pk_columns_input!" } }, updateUserStatus:{ _set:{ - type:"userStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"userStatus_set_input" }, pk_columns:{ - type:"userStatus_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"userStatus_pk_columns_input!" } }, updateUserStatuses:{ _set:{ - type:"userStatus_set_input", - array:false, - arrayRequired:false, - required:false + type:"userStatus_set_input" }, where:{ - type:"userStatus_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"userStatus_bool_exp!" } }, updateUsers:{ _set:{ - type:"user_set_input", - array:false, - arrayRequired:false, - required:false + type:"user_set_input" }, where:{ - type:"user_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"user_bool_exp!" } }, updateWebhook:{ _append:{ - type:"webhook_append_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_append_input" }, _delete_at_path:{ - type:"webhook_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_delete_at_path_input" }, _delete_elem:{ - type:"webhook_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_delete_elem_input" }, _delete_key:{ - type:"webhook_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_delete_key_input" }, _prepend:{ - type:"webhook_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_prepend_input" }, _set:{ - type:"webhook_set_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_set_input" }, pk_columns:{ - type:"webhook_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"webhook_pk_columns_input!" } }, updateWebhooks:{ _append:{ - type:"webhook_append_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_append_input" }, _delete_at_path:{ - type:"webhook_delete_at_path_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_delete_at_path_input" }, _delete_elem:{ - type:"webhook_delete_elem_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_delete_elem_input" }, _delete_key:{ - type:"webhook_delete_key_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_delete_key_input" }, _prepend:{ - type:"webhook_prepend_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_prepend_input" }, _set:{ - type:"webhook_set_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_set_input" }, where:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"webhook_bool_exp!" } }, update_booking_channel:{ _set:{ - type:"booking_channel_set_input", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_set_input" }, where:{ - type:"booking_channel_bool_exp", - array:false, - arrayRequired:false, - required:true + type:"booking_channel_bool_exp!" } }, update_booking_channel_by_pk:{ _set:{ - type:"booking_channel_set_input", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_set_input" }, pk_columns:{ - type:"booking_channel_pk_columns_input", - array:false, - arrayRequired:false, - required:true + type:"booking_channel_pk_columns_input!" } } }, normalized_type_enum: "enum", normalized_type_enum_comparison_exp:{ _eq:{ - type:"normalized_type_enum", - array:false, - arrayRequired:false, - required:false + type:"normalized_type_enum" }, _in:{ - type:"normalized_type_enum", - array:true, - arrayRequired:false, - required:true + type:"[normalized_type_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"normalized_type_enum", - array:false, - arrayRequired:false, - required:false + type:"normalized_type_enum" }, _nin:{ - type:"normalized_type_enum", - array:true, - arrayRequired:false, - required:true + type:"[normalized_type_enum]!" } }, normalizedType_aggregate_fields:{ count:{ columns:{ - type:"normalizedType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, normalizedType_bool_exp:{ _and:{ - type:"normalizedType_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_bool_exp]!" }, _not:{ - type:"normalizedType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_bool_exp" }, _or:{ - type:"normalizedType_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, normalizedType_constraint: "enum", normalizedType_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, normalizedType_on_conflict:{ constraint:{ - type:"normalizedType_constraint", - array:false, - arrayRequired:false, - required:true + type:"normalizedType_constraint!" }, update_columns:{ - type:"normalizedType_update_column", - array:true, - arrayRequired:true, - required:true + type:"[normalizedType_update_column!]!" }, where:{ - type:"normalizedType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_bool_exp" } }, normalizedType_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, normalizedType_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, normalizedType_select_column: "enum", normalizedType_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, normalizedType_update_column: "enum", numeric: "String", numeric_comparison_exp:{ _eq:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, _gt:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, _gte:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, _in:{ - type:"numeric", - array:true, - arrayRequired:false, - required:true + type:"[numeric]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _lt:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, _lte:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, _neq:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, _nin:{ - type:"numeric", - array:true, - arrayRequired:false, - required:true + type:"[numeric]!" } }, order_by: "enum", payment:{ lines:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, lines_aggregate:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, metadata:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, tags:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, tags_aggregate:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } } }, payment_aggregate_fields:{ count:{ columns:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, payment_aggregate_order_by:{ avg:{ - type:"payment_avg_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_avg_order_by" }, count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"payment_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_max_order_by" }, min:{ - type:"payment_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_min_order_by" }, stddev:{ - type:"payment_stddev_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_stddev_order_by" }, stddev_pop:{ - type:"payment_stddev_pop_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_stddev_pop_order_by" }, stddev_samp:{ - type:"payment_stddev_samp_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_stddev_samp_order_by" }, sum:{ - type:"payment_sum_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_sum_order_by" }, var_pop:{ - type:"payment_var_pop_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_var_pop_order_by" }, var_samp:{ - type:"payment_var_samp_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_var_samp_order_by" }, variance:{ - type:"payment_variance_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_variance_order_by" } }, payment_append_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, payment_arr_rel_insert_input:{ data:{ - type:"payment_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[payment_insert_input!]!" }, on_conflict:{ - type:"payment_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"payment_on_conflict" } }, payment_avg_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_bool_exp:{ _and:{ - type:"payment_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[payment_bool_exp]!" }, _not:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" }, _or:{ - type:"payment_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[payment_bool_exp]!" }, arrivesAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, centTotal:{ - type:"Int_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Int_comparison_exp" }, connection:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, connectionId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, currency:{ - type:"currency_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"currency_enum_comparison_exp" }, description:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, entity:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" }, entityId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, lines:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" }, metadata:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, paidAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, status:{ - type:"payment_status_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_status_enum_comparison_exp" }, tags:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, type:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, uniqueRef:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" } }, payment_constraint: "enum", payment_delete_at_path_input:{ metadata:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, payment_delete_elem_input:{ metadata:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, payment_delete_key_input:{ metadata:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, payment_inc_input:{ centTotal:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, payment_insert_input:{ arrivesAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, centTotal:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, connection:{ - type:"connection_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_obj_rel_insert_input" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, currency:{ - type:"currency_enum", - array:false, - arrayRequired:false, - required:false + type:"currency_enum" }, description:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, entity:{ - type:"entity_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"entity_obj_rel_insert_input" }, entityId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, lines:{ - type:"line_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"line_arr_rel_insert_input" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, paidAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, status:{ - type:"payment_status_enum", - array:false, - arrayRequired:false, - required:false + type:"payment_status_enum" }, tags:{ - type:"tag_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"tag_arr_rel_insert_input" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, payment_max_order_by:{ arrivesAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, description:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, paidAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_min_order_by:{ arrivesAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, description:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, paidAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_obj_rel_insert_input:{ data:{ - type:"payment_insert_input", - array:false, - arrayRequired:false, - required:true + type:"payment_insert_input!" }, on_conflict:{ - type:"payment_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"payment_on_conflict" } }, payment_on_conflict:{ constraint:{ - type:"payment_constraint", - array:false, - arrayRequired:false, - required:true + type:"payment_constraint!" }, update_columns:{ - type:"payment_update_column", - array:true, - arrayRequired:true, - required:true + type:"[payment_update_column!]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, payment_order_by:{ arrivesAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connection:{ - type:"connection_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, currency:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, description:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entity:{ - type:"entity_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_order_by" }, entityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, lines_aggregate:{ - type:"line_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_aggregate_order_by" }, metadata:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, paidAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, tags_aggregate:{ - type:"tag_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"tag_aggregate_order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, payment_prepend_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, payment_select_column: "enum", payment_set_input:{ arrivesAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, centTotal:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, currency:{ - type:"currency_enum", - array:false, - arrayRequired:false, - required:false + type:"currency_enum" }, description:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, entityId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, paidAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, status:{ - type:"payment_status_enum", - array:false, - arrayRequired:false, - required:false + type:"payment_status_enum" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, payment_status_enum: "enum", payment_status_enum_comparison_exp:{ _eq:{ - type:"payment_status_enum", - array:false, - arrayRequired:false, - required:false + type:"payment_status_enum" }, _in:{ - type:"payment_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[payment_status_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"payment_status_enum", - array:false, - arrayRequired:false, - required:false + type:"payment_status_enum" }, _nin:{ - type:"payment_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[payment_status_enum]!" } }, payment_stddev_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_stddev_pop_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_stddev_samp_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_sum_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_update_column: "enum", payment_var_pop_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_var_samp_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, payment_variance_order_by:{ centTotal:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, paymentStatus_aggregate_fields:{ count:{ columns:{ - type:"paymentStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, paymentStatus_bool_exp:{ _and:{ - type:"paymentStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_bool_exp]!" }, _not:{ - type:"paymentStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_bool_exp" }, _or:{ - type:"paymentStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, paymentStatus_constraint: "enum", paymentStatus_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, paymentStatus_on_conflict:{ constraint:{ - type:"paymentStatus_constraint", - array:false, - arrayRequired:false, - required:true + type:"paymentStatus_constraint!" }, update_columns:{ - type:"paymentStatus_update_column", - array:true, - arrayRequired:true, - required:true + type:"[paymentStatus_update_column!]!" }, where:{ - type:"paymentStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_bool_exp" } }, paymentStatus_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, paymentStatus_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, paymentStatus_select_column: "enum", paymentStatus_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, paymentStatus_update_column: "enum", paymentType_aggregate_fields:{ count:{ columns:{ - type:"paymentType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, paymentType_bool_exp:{ _and:{ - type:"paymentType_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_bool_exp]!" }, _not:{ - type:"paymentType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentType_bool_exp" }, _or:{ - type:"paymentType_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, paymentType_constraint: "enum", paymentType_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, paymentType_on_conflict:{ constraint:{ - type:"paymentType_constraint", - array:false, - arrayRequired:false, - required:true + type:"paymentType_constraint!" }, update_columns:{ - type:"paymentType_update_column", - array:true, - arrayRequired:true, - required:true + type:"[paymentType_update_column!]!" }, where:{ - type:"paymentType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentType_bool_exp" } }, paymentType_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, paymentType_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, paymentType_select_column: "enum", paymentType_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, paymentType_update_column: "enum", query_root:{ aggregateBookingStatuses:{ distinct_on:{ - type:"bookingStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"bookingStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_order_by]!" }, where:{ - type:"bookingStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_bool_exp" } }, aggregateBookings:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, aggregateClassifications:{ distinct_on:{ - type:"classification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[classification_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"classification_order_by", - array:true, - arrayRequired:false, - required:true + type:"[classification_order_by]!" }, where:{ - type:"classification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"classification_bool_exp" } }, aggregateConnections:{ distinct_on:{ - type:"connection_select_column", - array:true, - arrayRequired:false, - required:true + type:"[connection_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"connection_order_by", - array:true, - arrayRequired:false, - required:true + type:"[connection_order_by]!" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" } }, aggregateCurrencies:{ distinct_on:{ - type:"currency_select_column", - array:true, - arrayRequired:false, - required:true + type:"[currency_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"currency_order_by", - array:true, - arrayRequired:false, - required:true + type:"[currency_order_by]!" }, where:{ - type:"currency_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"currency_bool_exp" } }, aggregateEntities:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, aggregateEntityStatuses:{ distinct_on:{ - type:"entityStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entityStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_order_by]!" }, where:{ - type:"entityStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_bool_exp" } }, aggregateIntegrationTypes:{ distinct_on:{ - type:"integrationType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integrationType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_order_by]!" }, where:{ - type:"integrationType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integrationType_bool_exp" } }, aggregateIntegrations:{ distinct_on:{ - type:"integration_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integration_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integration_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integration_order_by]!" }, where:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" } }, aggregateIssues:{ distinct_on:{ - type:"issue_select_column", - array:true, - arrayRequired:false, - required:true + type:"[issue_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"issue_order_by", - array:true, - arrayRequired:false, - required:true + type:"[issue_order_by]!" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" } }, aggregateJobMethods:{ distinct_on:{ - type:"jobMethod_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"jobMethod_order_by", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_order_by]!" }, where:{ - type:"jobMethod_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_bool_exp" } }, aggregateJobStatuses:{ distinct_on:{ - type:"jobStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"jobStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_order_by]!" }, where:{ - type:"jobStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_bool_exp" } }, aggregateJobs:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, aggregateLines:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, aggregateMetrics:{ distinct_on:{ - type:"metric_select_column", - array:true, - arrayRequired:false, - required:true + type:"[metric_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"metric_order_by", - array:true, - arrayRequired:false, - required:true + type:"[metric_order_by]!" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" } }, aggregateNormalizedTypes:{ distinct_on:{ - type:"normalizedType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"normalizedType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_order_by]!" }, where:{ - type:"normalizedType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_bool_exp" } }, aggregatePaymentStatuses:{ distinct_on:{ - type:"paymentStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"paymentStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_order_by]!" }, where:{ - type:"paymentStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_bool_exp" } }, aggregatePaymentTypes:{ distinct_on:{ - type:"paymentType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"paymentType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_order_by]!" }, where:{ - type:"paymentType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentType_bool_exp" } }, aggregatePayments:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, aggregateSubclassifications:{ distinct_on:{ - type:"subclassification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"subclassification_order_by", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_order_by]!" }, where:{ - type:"subclassification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"subclassification_bool_exp" } }, aggregateTags:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, aggregateTeamUsers:{ distinct_on:{ - type:"teamUser_select_column", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"teamUser_order_by", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_order_by]!" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" } }, aggregateTeams:{ distinct_on:{ - type:"team_select_column", - array:true, - arrayRequired:false, - required:true + type:"[team_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"team_order_by", - array:true, - arrayRequired:false, - required:true + type:"[team_order_by]!" }, where:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" } }, aggregateUnits:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } }, aggregateUserStatuses:{ distinct_on:{ - type:"userStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"userStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_order_by]!" }, where:{ - type:"userStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"userStatus_bool_exp" } }, aggregateUsers:{ distinct_on:{ - type:"user_select_column", - array:true, - arrayRequired:false, - required:true + type:"[user_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"user_order_by", - array:true, - arrayRequired:false, - required:true + type:"[user_order_by]!" }, where:{ - type:"user_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"user_bool_exp" } }, aggregateWebhooks:{ distinct_on:{ - type:"webhook_select_column", - array:true, - arrayRequired:false, - required:true + type:"[webhook_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"webhook_order_by", - array:true, - arrayRequired:false, - required:true + type:"[webhook_order_by]!" }, where:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"webhook_bool_exp" } }, booking:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, bookingStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, bookingStatuses:{ distinct_on:{ - type:"bookingStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"bookingStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_order_by]!" }, where:{ - type:"bookingStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_bool_exp" } }, booking_channel:{ distinct_on:{ - type:"booking_channel_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_channel_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_order_by]!" }, where:{ - type:"booking_channel_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_bool_exp" } }, booking_channel_aggregate:{ distinct_on:{ - type:"booking_channel_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_channel_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_order_by]!" }, where:{ - type:"booking_channel_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_bool_exp" } }, booking_channel_by_pk:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, bookings:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, classification:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, classifications:{ distinct_on:{ - type:"classification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[classification_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"classification_order_by", - array:true, - arrayRequired:false, - required:true + type:"[classification_order_by]!" }, where:{ - type:"classification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"classification_bool_exp" } }, connection:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, connections:{ distinct_on:{ - type:"connection_select_column", - array:true, - arrayRequired:false, - required:true + type:"[connection_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"connection_order_by", - array:true, - arrayRequired:false, - required:true + type:"[connection_order_by]!" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" } }, currencies:{ distinct_on:{ - type:"currency_select_column", - array:true, - arrayRequired:false, - required:true + type:"[currency_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"currency_order_by", - array:true, - arrayRequired:false, - required:true + type:"[currency_order_by]!" }, where:{ - type:"currency_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"currency_bool_exp" } }, currency:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, entities:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, entity:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, entityStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, entityStatuses:{ distinct_on:{ - type:"entityStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entityStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_order_by]!" }, where:{ - type:"entityStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_bool_exp" } }, integration:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, integrationType:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, integrationTypes:{ distinct_on:{ - type:"integrationType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integrationType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_order_by]!" }, where:{ - type:"integrationType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integrationType_bool_exp" } }, integrations:{ distinct_on:{ - type:"integration_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integration_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integration_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integration_order_by]!" }, where:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" } }, issue:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, issues:{ distinct_on:{ - type:"issue_select_column", - array:true, - arrayRequired:false, - required:true + type:"[issue_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"issue_order_by", - array:true, - arrayRequired:false, - required:true + type:"[issue_order_by]!" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" } }, job:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, jobMethod:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, jobMethods:{ distinct_on:{ - type:"jobMethod_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"jobMethod_order_by", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_order_by]!" }, where:{ - type:"jobMethod_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_bool_exp" } }, jobStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, jobStatuses:{ distinct_on:{ - type:"jobStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"jobStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_order_by]!" }, where:{ - type:"jobStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_bool_exp" } }, jobs:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, line:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, lines:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, metric:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, metrics:{ distinct_on:{ - type:"metric_select_column", - array:true, - arrayRequired:false, - required:true + type:"[metric_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"metric_order_by", - array:true, - arrayRequired:false, - required:true + type:"[metric_order_by]!" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" } }, normalizedType:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, normalizedTypes:{ distinct_on:{ - type:"normalizedType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"normalizedType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_order_by]!" }, where:{ - type:"normalizedType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_bool_exp" } }, payment:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, paymentStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, paymentStatuses:{ distinct_on:{ - type:"paymentStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"paymentStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_order_by]!" }, where:{ - type:"paymentStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_bool_exp" } }, paymentType:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, paymentTypes:{ distinct_on:{ - type:"paymentType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"paymentType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_order_by]!" }, where:{ - type:"paymentType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentType_bool_exp" } }, payments:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, subclassification:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, subclassifications:{ distinct_on:{ - type:"subclassification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"subclassification_order_by", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_order_by]!" }, where:{ - type:"subclassification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"subclassification_bool_exp" } }, tag:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, tags:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, team:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, teamUser:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, teamUsers:{ distinct_on:{ - type:"teamUser_select_column", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"teamUser_order_by", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_order_by]!" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" } }, teams:{ distinct_on:{ - type:"team_select_column", - array:true, - arrayRequired:false, - required:true + type:"[team_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"team_order_by", - array:true, - arrayRequired:false, - required:true + type:"[team_order_by]!" }, where:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" } }, unit:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, units:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } }, user:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, userStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, userStatuses:{ distinct_on:{ - type:"userStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"userStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_order_by]!" }, where:{ - type:"userStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"userStatus_bool_exp" } }, users:{ distinct_on:{ - type:"user_select_column", - array:true, - arrayRequired:false, - required:true + type:"[user_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"user_order_by", - array:true, - arrayRequired:false, - required:true + type:"[user_order_by]!" }, where:{ - type:"user_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"user_bool_exp" } }, webhook:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, webhooks:{ distinct_on:{ - type:"webhook_select_column", - array:true, - arrayRequired:false, - required:true + type:"[webhook_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"webhook_order_by", - array:true, - arrayRequired:false, - required:true + type:"[webhook_order_by]!" }, where:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"webhook_bool_exp" } } }, String_comparison_exp:{ _eq:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _gt:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _gte:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _ilike:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _in:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, _iregex:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _like:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _lt:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _lte:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _neq:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _nilike:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _nin:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, _niregex:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _nlike:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _nregex:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _nsimilar:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _regex:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, _similar:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, subclassification_aggregate_fields:{ count:{ columns:{ - type:"subclassification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, subclassification_bool_exp:{ _and:{ - type:"subclassification_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_bool_exp]!" }, _not:{ - type:"subclassification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"subclassification_bool_exp" }, _or:{ - type:"subclassification_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, subclassification_constraint: "enum", subclassification_enum: "enum", subclassification_enum_comparison_exp:{ _eq:{ - type:"subclassification_enum", - array:false, - arrayRequired:false, - required:false + type:"subclassification_enum" }, _in:{ - type:"subclassification_enum", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"subclassification_enum", - array:false, - arrayRequired:false, - required:false + type:"subclassification_enum" }, _nin:{ - type:"subclassification_enum", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_enum]!" } }, subclassification_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, subclassification_on_conflict:{ constraint:{ - type:"subclassification_constraint", - array:false, - arrayRequired:false, - required:true + type:"subclassification_constraint!" }, update_columns:{ - type:"subclassification_update_column", - array:true, - arrayRequired:true, - required:true + type:"[subclassification_update_column!]!" }, where:{ - type:"subclassification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"subclassification_bool_exp" } }, subclassification_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, subclassification_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, subclassification_select_column: "enum", subclassification_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, subclassification_update_column: "enum", subscription_root:{ aggregateBookingStatuses:{ distinct_on:{ - type:"bookingStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"bookingStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_order_by]!" }, where:{ - type:"bookingStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_bool_exp" } }, aggregateBookings:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, aggregateClassifications:{ distinct_on:{ - type:"classification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[classification_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"classification_order_by", - array:true, - arrayRequired:false, - required:true + type:"[classification_order_by]!" }, where:{ - type:"classification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"classification_bool_exp" } }, aggregateConnections:{ distinct_on:{ - type:"connection_select_column", - array:true, - arrayRequired:false, - required:true + type:"[connection_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"connection_order_by", - array:true, - arrayRequired:false, - required:true + type:"[connection_order_by]!" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" } }, aggregateCurrencies:{ distinct_on:{ - type:"currency_select_column", - array:true, - arrayRequired:false, - required:true + type:"[currency_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"currency_order_by", - array:true, - arrayRequired:false, - required:true + type:"[currency_order_by]!" }, where:{ - type:"currency_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"currency_bool_exp" } }, aggregateEntities:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, aggregateEntityStatuses:{ distinct_on:{ - type:"entityStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entityStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_order_by]!" }, where:{ - type:"entityStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_bool_exp" } }, aggregateIntegrationTypes:{ distinct_on:{ - type:"integrationType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integrationType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_order_by]!" }, where:{ - type:"integrationType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integrationType_bool_exp" } }, aggregateIntegrations:{ distinct_on:{ - type:"integration_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integration_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integration_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integration_order_by]!" }, where:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" } }, aggregateIssues:{ distinct_on:{ - type:"issue_select_column", - array:true, - arrayRequired:false, - required:true + type:"[issue_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"issue_order_by", - array:true, - arrayRequired:false, - required:true + type:"[issue_order_by]!" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" } }, aggregateJobMethods:{ distinct_on:{ - type:"jobMethod_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"jobMethod_order_by", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_order_by]!" }, where:{ - type:"jobMethod_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_bool_exp" } }, aggregateJobStatuses:{ distinct_on:{ - type:"jobStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"jobStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_order_by]!" }, where:{ - type:"jobStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_bool_exp" } }, aggregateJobs:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, aggregateLines:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, aggregateMetrics:{ distinct_on:{ - type:"metric_select_column", - array:true, - arrayRequired:false, - required:true + type:"[metric_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"metric_order_by", - array:true, - arrayRequired:false, - required:true + type:"[metric_order_by]!" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" } }, aggregateNormalizedTypes:{ distinct_on:{ - type:"normalizedType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"normalizedType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_order_by]!" }, where:{ - type:"normalizedType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_bool_exp" } }, aggregatePaymentStatuses:{ distinct_on:{ - type:"paymentStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"paymentStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_order_by]!" }, where:{ - type:"paymentStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_bool_exp" } }, aggregatePaymentTypes:{ distinct_on:{ - type:"paymentType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"paymentType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_order_by]!" }, where:{ - type:"paymentType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentType_bool_exp" } }, aggregatePayments:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, aggregateSubclassifications:{ distinct_on:{ - type:"subclassification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"subclassification_order_by", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_order_by]!" }, where:{ - type:"subclassification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"subclassification_bool_exp" } }, aggregateTags:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, aggregateTeamUsers:{ distinct_on:{ - type:"teamUser_select_column", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"teamUser_order_by", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_order_by]!" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" } }, aggregateTeams:{ distinct_on:{ - type:"team_select_column", - array:true, - arrayRequired:false, - required:true + type:"[team_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"team_order_by", - array:true, - arrayRequired:false, - required:true + type:"[team_order_by]!" }, where:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" } }, aggregateUnits:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } }, aggregateUserStatuses:{ distinct_on:{ - type:"userStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"userStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_order_by]!" }, where:{ - type:"userStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"userStatus_bool_exp" } }, aggregateUsers:{ distinct_on:{ - type:"user_select_column", - array:true, - arrayRequired:false, - required:true + type:"[user_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"user_order_by", - array:true, - arrayRequired:false, - required:true + type:"[user_order_by]!" }, where:{ - type:"user_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"user_bool_exp" } }, aggregateWebhooks:{ distinct_on:{ - type:"webhook_select_column", - array:true, - arrayRequired:false, - required:true + type:"[webhook_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"webhook_order_by", - array:true, - arrayRequired:false, - required:true + type:"[webhook_order_by]!" }, where:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"webhook_bool_exp" } }, booking:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, bookingStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, bookingStatuses:{ distinct_on:{ - type:"bookingStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"bookingStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[bookingStatus_order_by]!" }, where:{ - type:"bookingStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"bookingStatus_bool_exp" } }, booking_channel:{ distinct_on:{ - type:"booking_channel_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_channel_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_order_by]!" }, where:{ - type:"booking_channel_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_bool_exp" } }, booking_channel_aggregate:{ distinct_on:{ - type:"booking_channel_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_channel_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_channel_order_by]!" }, where:{ - type:"booking_channel_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_channel_bool_exp" } }, booking_channel_by_pk:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, bookings:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, classification:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, classifications:{ distinct_on:{ - type:"classification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[classification_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"classification_order_by", - array:true, - arrayRequired:false, - required:true + type:"[classification_order_by]!" }, where:{ - type:"classification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"classification_bool_exp" } }, connection:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, connections:{ distinct_on:{ - type:"connection_select_column", - array:true, - arrayRequired:false, - required:true + type:"[connection_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"connection_order_by", - array:true, - arrayRequired:false, - required:true + type:"[connection_order_by]!" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" } }, currencies:{ distinct_on:{ - type:"currency_select_column", - array:true, - arrayRequired:false, - required:true + type:"[currency_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"currency_order_by", - array:true, - arrayRequired:false, - required:true + type:"[currency_order_by]!" }, where:{ - type:"currency_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"currency_bool_exp" } }, currency:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, entities:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, entity:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, entityStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, entityStatuses:{ distinct_on:{ - type:"entityStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entityStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entityStatus_order_by]!" }, where:{ - type:"entityStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entityStatus_bool_exp" } }, integration:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, integrationType:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, integrationTypes:{ distinct_on:{ - type:"integrationType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integrationType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integrationType_order_by]!" }, where:{ - type:"integrationType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integrationType_bool_exp" } }, integrations:{ distinct_on:{ - type:"integration_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integration_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integration_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integration_order_by]!" }, where:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" } }, issue:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, issues:{ distinct_on:{ - type:"issue_select_column", - array:true, - arrayRequired:false, - required:true + type:"[issue_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"issue_order_by", - array:true, - arrayRequired:false, - required:true + type:"[issue_order_by]!" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" } }, job:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, jobMethod:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, jobMethods:{ distinct_on:{ - type:"jobMethod_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"jobMethod_order_by", - array:true, - arrayRequired:false, - required:true + type:"[jobMethod_order_by]!" }, where:{ - type:"jobMethod_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobMethod_bool_exp" } }, jobStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, jobStatuses:{ distinct_on:{ - type:"jobStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"jobStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[jobStatus_order_by]!" }, where:{ - type:"jobStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"jobStatus_bool_exp" } }, jobs:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, line:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, lines:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, metric:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, metrics:{ distinct_on:{ - type:"metric_select_column", - array:true, - arrayRequired:false, - required:true + type:"[metric_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"metric_order_by", - array:true, - arrayRequired:false, - required:true + type:"[metric_order_by]!" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" } }, normalizedType:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, normalizedTypes:{ distinct_on:{ - type:"normalizedType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"normalizedType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[normalizedType_order_by]!" }, where:{ - type:"normalizedType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"normalizedType_bool_exp" } }, payment:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, paymentStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, paymentStatuses:{ distinct_on:{ - type:"paymentStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"paymentStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[paymentStatus_order_by]!" }, where:{ - type:"paymentStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentStatus_bool_exp" } }, paymentType:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, paymentTypes:{ distinct_on:{ - type:"paymentType_select_column", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"paymentType_order_by", - array:true, - arrayRequired:false, - required:true + type:"[paymentType_order_by]!" }, where:{ - type:"paymentType_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"paymentType_bool_exp" } }, payments:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, subclassification:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, subclassifications:{ distinct_on:{ - type:"subclassification_select_column", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"subclassification_order_by", - array:true, - arrayRequired:false, - required:true + type:"[subclassification_order_by]!" }, where:{ - type:"subclassification_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"subclassification_bool_exp" } }, tag:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, tags:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, team:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, teamUser:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, teamUsers:{ distinct_on:{ - type:"teamUser_select_column", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"teamUser_order_by", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_order_by]!" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" } }, teams:{ distinct_on:{ - type:"team_select_column", - array:true, - arrayRequired:false, - required:true + type:"[team_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"team_order_by", - array:true, - arrayRequired:false, - required:true + type:"[team_order_by]!" }, where:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" } }, unit:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, units:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } }, user:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, userStatus:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, userStatuses:{ distinct_on:{ - type:"userStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"userStatus_order_by", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_order_by]!" }, where:{ - type:"userStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"userStatus_bool_exp" } }, users:{ distinct_on:{ - type:"user_select_column", - array:true, - arrayRequired:false, - required:true + type:"[user_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"user_order_by", - array:true, - arrayRequired:false, - required:true + type:"[user_order_by]!" }, where:{ - type:"user_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"user_bool_exp" } }, webhook:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, webhooks:{ distinct_on:{ - type:"webhook_select_column", - array:true, - arrayRequired:false, - required:true + type:"[webhook_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"webhook_order_by", - array:true, - arrayRequired:false, - required:true + type:"[webhook_order_by]!" }, where:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"webhook_bool_exp" } } }, tag:{ json:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } } }, tag_aggregate_fields:{ count:{ columns:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, tag_aggregate_order_by:{ count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"tag_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"tag_max_order_by" }, min:{ - type:"tag_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"tag_min_order_by" } }, tag_append_input:{ json:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, tag_arr_rel_insert_input:{ data:{ - type:"tag_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[tag_insert_input!]!" }, on_conflict:{ - type:"tag_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"tag_on_conflict" } }, tag_bool_exp:{ _and:{ - type:"tag_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[tag_bool_exp]!" }, _not:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" }, _or:{ - type:"tag_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[tag_bool_exp]!" }, booking:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" }, bookingId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, connection:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, connectionId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, json:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, payment:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" }, paymentId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, type:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, uniqueRef:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, unit:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" }, unitId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" } }, tag_constraint: "enum", tag_delete_at_path_input:{ json:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, tag_delete_elem_input:{ json:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, tag_delete_key_input:{ json:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, tag_insert_input:{ booking:{ - type:"booking_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"booking_obj_rel_insert_input" }, bookingId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, connection:{ - type:"connection_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_obj_rel_insert_input" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, json:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, payment:{ - type:"payment_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"payment_obj_rel_insert_input" }, paymentId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, unit:{ - type:"unit_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"unit_obj_rel_insert_input" }, unitId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, tag_max_order_by:{ bookingId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, paymentId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, tag_min_order_by:{ bookingId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, paymentId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, tag_on_conflict:{ constraint:{ - type:"tag_constraint", - array:false, - arrayRequired:false, - required:true + type:"tag_constraint!" }, update_columns:{ - type:"tag_update_column", - array:true, - arrayRequired:true, - required:true + type:"[tag_update_column!]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, tag_order_by:{ booking:{ - type:"booking_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_order_by" }, bookingId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connection:{ - type:"connection_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, json:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, payment:{ - type:"payment_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_order_by" }, paymentId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, type:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, unit:{ - type:"unit_order_by", - array:false, - arrayRequired:false, - required:false + type:"unit_order_by" }, unitId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, tag_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, tag_prepend_input:{ json:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, tag_select_column: "enum", tag_set_input:{ bookingId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, json:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, paymentId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, type:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, unitId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, tag_update_column: "enum", team:{ bookings:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, bookings_aggregate:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, connections:{ distinct_on:{ - type:"connection_select_column", - array:true, - arrayRequired:false, - required:true + type:"[connection_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"connection_order_by", - array:true, - arrayRequired:false, - required:true + type:"[connection_order_by]!" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" } }, connections_aggregate:{ distinct_on:{ - type:"connection_select_column", - array:true, - arrayRequired:false, - required:true + type:"[connection_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"connection_order_by", - array:true, - arrayRequired:false, - required:true + type:"[connection_order_by]!" }, where:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" } }, entities:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, entities_aggregate:{ distinct_on:{ - type:"entity_select_column", - array:true, - arrayRequired:false, - required:true + type:"[entity_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"entity_order_by", - array:true, - arrayRequired:false, - required:true + type:"[entity_order_by]!" }, where:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" } }, integrations:{ distinct_on:{ - type:"integration_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integration_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integration_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integration_order_by]!" }, where:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" } }, integrations_aggregate:{ distinct_on:{ - type:"integration_select_column", - array:true, - arrayRequired:false, - required:true + type:"[integration_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"integration_order_by", - array:true, - arrayRequired:false, - required:true + type:"[integration_order_by]!" }, where:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" } }, issues:{ distinct_on:{ - type:"issue_select_column", - array:true, - arrayRequired:false, - required:true + type:"[issue_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"issue_order_by", - array:true, - arrayRequired:false, - required:true + type:"[issue_order_by]!" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" } }, issues_aggregate:{ distinct_on:{ - type:"issue_select_column", - array:true, - arrayRequired:false, - required:true + type:"[issue_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"issue_order_by", - array:true, - arrayRequired:false, - required:true + type:"[issue_order_by]!" }, where:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" } }, jobs:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, jobs_aggregate:{ distinct_on:{ - type:"job_select_column", - array:true, - arrayRequired:false, - required:true + type:"[job_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"job_order_by", - array:true, - arrayRequired:false, - required:true + type:"[job_order_by]!" }, where:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" } }, lines:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, lines_aggregate:{ distinct_on:{ - type:"line_select_column", - array:true, - arrayRequired:false, - required:true + type:"[line_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"line_order_by", - array:true, - arrayRequired:false, - required:true + type:"[line_order_by]!" }, where:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" } }, members:{ distinct_on:{ - type:"teamUser_select_column", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"teamUser_order_by", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_order_by]!" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" } }, members_aggregate:{ distinct_on:{ - type:"teamUser_select_column", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"teamUser_order_by", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_order_by]!" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" } }, metrics:{ distinct_on:{ - type:"metric_select_column", - array:true, - arrayRequired:false, - required:true + type:"[metric_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"metric_order_by", - array:true, - arrayRequired:false, - required:true + type:"[metric_order_by]!" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" } }, metrics_aggregate:{ distinct_on:{ - type:"metric_select_column", - array:true, - arrayRequired:false, - required:true + type:"[metric_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"metric_order_by", - array:true, - arrayRequired:false, - required:true + type:"[metric_order_by]!" }, where:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" } }, payments:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, payments_aggregate:{ distinct_on:{ - type:"payment_select_column", - array:true, - arrayRequired:false, - required:true + type:"[payment_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"payment_order_by", - array:true, - arrayRequired:false, - required:true + type:"[payment_order_by]!" }, where:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" } }, tags:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, tags_aggregate:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, units:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } }, units_aggregate:{ distinct_on:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"unit_order_by", - array:true, - arrayRequired:false, - required:true + type:"[unit_order_by]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } }, webhooks:{ distinct_on:{ - type:"webhook_select_column", - array:true, - arrayRequired:false, - required:true + type:"[webhook_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"webhook_order_by", - array:true, - arrayRequired:false, - required:true + type:"[webhook_order_by]!" }, where:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"webhook_bool_exp" } }, webhooks_aggregate:{ distinct_on:{ - type:"webhook_select_column", - array:true, - arrayRequired:false, - required:true + type:"[webhook_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"webhook_order_by", - array:true, - arrayRequired:false, - required:true + type:"[webhook_order_by]!" }, where:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"webhook_bool_exp" } } }, team_aggregate_fields:{ count:{ columns:{ - type:"team_select_column", - array:true, - arrayRequired:false, - required:true + type:"[team_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, team_bool_exp:{ _and:{ - type:"team_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[team_bool_exp]!" }, _not:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, _or:{ - type:"team_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[team_bool_exp]!" }, address:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, bookings:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" }, commissionPercentage:{ - type:"numeric_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"numeric_comparison_exp" }, connections:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, email:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, entities:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, integrations:{ - type:"integration_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"integration_bool_exp" }, isActive:{ - type:"Boolean_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Boolean_comparison_exp" }, isTest:{ - type:"Boolean_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Boolean_comparison_exp" }, issues:{ - type:"issue_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"issue_bool_exp" }, jobs:{ - type:"job_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"job_bool_exp" }, lines:{ - type:"line_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"line_bool_exp" }, members:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" }, metrics:{ - type:"metric_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"metric_bool_exp" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, payments:{ - type:"payment_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"payment_bool_exp" }, stripeId:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, stripeSubscriptionItemId:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, supportEmail:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, supportPhone:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, tags:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" }, units:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" }, webhooks:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"webhook_bool_exp" }, website:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, team_constraint: "enum", team_inc_input:{ commissionPercentage:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" } }, team_insert_input:{ address:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, bookings:{ - type:"booking_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"booking_arr_rel_insert_input" }, commissionPercentage:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, connections:{ - type:"connection_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_arr_rel_insert_input" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, email:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, entities:{ - type:"entity_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"entity_arr_rel_insert_input" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, integrations:{ - type:"integration_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"integration_arr_rel_insert_input" }, isActive:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, isTest:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, issues:{ - type:"issue_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"issue_arr_rel_insert_input" }, jobs:{ - type:"job_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"job_arr_rel_insert_input" }, lines:{ - type:"line_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"line_arr_rel_insert_input" }, members:{ - type:"teamUser_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"teamUser_arr_rel_insert_input" }, metrics:{ - type:"metric_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"metric_arr_rel_insert_input" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, payments:{ - type:"payment_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"payment_arr_rel_insert_input" }, stripeId:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, stripeSubscriptionItemId:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, supportEmail:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, supportPhone:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, tags:{ - type:"tag_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"tag_arr_rel_insert_input" }, units:{ - type:"unit_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"unit_arr_rel_insert_input" }, webhooks:{ - type:"webhook_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"webhook_arr_rel_insert_input" }, website:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, team_obj_rel_insert_input:{ data:{ - type:"team_insert_input", - array:false, - arrayRequired:false, - required:true + type:"team_insert_input!" }, on_conflict:{ - type:"team_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"team_on_conflict" } }, team_on_conflict:{ constraint:{ - type:"team_constraint", - array:false, - arrayRequired:false, - required:true + type:"team_constraint!" }, update_columns:{ - type:"team_update_column", - array:true, - arrayRequired:true, - required:true + type:"[team_update_column!]!" }, where:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" } }, team_order_by:{ address:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, bookings_aggregate:{ - type:"booking_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_aggregate_order_by" }, commissionPercentage:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, connections_aggregate:{ - type:"connection_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_aggregate_order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, email:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entities_aggregate:{ - type:"entity_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_aggregate_order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, integrations_aggregate:{ - type:"integration_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"integration_aggregate_order_by" }, isActive:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, isTest:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, issues_aggregate:{ - type:"issue_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"issue_aggregate_order_by" }, jobs_aggregate:{ - type:"job_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"job_aggregate_order_by" }, lines_aggregate:{ - type:"line_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"line_aggregate_order_by" }, members_aggregate:{ - type:"teamUser_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"teamUser_aggregate_order_by" }, metrics_aggregate:{ - type:"metric_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"metric_aggregate_order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, payments_aggregate:{ - type:"payment_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"payment_aggregate_order_by" }, stripeId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, stripeSubscriptionItemId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, supportEmail:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, supportPhone:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, tags_aggregate:{ - type:"tag_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"tag_aggregate_order_by" }, units_aggregate:{ - type:"unit_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"unit_aggregate_order_by" }, webhooks_aggregate:{ - type:"webhook_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"webhook_aggregate_order_by" }, website:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, team_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, team_select_column: "enum", team_set_input:{ address:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, commissionPercentage:{ - type:"numeric", - array:false, - arrayRequired:false, - required:false + type:"numeric" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, email:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, isActive:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, isTest:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, stripeId:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, stripeSubscriptionItemId:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, supportEmail:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, supportPhone:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, website:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, team_update_column: "enum", teamUser_aggregate_fields:{ count:{ columns:{ - type:"teamUser_select_column", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, teamUser_aggregate_order_by:{ count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"teamUser_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"teamUser_max_order_by" }, min:{ - type:"teamUser_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"teamUser_min_order_by" } }, teamUser_arr_rel_insert_input:{ data:{ - type:"teamUser_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[teamUser_insert_input!]!" }, on_conflict:{ - type:"teamUser_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"teamUser_on_conflict" } }, teamUser_bool_exp:{ _and:{ - type:"teamUser_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_bool_exp]!" }, _not:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" }, _or:{ - type:"teamUser_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_bool_exp]!" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, role:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, user:{ - type:"user_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"user_bool_exp" }, userId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" } }, teamUser_constraint: "enum", teamUser_insert_input:{ createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, role:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, user:{ - type:"user_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"user_obj_rel_insert_input" }, userId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" } }, teamUser_max_order_by:{ createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, role:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, userId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, teamUser_min_order_by:{ createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, role:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, userId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, teamUser_on_conflict:{ constraint:{ - type:"teamUser_constraint", - array:false, - arrayRequired:false, - required:true + type:"teamUser_constraint!" }, update_columns:{ - type:"teamUser_update_column", - array:true, - arrayRequired:true, - required:true + type:"[teamUser_update_column!]!" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" } }, teamUser_order_by:{ createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, role:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, user:{ - type:"user_order_by", - array:false, - arrayRequired:false, - required:false + type:"user_order_by" }, userId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, teamUser_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, teamUser_select_column: "enum", teamUser_set_input:{ createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, role:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, userId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" } }, teamUser_update_column: "enum", timestamptz: "String", timestamptz_comparison_exp:{ _eq:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, _gt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, _gte:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, _in:{ - type:"timestamptz", - array:true, - arrayRequired:false, - required:true + type:"[timestamptz]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _lt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, _lte:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, _neq:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, _nin:{ - type:"timestamptz", - array:true, - arrayRequired:false, - required:true + type:"[timestamptz]!" } }, unit:{ bookings:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, bookings_aggregate:{ distinct_on:{ - type:"booking_select_column", - array:true, - arrayRequired:false, - required:true + type:"[booking_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"booking_order_by", - array:true, - arrayRequired:false, - required:true + type:"[booking_order_by]!" }, where:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" } }, metadata:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, tags:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } }, tags_aggregate:{ distinct_on:{ - type:"tag_select_column", - array:true, - arrayRequired:false, - required:true + type:"[tag_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"tag_order_by", - array:true, - arrayRequired:false, - required:true + type:"[tag_order_by]!" }, where:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" } } }, unit_aggregate_fields:{ count:{ columns:{ - type:"unit_select_column", - array:true, - arrayRequired:false, - required:true + type:"[unit_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, unit_aggregate_order_by:{ count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"unit_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"unit_max_order_by" }, min:{ - type:"unit_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"unit_min_order_by" } }, unit_append_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, unit_arr_rel_insert_input:{ data:{ - type:"unit_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[unit_insert_input!]!" }, on_conflict:{ - type:"unit_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"unit_on_conflict" } }, unit_bool_exp:{ _and:{ - type:"unit_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[unit_bool_exp]!" }, _not:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" }, _or:{ - type:"unit_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[unit_bool_exp]!" }, bookings:{ - type:"booking_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"booking_bool_exp" }, connection:{ - type:"connection_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"connection_bool_exp" }, connectionId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, entity:{ - type:"entity_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"entity_bool_exp" }, entityId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, metadata:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, status:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, tags:{ - type:"tag_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"tag_bool_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, uniqueRef:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, updatedAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" } }, unit_constraint: "enum", unit_delete_at_path_input:{ metadata:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, unit_delete_elem_input:{ metadata:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, unit_delete_key_input:{ metadata:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, unit_insert_input:{ bookings:{ - type:"booking_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"booking_arr_rel_insert_input" }, connection:{ - type:"connection_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"connection_obj_rel_insert_input" }, connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, entity:{ - type:"entity_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"entity_obj_rel_insert_input" }, entityId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, status:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, tags:{ - type:"tag_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"tag_arr_rel_insert_input" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, unit_max_order_by:{ connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, unit_min_order_by:{ connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, unit_obj_rel_insert_input:{ data:{ - type:"unit_insert_input", - array:false, - arrayRequired:false, - required:true + type:"unit_insert_input!" }, on_conflict:{ - type:"unit_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"unit_on_conflict" } }, unit_on_conflict:{ constraint:{ - type:"unit_constraint", - array:false, - arrayRequired:false, - required:true + type:"unit_constraint!" }, update_columns:{ - type:"unit_update_column", - array:true, - arrayRequired:true, - required:true + type:"[unit_update_column!]!" }, where:{ - type:"unit_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"unit_bool_exp" } }, unit_order_by:{ bookings_aggregate:{ - type:"booking_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"booking_aggregate_order_by" }, connection:{ - type:"connection_order_by", - array:false, - arrayRequired:false, - required:false + type:"connection_order_by" }, connectionId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, entity:{ - type:"entity_order_by", - array:false, - arrayRequired:false, - required:false + type:"entity_order_by" }, entityId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, metadata:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, tags_aggregate:{ - type:"tag_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"tag_aggregate_order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, uniqueRef:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, updatedAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, unit_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, unit_prepend_input:{ metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, unit_select_column: "enum", unit_set_input:{ connectionId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, entityId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, metadata:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, status:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, uniqueRef:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, updatedAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, unit_update_column: "enum", user:{ memberships:{ distinct_on:{ - type:"teamUser_select_column", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"teamUser_order_by", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_order_by]!" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" } }, memberships_aggregate:{ distinct_on:{ - type:"teamUser_select_column", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_select_column]!" }, limit:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, offset:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, order_by:{ - type:"teamUser_order_by", - array:true, - arrayRequired:false, - required:true + type:"[teamUser_order_by]!" }, where:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" } } }, user_aggregate_fields:{ count:{ columns:{ - type:"user_select_column", - array:true, - arrayRequired:false, - required:true + type:"[user_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, user_bool_exp:{ _and:{ - type:"user_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[user_bool_exp]!" }, _not:{ - type:"user_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"user_bool_exp" }, _or:{ - type:"user_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[user_bool_exp]!" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, email:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, isAdmin:{ - type:"Boolean_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"Boolean_comparison_exp" }, memberships:{ - type:"teamUser_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"teamUser_bool_exp" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, status:{ - type:"user_status_enum_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"user_status_enum_comparison_exp" }, sub:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" }, trialExpiryAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" } }, user_constraint: "enum", user_insert_input:{ createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, email:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, isAdmin:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, memberships:{ - type:"teamUser_arr_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"teamUser_arr_rel_insert_input" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, status:{ - type:"user_status_enum", - array:false, - arrayRequired:false, - required:false + type:"user_status_enum" }, sub:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, trialExpiryAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, user_obj_rel_insert_input:{ data:{ - type:"user_insert_input", - array:false, - arrayRequired:false, - required:true + type:"user_insert_input!" }, on_conflict:{ - type:"user_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"user_on_conflict" } }, user_on_conflict:{ constraint:{ - type:"user_constraint", - array:false, - arrayRequired:false, - required:true + type:"user_constraint!" }, update_columns:{ - type:"user_update_column", - array:true, - arrayRequired:true, - required:true + type:"[user_update_column!]!" }, where:{ - type:"user_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"user_bool_exp" } }, user_order_by:{ createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, email:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, isAdmin:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, memberships_aggregate:{ - type:"teamUser_aggregate_order_by", - array:false, - arrayRequired:false, - required:false + type:"teamUser_aggregate_order_by" }, name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, status:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, sub:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, trialExpiryAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, user_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, user_select_column: "enum", user_set_input:{ createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, email:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, isAdmin:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, status:{ - type:"user_status_enum", - array:false, - arrayRequired:false, - required:false + type:"user_status_enum" }, sub:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, trialExpiryAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" } }, user_status_enum: "enum", user_status_enum_comparison_exp:{ _eq:{ - type:"user_status_enum", - array:false, - arrayRequired:false, - required:false + type:"user_status_enum" }, _in:{ - type:"user_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[user_status_enum]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _neq:{ - type:"user_status_enum", - array:false, - arrayRequired:false, - required:false + type:"user_status_enum" }, _nin:{ - type:"user_status_enum", - array:true, - arrayRequired:false, - required:true + type:"[user_status_enum]!" } }, user_update_column: "enum", userStatus_aggregate_fields:{ count:{ columns:{ - type:"userStatus_select_column", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, userStatus_bool_exp:{ _and:{ - type:"userStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_bool_exp]!" }, _not:{ - type:"userStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"userStatus_bool_exp" }, _or:{ - type:"userStatus_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[userStatus_bool_exp]!" }, name:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, userStatus_constraint: "enum", userStatus_insert_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, userStatus_on_conflict:{ constraint:{ - type:"userStatus_constraint", - array:false, - arrayRequired:false, - required:true + type:"userStatus_constraint!" }, update_columns:{ - type:"userStatus_update_column", - array:true, - arrayRequired:true, - required:true + type:"[userStatus_update_column!]!" }, where:{ - type:"userStatus_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"userStatus_bool_exp" } }, userStatus_order_by:{ name:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, userStatus_pk_columns_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:true + type:"String!" } }, userStatus_select_column: "enum", userStatus_set_input:{ name:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, userStatus_update_column: "enum", uuid: "String", uuid_comparison_exp:{ _eq:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, _gt:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, _gte:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, _in:{ - type:"uuid", - array:true, - arrayRequired:false, - required:true + type:"[uuid]!" }, _is_null:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" }, _lt:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, _lte:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, _neq:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, _nin:{ - type:"uuid", - array:true, - arrayRequired:false, - required:true + type:"[uuid]!" } }, webhook:{ headers:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, types:{ path:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } } }, webhook_aggregate_fields:{ count:{ columns:{ - type:"webhook_select_column", - array:true, - arrayRequired:false, - required:true + type:"[webhook_select_column]!" }, distinct:{ - type:"Boolean", - array:false, - arrayRequired:false, - required:false + type:"Boolean" } } }, webhook_aggregate_order_by:{ count:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, max:{ - type:"webhook_max_order_by", - array:false, - arrayRequired:false, - required:false + type:"webhook_max_order_by" }, min:{ - type:"webhook_min_order_by", - array:false, - arrayRequired:false, - required:false + type:"webhook_min_order_by" } }, webhook_append_input:{ headers:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, types:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, webhook_arr_rel_insert_input:{ data:{ - type:"webhook_insert_input", - array:true, - arrayRequired:true, - required:true + type:"[webhook_insert_input!]!" }, on_conflict:{ - type:"webhook_on_conflict", - array:false, - arrayRequired:false, - required:false + type:"webhook_on_conflict" } }, webhook_bool_exp:{ _and:{ - type:"webhook_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[webhook_bool_exp]!" }, _not:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"webhook_bool_exp" }, _or:{ - type:"webhook_bool_exp", - array:true, - arrayRequired:false, - required:true + type:"[webhook_bool_exp]!" }, createdAt:{ - type:"timestamptz_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"timestamptz_comparison_exp" }, headers:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, id:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, team:{ - type:"team_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"team_bool_exp" }, teamId:{ - type:"uuid_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"uuid_comparison_exp" }, types:{ - type:"jsonb_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"jsonb_comparison_exp" }, types2:{ - type:"_text_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"_text_comparison_exp" }, url:{ - type:"String_comparison_exp", - array:false, - arrayRequired:false, - required:false + type:"String_comparison_exp" } }, webhook_constraint: "enum", webhook_delete_at_path_input:{ headers:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" }, types:{ - type:"String", - array:true, - arrayRequired:false, - required:true + type:"[String]!" } }, webhook_delete_elem_input:{ headers:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" }, types:{ - type:"Int", - array:false, - arrayRequired:false, - required:false + type:"Int" } }, webhook_delete_key_input:{ headers:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" }, types:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, webhook_insert_input:{ createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, headers:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, team:{ - type:"team_obj_rel_insert_input", - array:false, - arrayRequired:false, - required:false + type:"team_obj_rel_insert_input" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, types:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, types2:{ - type:"_text", - array:false, - arrayRequired:false, - required:false + type:"_text" }, url:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, webhook_max_order_by:{ createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, url:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, webhook_min_order_by:{ createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, url:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, webhook_on_conflict:{ constraint:{ - type:"webhook_constraint", - array:false, - arrayRequired:false, - required:true + type:"webhook_constraint!" }, update_columns:{ - type:"webhook_update_column", - array:true, - arrayRequired:true, - required:true + type:"[webhook_update_column!]!" }, where:{ - type:"webhook_bool_exp", - array:false, - arrayRequired:false, - required:false + type:"webhook_bool_exp" } }, webhook_order_by:{ createdAt:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, headers:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, id:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, team:{ - type:"team_order_by", - array:false, - arrayRequired:false, - required:false + type:"team_order_by" }, teamId:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, types:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, types2:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" }, url:{ - type:"order_by", - array:false, - arrayRequired:false, - required:false + type:"order_by" } }, webhook_pk_columns_input:{ id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:true + type:"uuid!" } }, webhook_prepend_input:{ headers:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, types:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" } }, webhook_select_column: "enum", webhook_set_input:{ createdAt:{ - type:"timestamptz", - array:false, - arrayRequired:false, - required:false + type:"timestamptz" }, headers:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, id:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, teamId:{ - type:"uuid", - array:false, - arrayRequired:false, - required:false + type:"uuid" }, types:{ - type:"jsonb", - array:false, - arrayRequired:false, - required:false + type:"jsonb" }, types2:{ - type:"_text", - array:false, - arrayRequired:false, - required:false + type:"_text" }, url:{ - type:"String", - array:false, - arrayRequired:false, - required:false + type:"String" } }, webhook_update_column: "enum" diff --git a/examples/typescript-node-big-schema/src/zeus/index.ts b/examples/typescript-node-big-schema/src/zeus/index.ts index 80e6923d..67d70549 100644 --- a/examples/typescript-node-big-schema/src/zeus/index.ts +++ b/examples/typescript-node-big-schema/src/zeus/index.ts @@ -8,15 +8,15 @@ export type ValueTypes = { ["_text"]:unknown; /** Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. */ ["_text_comparison_exp"]: { - _eq?:ValueTypes["_text"] | null, - _gt?:ValueTypes["_text"] | null, - _gte?:ValueTypes["_text"] | null, - _in?:ValueTypes["_text"][], - _is_null?:boolean | null, - _lt?:ValueTypes["_text"] | null, - _lte?:ValueTypes["_text"] | null, - _neq?:ValueTypes["_text"] | null, - _nin?:ValueTypes["_text"][] + _eq?: ValueTypes["_text"] | undefined | null, + _gt?: ValueTypes["_text"] | undefined | null, + _gte?: ValueTypes["_text"] | undefined | null, + _in?: (ValueTypes["_text"])[], + _is_null?: boolean | undefined | null, + _lt?: ValueTypes["_text"] | undefined | null, + _lte?: ValueTypes["_text"] | undefined | null, + _neq?: ValueTypes["_text"] | undefined | null, + _nin?: (ValueTypes["_text"])[] }; /** columns and relationships of "booking" */ ["booking"]: AliasType<{ @@ -39,48 +39,48 @@ export type ValueTypes = { id?:boolean, isOTA?:boolean, lines?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], lines_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line_aggregate"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], metadata?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], nights?:boolean, /** An object relationship */ otaBooking?:ValueTypes["booking"], otaBookingId?:boolean, relatedBookings?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], relatedBookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking_aggregate"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], status?:boolean, tags?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag_aggregate"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], /** An object relationship */ team?:ValueTypes["team"], teamId?:boolean, @@ -100,7 +100,7 @@ tags_aggregate?: [{ /** distinct select on columns */ /** aggregate fields of "booking" */ ["booking_aggregate_fields"]: AliasType<{ avg?:ValueTypes["booking_avg_fields"], -count?: [{ columns?:ValueTypes["booking_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["booking_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["booking_max_fields"], min?:ValueTypes["booking_min_fields"], stddev?:ValueTypes["booking_stddev_fields"], @@ -114,27 +114,27 @@ count?: [{ columns?:ValueTypes["booking_select_column"][], distinct?:boolean | n }>; /** order by aggregate values of table "booking" */ ["booking_aggregate_order_by"]: { - avg?:ValueTypes["booking_avg_order_by"] | null, - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["booking_max_order_by"] | null, - min?:ValueTypes["booking_min_order_by"] | null, - stddev?:ValueTypes["booking_stddev_order_by"] | null, - stddev_pop?:ValueTypes["booking_stddev_pop_order_by"] | null, - stddev_samp?:ValueTypes["booking_stddev_samp_order_by"] | null, - sum?:ValueTypes["booking_sum_order_by"] | null, - var_pop?:ValueTypes["booking_var_pop_order_by"] | null, - var_samp?:ValueTypes["booking_var_samp_order_by"] | null, - variance?:ValueTypes["booking_variance_order_by"] | null + avg?: ValueTypes["booking_avg_order_by"] | undefined | null, + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["booking_max_order_by"] | undefined | null, + min?: ValueTypes["booking_min_order_by"] | undefined | null, + stddev?: ValueTypes["booking_stddev_order_by"] | undefined | null, + stddev_pop?: ValueTypes["booking_stddev_pop_order_by"] | undefined | null, + stddev_samp?: ValueTypes["booking_stddev_samp_order_by"] | undefined | null, + sum?: ValueTypes["booking_sum_order_by"] | undefined | null, + var_pop?: ValueTypes["booking_var_pop_order_by"] | undefined | null, + var_samp?: ValueTypes["booking_var_samp_order_by"] | undefined | null, + variance?: ValueTypes["booking_variance_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["booking_append_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "booking" */ ["booking_arr_rel_insert_input"]: { - data:ValueTypes["booking_insert_input"][], + data: (ValueTypes["booking_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["booking_on_conflict"] | null + on_conflict?: ValueTypes["booking_on_conflict"] | undefined | null }; /** aggregate avg on columns */ ["booking_avg_fields"]: AliasType<{ @@ -144,44 +144,44 @@ count?: [{ columns?:ValueTypes["booking_select_column"][], distinct?:boolean | n }>; /** order by avg() on columns of table "booking" */ ["booking_avg_order_by"]: { - guests?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null + guests?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null }; /** Boolean expression to filter rows from the table "booking". All fields are combined with a logical 'AND'. */ ["booking_bool_exp"]: { - _and?:ValueTypes["booking_bool_exp"][], - _not?:ValueTypes["booking_bool_exp"] | null, - _or?:ValueTypes["booking_bool_exp"][], - bookedAt?:ValueTypes["timestamptz_comparison_exp"] | null, - bookerName?:ValueTypes["String_comparison_exp"] | null, - bookingChannel?:ValueTypes["booking_channel_enum_comparison_exp"] | null, - checkIn?:ValueTypes["timestamptz_comparison_exp"] | null, - checkOut?:ValueTypes["timestamptz_comparison_exp"] | null, - confirmationCode?:ValueTypes["String_comparison_exp"] | null, - connection?:ValueTypes["connection_bool_exp"] | null, - connectionId?:ValueTypes["uuid_comparison_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - currency?:ValueTypes["currency_enum_comparison_exp"] | null, - entity?:ValueTypes["entity_bool_exp"] | null, - entityId?:ValueTypes["uuid_comparison_exp"] | null, - guestName?:ValueTypes["String_comparison_exp"] | null, - guests?:ValueTypes["Int_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - isOTA?:ValueTypes["Boolean_comparison_exp"] | null, - lines?:ValueTypes["line_bool_exp"] | null, - metadata?:ValueTypes["jsonb_comparison_exp"] | null, - nights?:ValueTypes["Int_comparison_exp"] | null, - otaBooking?:ValueTypes["booking_bool_exp"] | null, - otaBookingId?:ValueTypes["uuid_comparison_exp"] | null, - relatedBookings?:ValueTypes["booking_bool_exp"] | null, - status?:ValueTypes["booking_status_enum_comparison_exp"] | null, - tags?:ValueTypes["tag_bool_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - uniqueRef?:ValueTypes["String_comparison_exp"] | null, - unit?:ValueTypes["unit_bool_exp"] | null, - unitId?:ValueTypes["uuid_comparison_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null + _and?: (ValueTypes["booking_bool_exp"])[], + _not?: ValueTypes["booking_bool_exp"] | undefined | null, + _or?: (ValueTypes["booking_bool_exp"])[], + bookedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + bookerName?: ValueTypes["String_comparison_exp"] | undefined | null, + bookingChannel?: ValueTypes["booking_channel_enum_comparison_exp"] | undefined | null, + checkIn?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + checkOut?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + confirmationCode?: ValueTypes["String_comparison_exp"] | undefined | null, + connection?: ValueTypes["connection_bool_exp"] | undefined | null, + connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + currency?: ValueTypes["currency_enum_comparison_exp"] | undefined | null, + entity?: ValueTypes["entity_bool_exp"] | undefined | null, + entityId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + guestName?: ValueTypes["String_comparison_exp"] | undefined | null, + guests?: ValueTypes["Int_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + isOTA?: ValueTypes["Boolean_comparison_exp"] | undefined | null, + lines?: ValueTypes["line_bool_exp"] | undefined | null, + metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + nights?: ValueTypes["Int_comparison_exp"] | undefined | null, + otaBooking?: ValueTypes["booking_bool_exp"] | undefined | null, + otaBookingId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + relatedBookings?: ValueTypes["booking_bool_exp"] | undefined | null, + status?: ValueTypes["booking_status_enum_comparison_exp"] | undefined | null, + tags?: ValueTypes["tag_bool_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, + unit?: ValueTypes["unit_bool_exp"] | undefined | null, + unitId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null }; /** columns and relationships of "booking_channel" */ ["booking_channel"]: AliasType<{ @@ -196,32 +196,32 @@ count?: [{ columns?:ValueTypes["booking_select_column"][], distinct?:boolean | n }>; /** aggregate fields of "booking_channel" */ ["booking_channel_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["booking_channel_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["booking_channel_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["booking_channel_max_fields"], min?:ValueTypes["booking_channel_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "booking_channel". All fields are combined with a logical 'AND'. */ ["booking_channel_bool_exp"]: { - _and?:ValueTypes["booking_channel_bool_exp"][], - _not?:ValueTypes["booking_channel_bool_exp"] | null, - _or?:ValueTypes["booking_channel_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["booking_channel_bool_exp"])[], + _not?: ValueTypes["booking_channel_bool_exp"] | undefined | null, + _or?: (ValueTypes["booking_channel_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "booking_channel" */ ["booking_channel_constraint"]:booking_channel_constraint; ["booking_channel_enum"]:booking_channel_enum; /** Boolean expression to compare columns of type "booking_channel_enum". All fields are combined with logical 'AND'. */ ["booking_channel_enum_comparison_exp"]: { - _eq?:ValueTypes["booking_channel_enum"] | null, - _in?:ValueTypes["booking_channel_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["booking_channel_enum"] | null, - _nin?:ValueTypes["booking_channel_enum"][] + _eq?: ValueTypes["booking_channel_enum"] | undefined | null, + _in?: (ValueTypes["booking_channel_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["booking_channel_enum"] | undefined | null, + _nin?: (ValueTypes["booking_channel_enum"])[] }; /** input type for inserting data into table "booking_channel" */ ["booking_channel_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["booking_channel_max_fields"]: AliasType<{ @@ -243,23 +243,23 @@ count?: [{ columns?:ValueTypes["booking_channel_select_column"][], distinct?:boo }>; /** on conflict condition type for table "booking_channel" */ ["booking_channel_on_conflict"]: { - constraint:ValueTypes["booking_channel_constraint"], - update_columns:ValueTypes["booking_channel_update_column"][], - where?:ValueTypes["booking_channel_bool_exp"] | null + constraint: ValueTypes["booking_channel_constraint"], + update_columns: (ValueTypes["booking_channel_update_column"])[] | undefined | null, + where?: ValueTypes["booking_channel_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "booking_channel". */ ["booking_channel_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: booking_channel */ ["booking_channel_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "booking_channel" */ ["booking_channel_select_column"]:booking_channel_select_column; /** input type for updating data in table "booking_channel" */ ["booking_channel_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "booking_channel" */ ["booking_channel_update_column"]:booking_channel_update_column; @@ -267,54 +267,54 @@ count?: [{ columns?:ValueTypes["booking_channel_select_column"][], distinct?:boo ["booking_constraint"]:booking_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["booking_delete_at_path_input"]: { - metadata?:string[] + metadata?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["booking_delete_elem_input"]: { - metadata?:number | null + metadata?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["booking_delete_key_input"]: { - metadata?:string | null + metadata?: string | undefined | null }; /** input type for incrementing numeric columns in table "booking" */ ["booking_inc_input"]: { - guests?:number | null, - nights?:number | null + guests?: number | undefined | null, + nights?: number | undefined | null }; /** input type for inserting data into table "booking" */ ["booking_insert_input"]: { - bookedAt?:ValueTypes["timestamptz"] | null, - bookerName?:string | null, - bookingChannel?:ValueTypes["booking_channel_enum"] | null, - checkIn?:ValueTypes["timestamptz"] | null, - checkOut?:ValueTypes["timestamptz"] | null, - confirmationCode?:string | null, - connection?:ValueTypes["connection_obj_rel_insert_input"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - currency?:ValueTypes["currency_enum"] | null, - entity?:ValueTypes["entity_obj_rel_insert_input"] | null, - entityId?:ValueTypes["uuid"] | null, - guestName?:string | null, - guests?:number | null, - id?:ValueTypes["uuid"] | null, - isOTA?:boolean | null, - lines?:ValueTypes["line_arr_rel_insert_input"] | null, - metadata?:ValueTypes["jsonb"] | null, - nights?:number | null, - otaBooking?:ValueTypes["booking_obj_rel_insert_input"] | null, - otaBookingId?:ValueTypes["uuid"] | null, - relatedBookings?:ValueTypes["booking_arr_rel_insert_input"] | null, - status?:ValueTypes["booking_status_enum"] | null, - tags?:ValueTypes["tag_arr_rel_insert_input"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - uniqueRef?:string | null, - unit?:ValueTypes["unit_obj_rel_insert_input"] | null, - unitId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null + bookedAt?: ValueTypes["timestamptz"] | undefined | null, + bookerName?: string | undefined | null, + bookingChannel?: ValueTypes["booking_channel_enum"] | undefined | null, + checkIn?: ValueTypes["timestamptz"] | undefined | null, + checkOut?: ValueTypes["timestamptz"] | undefined | null, + confirmationCode?: string | undefined | null, + connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + currency?: ValueTypes["currency_enum"] | undefined | null, + entity?: ValueTypes["entity_obj_rel_insert_input"] | undefined | null, + entityId?: ValueTypes["uuid"] | undefined | null, + guestName?: string | undefined | null, + guests?: number | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + isOTA?: boolean | undefined | null, + lines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + nights?: number | undefined | null, + otaBooking?: ValueTypes["booking_obj_rel_insert_input"] | undefined | null, + otaBookingId?: ValueTypes["uuid"] | undefined | null, + relatedBookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, + status?: ValueTypes["booking_status_enum"] | undefined | null, + tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + uniqueRef?: string | undefined | null, + unit?: ValueTypes["unit_obj_rel_insert_input"] | undefined | null, + unitId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate max on columns */ ["booking_max_fields"]: AliasType<{ @@ -339,23 +339,23 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "booking" */ ["booking_max_order_by"]: { - bookedAt?:ValueTypes["order_by"] | null, - bookerName?:ValueTypes["order_by"] | null, - checkIn?:ValueTypes["order_by"] | null, - checkOut?:ValueTypes["order_by"] | null, - confirmationCode?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - entityId?:ValueTypes["order_by"] | null, - guestName?:ValueTypes["order_by"] | null, - guests?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null, - otaBookingId?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + bookedAt?: ValueTypes["order_by"] | undefined | null, + bookerName?: ValueTypes["order_by"] | undefined | null, + checkIn?: ValueTypes["order_by"] | undefined | null, + checkOut?: ValueTypes["order_by"] | undefined | null, + confirmationCode?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + entityId?: ValueTypes["order_by"] | undefined | null, + guestName?: ValueTypes["order_by"] | undefined | null, + guests?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null, + otaBookingId?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["booking_min_fields"]: AliasType<{ @@ -380,23 +380,23 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "booking" */ ["booking_min_order_by"]: { - bookedAt?:ValueTypes["order_by"] | null, - bookerName?:ValueTypes["order_by"] | null, - checkIn?:ValueTypes["order_by"] | null, - checkOut?:ValueTypes["order_by"] | null, - confirmationCode?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - entityId?:ValueTypes["order_by"] | null, - guestName?:ValueTypes["order_by"] | null, - guests?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null, - otaBookingId?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + bookedAt?: ValueTypes["order_by"] | undefined | null, + bookerName?: ValueTypes["order_by"] | undefined | null, + checkIn?: ValueTypes["order_by"] | undefined | null, + checkOut?: ValueTypes["order_by"] | undefined | null, + confirmationCode?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + entityId?: ValueTypes["order_by"] | undefined | null, + guestName?: ValueTypes["order_by"] | undefined | null, + guests?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null, + otaBookingId?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "booking" */ ["booking_mutation_response"]: AliasType<{ @@ -408,92 +408,92 @@ end). throws an error if top level container is not an array */ }>; /** input type for inserting object relation for remote table "booking" */ ["booking_obj_rel_insert_input"]: { - data:ValueTypes["booking_insert_input"], + data: ValueTypes["booking_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["booking_on_conflict"] | null + on_conflict?: ValueTypes["booking_on_conflict"] | undefined | null }; /** on conflict condition type for table "booking" */ ["booking_on_conflict"]: { - constraint:ValueTypes["booking_constraint"], - update_columns:ValueTypes["booking_update_column"][], - where?:ValueTypes["booking_bool_exp"] | null + constraint: ValueTypes["booking_constraint"], + update_columns: (ValueTypes["booking_update_column"])[] | undefined | null, + where?: ValueTypes["booking_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "booking". */ ["booking_order_by"]: { - bookedAt?:ValueTypes["order_by"] | null, - bookerName?:ValueTypes["order_by"] | null, - bookingChannel?:ValueTypes["order_by"] | null, - checkIn?:ValueTypes["order_by"] | null, - checkOut?:ValueTypes["order_by"] | null, - confirmationCode?:ValueTypes["order_by"] | null, - connection?:ValueTypes["connection_order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - currency?:ValueTypes["order_by"] | null, - entity?:ValueTypes["entity_order_by"] | null, - entityId?:ValueTypes["order_by"] | null, - guestName?:ValueTypes["order_by"] | null, - guests?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - isOTA?:ValueTypes["order_by"] | null, - lines_aggregate?:ValueTypes["line_aggregate_order_by"] | null, - metadata?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null, - otaBooking?:ValueTypes["booking_order_by"] | null, - otaBookingId?:ValueTypes["order_by"] | null, - relatedBookings_aggregate?:ValueTypes["booking_aggregate_order_by"] | null, - status?:ValueTypes["order_by"] | null, - tags_aggregate?:ValueTypes["tag_aggregate_order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unit?:ValueTypes["unit_order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + bookedAt?: ValueTypes["order_by"] | undefined | null, + bookerName?: ValueTypes["order_by"] | undefined | null, + bookingChannel?: ValueTypes["order_by"] | undefined | null, + checkIn?: ValueTypes["order_by"] | undefined | null, + checkOut?: ValueTypes["order_by"] | undefined | null, + confirmationCode?: ValueTypes["order_by"] | undefined | null, + connection?: ValueTypes["connection_order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + currency?: ValueTypes["order_by"] | undefined | null, + entity?: ValueTypes["entity_order_by"] | undefined | null, + entityId?: ValueTypes["order_by"] | undefined | null, + guestName?: ValueTypes["order_by"] | undefined | null, + guests?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + isOTA?: ValueTypes["order_by"] | undefined | null, + lines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, + metadata?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null, + otaBooking?: ValueTypes["booking_order_by"] | undefined | null, + otaBookingId?: ValueTypes["order_by"] | undefined | null, + relatedBookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unit?: ValueTypes["unit_order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: booking */ ["booking_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["booking_prepend_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "booking" */ ["booking_select_column"]:booking_select_column; /** input type for updating data in table "booking" */ ["booking_set_input"]: { - bookedAt?:ValueTypes["timestamptz"] | null, - bookerName?:string | null, - bookingChannel?:ValueTypes["booking_channel_enum"] | null, - checkIn?:ValueTypes["timestamptz"] | null, - checkOut?:ValueTypes["timestamptz"] | null, - confirmationCode?:string | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - currency?:ValueTypes["currency_enum"] | null, - entityId?:ValueTypes["uuid"] | null, - guestName?:string | null, - guests?:number | null, - id?:ValueTypes["uuid"] | null, - isOTA?:boolean | null, - metadata?:ValueTypes["jsonb"] | null, - nights?:number | null, - otaBookingId?:ValueTypes["uuid"] | null, - status?:ValueTypes["booking_status_enum"] | null, - teamId?:ValueTypes["uuid"] | null, - uniqueRef?:string | null, - unitId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null + bookedAt?: ValueTypes["timestamptz"] | undefined | null, + bookerName?: string | undefined | null, + bookingChannel?: ValueTypes["booking_channel_enum"] | undefined | null, + checkIn?: ValueTypes["timestamptz"] | undefined | null, + checkOut?: ValueTypes["timestamptz"] | undefined | null, + confirmationCode?: string | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + currency?: ValueTypes["currency_enum"] | undefined | null, + entityId?: ValueTypes["uuid"] | undefined | null, + guestName?: string | undefined | null, + guests?: number | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + isOTA?: boolean | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + nights?: number | undefined | null, + otaBookingId?: ValueTypes["uuid"] | undefined | null, + status?: ValueTypes["booking_status_enum"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + uniqueRef?: string | undefined | null, + unitId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; ["booking_status_enum"]:booking_status_enum; /** Boolean expression to compare columns of type "booking_status_enum". All fields are combined with logical 'AND'. */ ["booking_status_enum_comparison_exp"]: { - _eq?:ValueTypes["booking_status_enum"] | null, - _in?:ValueTypes["booking_status_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["booking_status_enum"] | null, - _nin?:ValueTypes["booking_status_enum"][] + _eq?: ValueTypes["booking_status_enum"] | undefined | null, + _in?: (ValueTypes["booking_status_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["booking_status_enum"] | undefined | null, + _nin?: (ValueTypes["booking_status_enum"])[] }; /** aggregate stddev on columns */ ["booking_stddev_fields"]: AliasType<{ @@ -503,8 +503,8 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev() on columns of table "booking" */ ["booking_stddev_order_by"]: { - guests?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null + guests?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null }; /** aggregate stddev_pop on columns */ ["booking_stddev_pop_fields"]: AliasType<{ @@ -514,8 +514,8 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev_pop() on columns of table "booking" */ ["booking_stddev_pop_order_by"]: { - guests?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null + guests?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null }; /** aggregate stddev_samp on columns */ ["booking_stddev_samp_fields"]: AliasType<{ @@ -525,8 +525,8 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev_samp() on columns of table "booking" */ ["booking_stddev_samp_order_by"]: { - guests?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null + guests?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null }; /** aggregate sum on columns */ ["booking_sum_fields"]: AliasType<{ @@ -536,8 +536,8 @@ end). throws an error if top level container is not an array */ }>; /** order by sum() on columns of table "booking" */ ["booking_sum_order_by"]: { - guests?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null + guests?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null }; /** update columns of table "booking" */ ["booking_update_column"]:booking_update_column; @@ -549,8 +549,8 @@ end). throws an error if top level container is not an array */ }>; /** order by var_pop() on columns of table "booking" */ ["booking_var_pop_order_by"]: { - guests?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null + guests?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null }; /** aggregate var_samp on columns */ ["booking_var_samp_fields"]: AliasType<{ @@ -560,8 +560,8 @@ end). throws an error if top level container is not an array */ }>; /** order by var_samp() on columns of table "booking" */ ["booking_var_samp_order_by"]: { - guests?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null + guests?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null }; /** aggregate variance on columns */ ["booking_variance_fields"]: AliasType<{ @@ -571,8 +571,8 @@ end). throws an error if top level container is not an array */ }>; /** order by variance() on columns of table "booking" */ ["booking_variance_order_by"]: { - guests?:ValueTypes["order_by"] | null, - nights?:ValueTypes["order_by"] | null + guests?: ValueTypes["order_by"] | undefined | null, + nights?: ValueTypes["order_by"] | undefined | null }; /** columns and relationships of "booking_status" */ ["bookingStatus"]: AliasType<{ @@ -587,23 +587,23 @@ end). throws an error if top level container is not an array */ }>; /** aggregate fields of "booking_status" */ ["bookingStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["bookingStatus_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["bookingStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["bookingStatus_max_fields"], min?:ValueTypes["bookingStatus_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "booking_status". All fields are combined with a logical 'AND'. */ ["bookingStatus_bool_exp"]: { - _and?:ValueTypes["bookingStatus_bool_exp"][], - _not?:ValueTypes["bookingStatus_bool_exp"] | null, - _or?:ValueTypes["bookingStatus_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["bookingStatus_bool_exp"])[], + _not?: ValueTypes["bookingStatus_bool_exp"] | undefined | null, + _or?: (ValueTypes["bookingStatus_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "booking_status" */ ["bookingStatus_constraint"]:bookingStatus_constraint; /** input type for inserting data into table "booking_status" */ ["bookingStatus_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["bookingStatus_max_fields"]: AliasType<{ @@ -625,37 +625,37 @@ count?: [{ columns?:ValueTypes["bookingStatus_select_column"][], distinct?:boole }>; /** on conflict condition type for table "booking_status" */ ["bookingStatus_on_conflict"]: { - constraint:ValueTypes["bookingStatus_constraint"], - update_columns:ValueTypes["bookingStatus_update_column"][], - where?:ValueTypes["bookingStatus_bool_exp"] | null + constraint: ValueTypes["bookingStatus_constraint"], + update_columns: (ValueTypes["bookingStatus_update_column"])[] | undefined | null, + where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "booking_status". */ ["bookingStatus_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: bookingStatus */ ["bookingStatus_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "booking_status" */ ["bookingStatus_select_column"]:bookingStatus_select_column; /** input type for updating data in table "booking_status" */ ["bookingStatus_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "booking_status" */ ["bookingStatus_update_column"]:bookingStatus_update_column; /** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */ ["Boolean_comparison_exp"]: { - _eq?:boolean | null, - _gt?:boolean | null, - _gte?:boolean | null, - _in?:boolean[], - _is_null?:boolean | null, - _lt?:boolean | null, - _lte?:boolean | null, - _neq?:boolean | null, - _nin?:boolean[] + _eq?: boolean | undefined | null, + _gt?: boolean | undefined | null, + _gte?: boolean | undefined | null, + _in?: (boolean)[], + _is_null?: boolean | undefined | null, + _lt?: boolean | undefined | null, + _lte?: boolean | undefined | null, + _neq?: boolean | undefined | null, + _nin?: (boolean)[] }; /** columns and relationships of "classification" */ ["classification"]: AliasType<{ @@ -670,32 +670,32 @@ count?: [{ columns?:ValueTypes["bookingStatus_select_column"][], distinct?:boole }>; /** aggregate fields of "classification" */ ["classification_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["classification_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["classification_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["classification_max_fields"], min?:ValueTypes["classification_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "classification". All fields are combined with a logical 'AND'. */ ["classification_bool_exp"]: { - _and?:ValueTypes["classification_bool_exp"][], - _not?:ValueTypes["classification_bool_exp"] | null, - _or?:ValueTypes["classification_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["classification_bool_exp"])[], + _not?: ValueTypes["classification_bool_exp"] | undefined | null, + _or?: (ValueTypes["classification_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "classification" */ ["classification_constraint"]:classification_constraint; ["classification_enum"]:classification_enum; /** Boolean expression to compare columns of type "classification_enum". All fields are combined with logical 'AND'. */ ["classification_enum_comparison_exp"]: { - _eq?:ValueTypes["classification_enum"] | null, - _in?:ValueTypes["classification_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["classification_enum"] | null, - _nin?:ValueTypes["classification_enum"][] + _eq?: ValueTypes["classification_enum"] | undefined | null, + _in?: (ValueTypes["classification_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["classification_enum"] | undefined | null, + _nin?: (ValueTypes["classification_enum"])[] }; /** input type for inserting data into table "classification" */ ["classification_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["classification_max_fields"]: AliasType<{ @@ -717,138 +717,138 @@ count?: [{ columns?:ValueTypes["classification_select_column"][], distinct?:bool }>; /** on conflict condition type for table "classification" */ ["classification_on_conflict"]: { - constraint:ValueTypes["classification_constraint"], - update_columns:ValueTypes["classification_update_column"][], - where?:ValueTypes["classification_bool_exp"] | null + constraint: ValueTypes["classification_constraint"], + update_columns: (ValueTypes["classification_update_column"])[] | undefined | null, + where?: ValueTypes["classification_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "classification". */ ["classification_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: classification */ ["classification_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "classification" */ ["classification_select_column"]:classification_select_column; /** input type for updating data in table "classification" */ ["classification_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "classification" */ ["classification_update_column"]:classification_update_column; /** columns and relationships of "connection" */ ["connection"]: AliasType<{ bookings?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], bookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking_aggregate"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], createdAt?:boolean, credentials?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], entities?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], entities_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity_aggregate"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], id?:boolean, /** An object relationship */ integration?:ValueTypes["integration"], integrationId?:boolean, jobs?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], jobs_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job_aggregate"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], lines?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], lines_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line_aggregate"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], metrics?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["metric_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["metric_order_by"][], /** filter the rows returned */ - where?:ValueTypes["metric_bool_exp"] | null},ValueTypes["metric"]], + distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric"]], metrics_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["metric_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["metric_order_by"][], /** filter the rows returned */ - where?:ValueTypes["metric_bool_exp"] | null},ValueTypes["metric_aggregate"]], + distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric_aggregate"]], name?:boolean, payments?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], payments_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment_aggregate"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], persistentState?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], status?:boolean, tags?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag_aggregate"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], /** An object relationship */ team?:ValueTypes["team"], teamId?:boolean, units?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], units_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit_aggregate"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], webhookKey?:boolean, __typename?: boolean }>; @@ -860,92 +860,92 @@ units_aggregate?: [{ /** distinct select on columns */ }>; /** aggregate fields of "connection" */ ["connection_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["connection_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["connection_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["connection_max_fields"], min?:ValueTypes["connection_min_fields"], __typename?: boolean }>; /** order by aggregate values of table "connection" */ ["connection_aggregate_order_by"]: { - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["connection_max_order_by"] | null, - min?:ValueTypes["connection_min_order_by"] | null + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["connection_max_order_by"] | undefined | null, + min?: ValueTypes["connection_min_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["connection_append_input"]: { - credentials?:ValueTypes["jsonb"] | null, - persistentState?:ValueTypes["jsonb"] | null + credentials?: ValueTypes["jsonb"] | undefined | null, + persistentState?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "connection" */ ["connection_arr_rel_insert_input"]: { - data:ValueTypes["connection_insert_input"][], + data: (ValueTypes["connection_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["connection_on_conflict"] | null + on_conflict?: ValueTypes["connection_on_conflict"] | undefined | null }; /** Boolean expression to filter rows from the table "connection". All fields are combined with a logical 'AND'. */ ["connection_bool_exp"]: { - _and?:ValueTypes["connection_bool_exp"][], - _not?:ValueTypes["connection_bool_exp"] | null, - _or?:ValueTypes["connection_bool_exp"][], - bookings?:ValueTypes["booking_bool_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - credentials?:ValueTypes["jsonb_comparison_exp"] | null, - entities?:ValueTypes["entity_bool_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - integration?:ValueTypes["integration_bool_exp"] | null, - integrationId?:ValueTypes["uuid_comparison_exp"] | null, - jobs?:ValueTypes["job_bool_exp"] | null, - lines?:ValueTypes["line_bool_exp"] | null, - metrics?:ValueTypes["metric_bool_exp"] | null, - name?:ValueTypes["String_comparison_exp"] | null, - payments?:ValueTypes["payment_bool_exp"] | null, - persistentState?:ValueTypes["jsonb_comparison_exp"] | null, - status?:ValueTypes["String_comparison_exp"] | null, - tags?:ValueTypes["tag_bool_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - units?:ValueTypes["unit_bool_exp"] | null, - webhookKey?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["connection_bool_exp"])[], + _not?: ValueTypes["connection_bool_exp"] | undefined | null, + _or?: (ValueTypes["connection_bool_exp"])[], + bookings?: ValueTypes["booking_bool_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + credentials?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + entities?: ValueTypes["entity_bool_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + integration?: ValueTypes["integration_bool_exp"] | undefined | null, + integrationId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + jobs?: ValueTypes["job_bool_exp"] | undefined | null, + lines?: ValueTypes["line_bool_exp"] | undefined | null, + metrics?: ValueTypes["metric_bool_exp"] | undefined | null, + name?: ValueTypes["String_comparison_exp"] | undefined | null, + payments?: ValueTypes["payment_bool_exp"] | undefined | null, + persistentState?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + status?: ValueTypes["String_comparison_exp"] | undefined | null, + tags?: ValueTypes["tag_bool_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + units?: ValueTypes["unit_bool_exp"] | undefined | null, + webhookKey?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "connection" */ ["connection_constraint"]:connection_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["connection_delete_at_path_input"]: { - credentials?:string[], - persistentState?:string[] + credentials?: (string)[], + persistentState?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["connection_delete_elem_input"]: { - credentials?:number | null, - persistentState?:number | null + credentials?: number | undefined | null, + persistentState?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["connection_delete_key_input"]: { - credentials?:string | null, - persistentState?:string | null + credentials?: string | undefined | null, + persistentState?: string | undefined | null }; /** input type for inserting data into table "connection" */ ["connection_insert_input"]: { - bookings?:ValueTypes["booking_arr_rel_insert_input"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - credentials?:ValueTypes["jsonb"] | null, - entities?:ValueTypes["entity_arr_rel_insert_input"] | null, - id?:ValueTypes["uuid"] | null, - integration?:ValueTypes["integration_obj_rel_insert_input"] | null, - integrationId?:ValueTypes["uuid"] | null, - jobs?:ValueTypes["job_arr_rel_insert_input"] | null, - lines?:ValueTypes["line_arr_rel_insert_input"] | null, - metrics?:ValueTypes["metric_arr_rel_insert_input"] | null, - name?:string | null, - payments?:ValueTypes["payment_arr_rel_insert_input"] | null, - persistentState?:ValueTypes["jsonb"] | null, - status?:string | null, - tags?:ValueTypes["tag_arr_rel_insert_input"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - units?:ValueTypes["unit_arr_rel_insert_input"] | null, - webhookKey?:string | null + bookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + credentials?: ValueTypes["jsonb"] | undefined | null, + entities?: ValueTypes["entity_arr_rel_insert_input"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + integration?: ValueTypes["integration_obj_rel_insert_input"] | undefined | null, + integrationId?: ValueTypes["uuid"] | undefined | null, + jobs?: ValueTypes["job_arr_rel_insert_input"] | undefined | null, + lines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, + metrics?: ValueTypes["metric_arr_rel_insert_input"] | undefined | null, + name?: string | undefined | null, + payments?: ValueTypes["payment_arr_rel_insert_input"] | undefined | null, + persistentState?: ValueTypes["jsonb"] | undefined | null, + status?: string | undefined | null, + tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + units?: ValueTypes["unit_arr_rel_insert_input"] | undefined | null, + webhookKey?: string | undefined | null }; /** aggregate max on columns */ ["connection_max_fields"]: AliasType<{ @@ -960,13 +960,13 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "connection" */ ["connection_max_order_by"]: { - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - integrationId?:ValueTypes["order_by"] | null, - name?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - webhookKey?:ValueTypes["order_by"] | null + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + integrationId?: ValueTypes["order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + webhookKey?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["connection_min_fields"]: AliasType<{ @@ -981,13 +981,13 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "connection" */ ["connection_min_order_by"]: { - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - integrationId?:ValueTypes["order_by"] | null, - name?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - webhookKey?:ValueTypes["order_by"] | null + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + integrationId?: ValueTypes["order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + webhookKey?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "connection" */ ["connection_mutation_response"]: AliasType<{ @@ -999,60 +999,60 @@ end). throws an error if top level container is not an array */ }>; /** input type for inserting object relation for remote table "connection" */ ["connection_obj_rel_insert_input"]: { - data:ValueTypes["connection_insert_input"], + data: ValueTypes["connection_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["connection_on_conflict"] | null + on_conflict?: ValueTypes["connection_on_conflict"] | undefined | null }; /** on conflict condition type for table "connection" */ ["connection_on_conflict"]: { - constraint:ValueTypes["connection_constraint"], - update_columns:ValueTypes["connection_update_column"][], - where?:ValueTypes["connection_bool_exp"] | null + constraint: ValueTypes["connection_constraint"], + update_columns: (ValueTypes["connection_update_column"])[] | undefined | null, + where?: ValueTypes["connection_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "connection". */ ["connection_order_by"]: { - bookings_aggregate?:ValueTypes["booking_aggregate_order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - credentials?:ValueTypes["order_by"] | null, - entities_aggregate?:ValueTypes["entity_aggregate_order_by"] | null, - id?:ValueTypes["order_by"] | null, - integration?:ValueTypes["integration_order_by"] | null, - integrationId?:ValueTypes["order_by"] | null, - jobs_aggregate?:ValueTypes["job_aggregate_order_by"] | null, - lines_aggregate?:ValueTypes["line_aggregate_order_by"] | null, - metrics_aggregate?:ValueTypes["metric_aggregate_order_by"] | null, - name?:ValueTypes["order_by"] | null, - payments_aggregate?:ValueTypes["payment_aggregate_order_by"] | null, - persistentState?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - tags_aggregate?:ValueTypes["tag_aggregate_order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - units_aggregate?:ValueTypes["unit_aggregate_order_by"] | null, - webhookKey?:ValueTypes["order_by"] | null + bookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + credentials?: ValueTypes["order_by"] | undefined | null, + entities_aggregate?: ValueTypes["entity_aggregate_order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + integration?: ValueTypes["integration_order_by"] | undefined | null, + integrationId?: ValueTypes["order_by"] | undefined | null, + jobs_aggregate?: ValueTypes["job_aggregate_order_by"] | undefined | null, + lines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, + metrics_aggregate?: ValueTypes["metric_aggregate_order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + payments_aggregate?: ValueTypes["payment_aggregate_order_by"] | undefined | null, + persistentState?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + units_aggregate?: ValueTypes["unit_aggregate_order_by"] | undefined | null, + webhookKey?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: connection */ ["connection_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["connection_prepend_input"]: { - credentials?:ValueTypes["jsonb"] | null, - persistentState?:ValueTypes["jsonb"] | null + credentials?: ValueTypes["jsonb"] | undefined | null, + persistentState?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "connection" */ ["connection_select_column"]:connection_select_column; /** input type for updating data in table "connection" */ ["connection_set_input"]: { - createdAt?:ValueTypes["timestamptz"] | null, - credentials?:ValueTypes["jsonb"] | null, - id?:ValueTypes["uuid"] | null, - integrationId?:ValueTypes["uuid"] | null, - name?:string | null, - persistentState?:ValueTypes["jsonb"] | null, - status?:string | null, - teamId?:ValueTypes["uuid"] | null, - webhookKey?:string | null + createdAt?: ValueTypes["timestamptz"] | undefined | null, + credentials?: ValueTypes["jsonb"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + integrationId?: ValueTypes["uuid"] | undefined | null, + name?: string | undefined | null, + persistentState?: ValueTypes["jsonb"] | undefined | null, + status?: string | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + webhookKey?: string | undefined | null }; /** update columns of table "connection" */ ["connection_update_column"]:connection_update_column; @@ -1069,32 +1069,32 @@ end). throws an error if top level container is not an array */ }>; /** aggregate fields of "currency" */ ["currency_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["currency_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["currency_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["currency_max_fields"], min?:ValueTypes["currency_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "currency". All fields are combined with a logical 'AND'. */ ["currency_bool_exp"]: { - _and?:ValueTypes["currency_bool_exp"][], - _not?:ValueTypes["currency_bool_exp"] | null, - _or?:ValueTypes["currency_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["currency_bool_exp"])[], + _not?: ValueTypes["currency_bool_exp"] | undefined | null, + _or?: (ValueTypes["currency_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "currency" */ ["currency_constraint"]:currency_constraint; ["currency_enum"]:currency_enum; /** Boolean expression to compare columns of type "currency_enum". All fields are combined with logical 'AND'. */ ["currency_enum_comparison_exp"]: { - _eq?:ValueTypes["currency_enum"] | null, - _in?:ValueTypes["currency_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["currency_enum"] | null, - _nin?:ValueTypes["currency_enum"][] + _eq?: ValueTypes["currency_enum"] | undefined | null, + _in?: (ValueTypes["currency_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["currency_enum"] | undefined | null, + _nin?: (ValueTypes["currency_enum"])[] }; /** input type for inserting data into table "currency" */ ["currency_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["currency_max_fields"]: AliasType<{ @@ -1116,104 +1116,104 @@ count?: [{ columns?:ValueTypes["currency_select_column"][], distinct?:boolean | }>; /** on conflict condition type for table "currency" */ ["currency_on_conflict"]: { - constraint:ValueTypes["currency_constraint"], - update_columns:ValueTypes["currency_update_column"][], - where?:ValueTypes["currency_bool_exp"] | null + constraint: ValueTypes["currency_constraint"], + update_columns: (ValueTypes["currency_update_column"])[] | undefined | null, + where?: ValueTypes["currency_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "currency". */ ["currency_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: currency */ ["currency_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "currency" */ ["currency_select_column"]:currency_select_column; /** input type for updating data in table "currency" */ ["currency_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "currency" */ ["currency_update_column"]:currency_update_column; /** columns and relationships of "entity" */ ["entity"]: AliasType<{ bookings?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], bookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking_aggregate"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], /** An object relationship */ connection?:ValueTypes["connection"], connectionId?:boolean, createdAt?:boolean, description?:boolean, diffJson?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], hash?:boolean, id?:boolean, /** An object relationship */ job?:ValueTypes["job"], jobId?:boolean, json?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], normalizedJson?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], normalizedType?:boolean, parsedAt?:boolean, payments?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], payments_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment_aggregate"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], /** An object relationship */ predecessorEntity?:ValueTypes["entity"], predecessorEntityId?:boolean, status?:boolean, statusText?:boolean, successorEntities?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], successorEntities_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity_aggregate"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], /** An object relationship */ team?:ValueTypes["team"], teamId?:boolean, type?:boolean, uniqueRef?:boolean, units?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], units_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit_aggregate"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], updatedAt?:boolean, __typename?: boolean }>; @@ -1225,110 +1225,110 @@ units_aggregate?: [{ /** distinct select on columns */ }>; /** aggregate fields of "entity" */ ["entity_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["entity_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["entity_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["entity_max_fields"], min?:ValueTypes["entity_min_fields"], __typename?: boolean }>; /** order by aggregate values of table "entity" */ ["entity_aggregate_order_by"]: { - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["entity_max_order_by"] | null, - min?:ValueTypes["entity_min_order_by"] | null + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["entity_max_order_by"] | undefined | null, + min?: ValueTypes["entity_min_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["entity_append_input"]: { - diffJson?:ValueTypes["jsonb"] | null, - json?:ValueTypes["jsonb"] | null, - normalizedJson?:ValueTypes["jsonb"] | null + diffJson?: ValueTypes["jsonb"] | undefined | null, + json?: ValueTypes["jsonb"] | undefined | null, + normalizedJson?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "entity" */ ["entity_arr_rel_insert_input"]: { - data:ValueTypes["entity_insert_input"][], + data: (ValueTypes["entity_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["entity_on_conflict"] | null + on_conflict?: ValueTypes["entity_on_conflict"] | undefined | null }; /** Boolean expression to filter rows from the table "entity". All fields are combined with a logical 'AND'. */ ["entity_bool_exp"]: { - _and?:ValueTypes["entity_bool_exp"][], - _not?:ValueTypes["entity_bool_exp"] | null, - _or?:ValueTypes["entity_bool_exp"][], - bookings?:ValueTypes["booking_bool_exp"] | null, - connection?:ValueTypes["connection_bool_exp"] | null, - connectionId?:ValueTypes["uuid_comparison_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - description?:ValueTypes["String_comparison_exp"] | null, - diffJson?:ValueTypes["jsonb_comparison_exp"] | null, - hash?:ValueTypes["String_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - job?:ValueTypes["job_bool_exp"] | null, - jobId?:ValueTypes["uuid_comparison_exp"] | null, - json?:ValueTypes["jsonb_comparison_exp"] | null, - normalizedJson?:ValueTypes["jsonb_comparison_exp"] | null, - normalizedType?:ValueTypes["normalized_type_enum_comparison_exp"] | null, - parsedAt?:ValueTypes["timestamptz_comparison_exp"] | null, - payments?:ValueTypes["payment_bool_exp"] | null, - predecessorEntity?:ValueTypes["entity_bool_exp"] | null, - predecessorEntityId?:ValueTypes["uuid_comparison_exp"] | null, - status?:ValueTypes["entity_status_enum_comparison_exp"] | null, - statusText?:ValueTypes["String_comparison_exp"] | null, - successorEntities?:ValueTypes["entity_bool_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - type?:ValueTypes["String_comparison_exp"] | null, - uniqueRef?:ValueTypes["String_comparison_exp"] | null, - units?:ValueTypes["unit_bool_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null + _and?: (ValueTypes["entity_bool_exp"])[], + _not?: ValueTypes["entity_bool_exp"] | undefined | null, + _or?: (ValueTypes["entity_bool_exp"])[], + bookings?: ValueTypes["booking_bool_exp"] | undefined | null, + connection?: ValueTypes["connection_bool_exp"] | undefined | null, + connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + description?: ValueTypes["String_comparison_exp"] | undefined | null, + diffJson?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + hash?: ValueTypes["String_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + job?: ValueTypes["job_bool_exp"] | undefined | null, + jobId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + json?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + normalizedJson?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + normalizedType?: ValueTypes["normalized_type_enum_comparison_exp"] | undefined | null, + parsedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + payments?: ValueTypes["payment_bool_exp"] | undefined | null, + predecessorEntity?: ValueTypes["entity_bool_exp"] | undefined | null, + predecessorEntityId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + status?: ValueTypes["entity_status_enum_comparison_exp"] | undefined | null, + statusText?: ValueTypes["String_comparison_exp"] | undefined | null, + successorEntities?: ValueTypes["entity_bool_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + type?: ValueTypes["String_comparison_exp"] | undefined | null, + uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, + units?: ValueTypes["unit_bool_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "entity" */ ["entity_constraint"]:entity_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["entity_delete_at_path_input"]: { - diffJson?:string[], - json?:string[], - normalizedJson?:string[] + diffJson?: (string)[], + json?: (string)[], + normalizedJson?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["entity_delete_elem_input"]: { - diffJson?:number | null, - json?:number | null, - normalizedJson?:number | null + diffJson?: number | undefined | null, + json?: number | undefined | null, + normalizedJson?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["entity_delete_key_input"]: { - diffJson?:string | null, - json?:string | null, - normalizedJson?:string | null + diffJson?: string | undefined | null, + json?: string | undefined | null, + normalizedJson?: string | undefined | null }; /** input type for inserting data into table "entity" */ ["entity_insert_input"]: { - bookings?:ValueTypes["booking_arr_rel_insert_input"] | null, - connection?:ValueTypes["connection_obj_rel_insert_input"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - description?:string | null, - diffJson?:ValueTypes["jsonb"] | null, - hash?:string | null, - id?:ValueTypes["uuid"] | null, - job?:ValueTypes["job_obj_rel_insert_input"] | null, - jobId?:ValueTypes["uuid"] | null, - json?:ValueTypes["jsonb"] | null, - normalizedJson?:ValueTypes["jsonb"] | null, - normalizedType?:ValueTypes["normalized_type_enum"] | null, - parsedAt?:ValueTypes["timestamptz"] | null, - payments?:ValueTypes["payment_arr_rel_insert_input"] | null, - predecessorEntity?:ValueTypes["entity_obj_rel_insert_input"] | null, - predecessorEntityId?:ValueTypes["uuid"] | null, - status?:ValueTypes["entity_status_enum"] | null, - statusText?:string | null, - successorEntities?:ValueTypes["entity_arr_rel_insert_input"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - uniqueRef?:string | null, - units?:ValueTypes["unit_arr_rel_insert_input"] | null, - updatedAt?:ValueTypes["timestamptz"] | null + bookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, + connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + description?: string | undefined | null, + diffJson?: ValueTypes["jsonb"] | undefined | null, + hash?: string | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + job?: ValueTypes["job_obj_rel_insert_input"] | undefined | null, + jobId?: ValueTypes["uuid"] | undefined | null, + json?: ValueTypes["jsonb"] | undefined | null, + normalizedJson?: ValueTypes["jsonb"] | undefined | null, + normalizedType?: ValueTypes["normalized_type_enum"] | undefined | null, + parsedAt?: ValueTypes["timestamptz"] | undefined | null, + payments?: ValueTypes["payment_arr_rel_insert_input"] | undefined | null, + predecessorEntity?: ValueTypes["entity_obj_rel_insert_input"] | undefined | null, + predecessorEntityId?: ValueTypes["uuid"] | undefined | null, + status?: ValueTypes["entity_status_enum"] | undefined | null, + statusText?: string | undefined | null, + successorEntities?: ValueTypes["entity_arr_rel_insert_input"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + units?: ValueTypes["unit_arr_rel_insert_input"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate max on columns */ ["entity_max_fields"]: AliasType<{ @@ -1349,19 +1349,19 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "entity" */ ["entity_max_order_by"]: { - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - description?:ValueTypes["order_by"] | null, - hash?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - jobId?:ValueTypes["order_by"] | null, - parsedAt?:ValueTypes["order_by"] | null, - predecessorEntityId?:ValueTypes["order_by"] | null, - statusText?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + description?: ValueTypes["order_by"] | undefined | null, + hash?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + jobId?: ValueTypes["order_by"] | undefined | null, + parsedAt?: ValueTypes["order_by"] | undefined | null, + predecessorEntityId?: ValueTypes["order_by"] | undefined | null, + statusText?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["entity_min_fields"]: AliasType<{ @@ -1382,19 +1382,19 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "entity" */ ["entity_min_order_by"]: { - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - description?:ValueTypes["order_by"] | null, - hash?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - jobId?:ValueTypes["order_by"] | null, - parsedAt?:ValueTypes["order_by"] | null, - predecessorEntityId?:ValueTypes["order_by"] | null, - statusText?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + description?: ValueTypes["order_by"] | undefined | null, + hash?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + jobId?: ValueTypes["order_by"] | undefined | null, + parsedAt?: ValueTypes["order_by"] | undefined | null, + predecessorEntityId?: ValueTypes["order_by"] | undefined | null, + statusText?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "entity" */ ["entity_mutation_response"]: AliasType<{ @@ -1406,86 +1406,86 @@ end). throws an error if top level container is not an array */ }>; /** input type for inserting object relation for remote table "entity" */ ["entity_obj_rel_insert_input"]: { - data:ValueTypes["entity_insert_input"], + data: ValueTypes["entity_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["entity_on_conflict"] | null + on_conflict?: ValueTypes["entity_on_conflict"] | undefined | null }; /** on conflict condition type for table "entity" */ ["entity_on_conflict"]: { - constraint:ValueTypes["entity_constraint"], - update_columns:ValueTypes["entity_update_column"][], - where?:ValueTypes["entity_bool_exp"] | null + constraint: ValueTypes["entity_constraint"], + update_columns: (ValueTypes["entity_update_column"])[] | undefined | null, + where?: ValueTypes["entity_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "entity". */ ["entity_order_by"]: { - bookings_aggregate?:ValueTypes["booking_aggregate_order_by"] | null, - connection?:ValueTypes["connection_order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - description?:ValueTypes["order_by"] | null, - diffJson?:ValueTypes["order_by"] | null, - hash?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - job?:ValueTypes["job_order_by"] | null, - jobId?:ValueTypes["order_by"] | null, - json?:ValueTypes["order_by"] | null, - normalizedJson?:ValueTypes["order_by"] | null, - normalizedType?:ValueTypes["order_by"] | null, - parsedAt?:ValueTypes["order_by"] | null, - payments_aggregate?:ValueTypes["payment_aggregate_order_by"] | null, - predecessorEntity?:ValueTypes["entity_order_by"] | null, - predecessorEntityId?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - statusText?:ValueTypes["order_by"] | null, - successorEntities_aggregate?:ValueTypes["entity_aggregate_order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - units_aggregate?:ValueTypes["unit_aggregate_order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + bookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, + connection?: ValueTypes["connection_order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + description?: ValueTypes["order_by"] | undefined | null, + diffJson?: ValueTypes["order_by"] | undefined | null, + hash?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + job?: ValueTypes["job_order_by"] | undefined | null, + jobId?: ValueTypes["order_by"] | undefined | null, + json?: ValueTypes["order_by"] | undefined | null, + normalizedJson?: ValueTypes["order_by"] | undefined | null, + normalizedType?: ValueTypes["order_by"] | undefined | null, + parsedAt?: ValueTypes["order_by"] | undefined | null, + payments_aggregate?: ValueTypes["payment_aggregate_order_by"] | undefined | null, + predecessorEntity?: ValueTypes["entity_order_by"] | undefined | null, + predecessorEntityId?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + statusText?: ValueTypes["order_by"] | undefined | null, + successorEntities_aggregate?: ValueTypes["entity_aggregate_order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + units_aggregate?: ValueTypes["unit_aggregate_order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: entity */ ["entity_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["entity_prepend_input"]: { - diffJson?:ValueTypes["jsonb"] | null, - json?:ValueTypes["jsonb"] | null, - normalizedJson?:ValueTypes["jsonb"] | null + diffJson?: ValueTypes["jsonb"] | undefined | null, + json?: ValueTypes["jsonb"] | undefined | null, + normalizedJson?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "entity" */ ["entity_select_column"]:entity_select_column; /** input type for updating data in table "entity" */ ["entity_set_input"]: { - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - description?:string | null, - diffJson?:ValueTypes["jsonb"] | null, - hash?:string | null, - id?:ValueTypes["uuid"] | null, - jobId?:ValueTypes["uuid"] | null, - json?:ValueTypes["jsonb"] | null, - normalizedJson?:ValueTypes["jsonb"] | null, - normalizedType?:ValueTypes["normalized_type_enum"] | null, - parsedAt?:ValueTypes["timestamptz"] | null, - predecessorEntityId?:ValueTypes["uuid"] | null, - status?:ValueTypes["entity_status_enum"] | null, - statusText?:string | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - uniqueRef?:string | null, - updatedAt?:ValueTypes["timestamptz"] | null + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + description?: string | undefined | null, + diffJson?: ValueTypes["jsonb"] | undefined | null, + hash?: string | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + jobId?: ValueTypes["uuid"] | undefined | null, + json?: ValueTypes["jsonb"] | undefined | null, + normalizedJson?: ValueTypes["jsonb"] | undefined | null, + normalizedType?: ValueTypes["normalized_type_enum"] | undefined | null, + parsedAt?: ValueTypes["timestamptz"] | undefined | null, + predecessorEntityId?: ValueTypes["uuid"] | undefined | null, + status?: ValueTypes["entity_status_enum"] | undefined | null, + statusText?: string | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; ["entity_status_enum"]:entity_status_enum; /** Boolean expression to compare columns of type "entity_status_enum". All fields are combined with logical 'AND'. */ ["entity_status_enum_comparison_exp"]: { - _eq?:ValueTypes["entity_status_enum"] | null, - _in?:ValueTypes["entity_status_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["entity_status_enum"] | null, - _nin?:ValueTypes["entity_status_enum"][] + _eq?: ValueTypes["entity_status_enum"] | undefined | null, + _in?: (ValueTypes["entity_status_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["entity_status_enum"] | undefined | null, + _nin?: (ValueTypes["entity_status_enum"])[] }; /** update columns of table "entity" */ ["entity_update_column"]:entity_update_column; @@ -1502,23 +1502,23 @@ end). throws an error if top level container is not an array */ }>; /** aggregate fields of "entity_status" */ ["entityStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["entityStatus_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["entityStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["entityStatus_max_fields"], min?:ValueTypes["entityStatus_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "entity_status". All fields are combined with a logical 'AND'. */ ["entityStatus_bool_exp"]: { - _and?:ValueTypes["entityStatus_bool_exp"][], - _not?:ValueTypes["entityStatus_bool_exp"] | null, - _or?:ValueTypes["entityStatus_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["entityStatus_bool_exp"])[], + _not?: ValueTypes["entityStatus_bool_exp"] | undefined | null, + _or?: (ValueTypes["entityStatus_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "entity_status" */ ["entityStatus_constraint"]:entityStatus_constraint; /** input type for inserting data into table "entity_status" */ ["entityStatus_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["entityStatus_max_fields"]: AliasType<{ @@ -1540,83 +1540,83 @@ count?: [{ columns?:ValueTypes["entityStatus_select_column"][], distinct?:boolea }>; /** on conflict condition type for table "entity_status" */ ["entityStatus_on_conflict"]: { - constraint:ValueTypes["entityStatus_constraint"], - update_columns:ValueTypes["entityStatus_update_column"][], - where?:ValueTypes["entityStatus_bool_exp"] | null + constraint: ValueTypes["entityStatus_constraint"], + update_columns: (ValueTypes["entityStatus_update_column"])[] | undefined | null, + where?: ValueTypes["entityStatus_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "entity_status". */ ["entityStatus_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: entityStatus */ ["entityStatus_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "entity_status" */ ["entityStatus_select_column"]:entityStatus_select_column; /** input type for updating data in table "entity_status" */ ["entityStatus_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "entity_status" */ ["entityStatus_update_column"]:entityStatus_update_column; ["float8"]:unknown; /** Boolean expression to compare columns of type "float8". All fields are combined with logical 'AND'. */ ["float8_comparison_exp"]: { - _eq?:ValueTypes["float8"] | null, - _gt?:ValueTypes["float8"] | null, - _gte?:ValueTypes["float8"] | null, - _in?:ValueTypes["float8"][], - _is_null?:boolean | null, - _lt?:ValueTypes["float8"] | null, - _lte?:ValueTypes["float8"] | null, - _neq?:ValueTypes["float8"] | null, - _nin?:ValueTypes["float8"][] + _eq?: ValueTypes["float8"] | undefined | null, + _gt?: ValueTypes["float8"] | undefined | null, + _gte?: ValueTypes["float8"] | undefined | null, + _in?: (ValueTypes["float8"])[], + _is_null?: boolean | undefined | null, + _lt?: ValueTypes["float8"] | undefined | null, + _lte?: ValueTypes["float8"] | undefined | null, + _neq?: ValueTypes["float8"] | undefined | null, + _nin?: (ValueTypes["float8"])[] }; /** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ ["Int_comparison_exp"]: { - _eq?:number | null, - _gt?:number | null, - _gte?:number | null, - _in?:number[], - _is_null?:boolean | null, - _lt?:number | null, - _lte?:number | null, - _neq?:number | null, - _nin?:number[] + _eq?: number | undefined | null, + _gt?: number | undefined | null, + _gte?: number | undefined | null, + _in?: (number)[], + _is_null?: boolean | undefined | null, + _lt?: number | undefined | null, + _lte?: number | undefined | null, + _neq?: number | undefined | null, + _nin?: (number)[] }; /** columns and relationships of "integration" */ ["integration"]: AliasType<{ apiDevUrl?:boolean, apiUrl?:boolean, connections?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["connection_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["connection_order_by"][], /** filter the rows returned */ - where?:ValueTypes["connection_bool_exp"] | null},ValueTypes["connection"]], + distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection"]], connections_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["connection_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["connection_order_by"][], /** filter the rows returned */ - where?:ValueTypes["connection_bool_exp"] | null},ValueTypes["connection_aggregate"]], + distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection_aggregate"]], icon?:boolean, id?:boolean, isApproved?:boolean, isPrivate?:boolean, jobs?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], jobs_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job_aggregate"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], name?:boolean, /** An object relationship */ team?:ValueTypes["team"], @@ -1633,59 +1633,59 @@ jobs_aggregate?: [{ /** distinct select on columns */ }>; /** aggregate fields of "integration" */ ["integration_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["integration_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["integration_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["integration_max_fields"], min?:ValueTypes["integration_min_fields"], __typename?: boolean }>; /** order by aggregate values of table "integration" */ ["integration_aggregate_order_by"]: { - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["integration_max_order_by"] | null, - min?:ValueTypes["integration_min_order_by"] | null + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["integration_max_order_by"] | undefined | null, + min?: ValueTypes["integration_min_order_by"] | undefined | null }; /** input type for inserting array relation for remote table "integration" */ ["integration_arr_rel_insert_input"]: { - data:ValueTypes["integration_insert_input"][], + data: (ValueTypes["integration_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["integration_on_conflict"] | null + on_conflict?: ValueTypes["integration_on_conflict"] | undefined | null }; /** Boolean expression to filter rows from the table "integration". All fields are combined with a logical 'AND'. */ ["integration_bool_exp"]: { - _and?:ValueTypes["integration_bool_exp"][], - _not?:ValueTypes["integration_bool_exp"] | null, - _or?:ValueTypes["integration_bool_exp"][], - apiDevUrl?:ValueTypes["String_comparison_exp"] | null, - apiUrl?:ValueTypes["String_comparison_exp"] | null, - connections?:ValueTypes["connection_bool_exp"] | null, - icon?:ValueTypes["String_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - isApproved?:ValueTypes["Boolean_comparison_exp"] | null, - isPrivate?:ValueTypes["Boolean_comparison_exp"] | null, - jobs?:ValueTypes["job_bool_exp"] | null, - name?:ValueTypes["String_comparison_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - type?:ValueTypes["integration_type_enum_comparison_exp"] | null, - uniqueRef?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["integration_bool_exp"])[], + _not?: ValueTypes["integration_bool_exp"] | undefined | null, + _or?: (ValueTypes["integration_bool_exp"])[], + apiDevUrl?: ValueTypes["String_comparison_exp"] | undefined | null, + apiUrl?: ValueTypes["String_comparison_exp"] | undefined | null, + connections?: ValueTypes["connection_bool_exp"] | undefined | null, + icon?: ValueTypes["String_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + isApproved?: ValueTypes["Boolean_comparison_exp"] | undefined | null, + isPrivate?: ValueTypes["Boolean_comparison_exp"] | undefined | null, + jobs?: ValueTypes["job_bool_exp"] | undefined | null, + name?: ValueTypes["String_comparison_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + type?: ValueTypes["integration_type_enum_comparison_exp"] | undefined | null, + uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "integration" */ ["integration_constraint"]:integration_constraint; /** input type for inserting data into table "integration" */ ["integration_insert_input"]: { - apiDevUrl?:string | null, - apiUrl?:string | null, - connections?:ValueTypes["connection_arr_rel_insert_input"] | null, - icon?:string | null, - id?:ValueTypes["uuid"] | null, - isApproved?:boolean | null, - isPrivate?:boolean | null, - jobs?:ValueTypes["job_arr_rel_insert_input"] | null, - name?:string | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:ValueTypes["integration_type_enum"] | null, - uniqueRef?:string | null + apiDevUrl?: string | undefined | null, + apiUrl?: string | undefined | null, + connections?: ValueTypes["connection_arr_rel_insert_input"] | undefined | null, + icon?: string | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + isApproved?: boolean | undefined | null, + isPrivate?: boolean | undefined | null, + jobs?: ValueTypes["job_arr_rel_insert_input"] | undefined | null, + name?: string | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: ValueTypes["integration_type_enum"] | undefined | null, + uniqueRef?: string | undefined | null }; /** aggregate max on columns */ ["integration_max_fields"]: AliasType<{ @@ -1700,13 +1700,13 @@ count?: [{ columns?:ValueTypes["integration_select_column"][], distinct?:boolean }>; /** order by max() on columns of table "integration" */ ["integration_max_order_by"]: { - apiDevUrl?:ValueTypes["order_by"] | null, - apiUrl?:ValueTypes["order_by"] | null, - icon?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - name?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null + apiDevUrl?: ValueTypes["order_by"] | undefined | null, + apiUrl?: ValueTypes["order_by"] | undefined | null, + icon?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["integration_min_fields"]: AliasType<{ @@ -1721,13 +1721,13 @@ count?: [{ columns?:ValueTypes["integration_select_column"][], distinct?:boolean }>; /** order by min() on columns of table "integration" */ ["integration_min_order_by"]: { - apiDevUrl?:ValueTypes["order_by"] | null, - apiUrl?:ValueTypes["order_by"] | null, - icon?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - name?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null + apiDevUrl?: ValueTypes["order_by"] | undefined | null, + apiUrl?: ValueTypes["order_by"] | undefined | null, + icon?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "integration" */ ["integration_mutation_response"]: AliasType<{ @@ -1739,59 +1739,59 @@ count?: [{ columns?:ValueTypes["integration_select_column"][], distinct?:boolean }>; /** input type for inserting object relation for remote table "integration" */ ["integration_obj_rel_insert_input"]: { - data:ValueTypes["integration_insert_input"], + data: ValueTypes["integration_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["integration_on_conflict"] | null + on_conflict?: ValueTypes["integration_on_conflict"] | undefined | null }; /** on conflict condition type for table "integration" */ ["integration_on_conflict"]: { - constraint:ValueTypes["integration_constraint"], - update_columns:ValueTypes["integration_update_column"][], - where?:ValueTypes["integration_bool_exp"] | null + constraint: ValueTypes["integration_constraint"], + update_columns: (ValueTypes["integration_update_column"])[] | undefined | null, + where?: ValueTypes["integration_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "integration". */ ["integration_order_by"]: { - apiDevUrl?:ValueTypes["order_by"] | null, - apiUrl?:ValueTypes["order_by"] | null, - connections_aggregate?:ValueTypes["connection_aggregate_order_by"] | null, - icon?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - isApproved?:ValueTypes["order_by"] | null, - isPrivate?:ValueTypes["order_by"] | null, - jobs_aggregate?:ValueTypes["job_aggregate_order_by"] | null, - name?:ValueTypes["order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null + apiDevUrl?: ValueTypes["order_by"] | undefined | null, + apiUrl?: ValueTypes["order_by"] | undefined | null, + connections_aggregate?: ValueTypes["connection_aggregate_order_by"] | undefined | null, + icon?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + isApproved?: ValueTypes["order_by"] | undefined | null, + isPrivate?: ValueTypes["order_by"] | undefined | null, + jobs_aggregate?: ValueTypes["job_aggregate_order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: integration */ ["integration_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** select columns of table "integration" */ ["integration_select_column"]:integration_select_column; /** input type for updating data in table "integration" */ ["integration_set_input"]: { - apiDevUrl?:string | null, - apiUrl?:string | null, - icon?:string | null, - id?:ValueTypes["uuid"] | null, - isApproved?:boolean | null, - isPrivate?:boolean | null, - name?:string | null, - teamId?:ValueTypes["uuid"] | null, - type?:ValueTypes["integration_type_enum"] | null, - uniqueRef?:string | null + apiDevUrl?: string | undefined | null, + apiUrl?: string | undefined | null, + icon?: string | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + isApproved?: boolean | undefined | null, + isPrivate?: boolean | undefined | null, + name?: string | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: ValueTypes["integration_type_enum"] | undefined | null, + uniqueRef?: string | undefined | null }; ["integration_type_enum"]:integration_type_enum; /** Boolean expression to compare columns of type "integration_type_enum". All fields are combined with logical 'AND'. */ ["integration_type_enum_comparison_exp"]: { - _eq?:ValueTypes["integration_type_enum"] | null, - _in?:ValueTypes["integration_type_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["integration_type_enum"] | null, - _nin?:ValueTypes["integration_type_enum"][] + _eq?: ValueTypes["integration_type_enum"] | undefined | null, + _in?: (ValueTypes["integration_type_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["integration_type_enum"] | undefined | null, + _nin?: (ValueTypes["integration_type_enum"])[] }; /** update columns of table "integration" */ ["integration_update_column"]:integration_update_column; @@ -1808,23 +1808,23 @@ count?: [{ columns?:ValueTypes["integration_select_column"][], distinct?:boolean }>; /** aggregate fields of "integration_type" */ ["integrationType_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["integrationType_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["integrationType_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["integrationType_max_fields"], min?:ValueTypes["integrationType_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "integration_type". All fields are combined with a logical 'AND'. */ ["integrationType_bool_exp"]: { - _and?:ValueTypes["integrationType_bool_exp"][], - _not?:ValueTypes["integrationType_bool_exp"] | null, - _or?:ValueTypes["integrationType_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["integrationType_bool_exp"])[], + _not?: ValueTypes["integrationType_bool_exp"] | undefined | null, + _or?: (ValueTypes["integrationType_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "integration_type" */ ["integrationType_constraint"]:integrationType_constraint; /** input type for inserting data into table "integration_type" */ ["integrationType_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["integrationType_max_fields"]: AliasType<{ @@ -1846,23 +1846,23 @@ count?: [{ columns?:ValueTypes["integrationType_select_column"][], distinct?:boo }>; /** on conflict condition type for table "integration_type" */ ["integrationType_on_conflict"]: { - constraint:ValueTypes["integrationType_constraint"], - update_columns:ValueTypes["integrationType_update_column"][], - where?:ValueTypes["integrationType_bool_exp"] | null + constraint: ValueTypes["integrationType_constraint"], + update_columns: (ValueTypes["integrationType_update_column"])[] | undefined | null, + where?: ValueTypes["integrationType_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "integration_type". */ ["integrationType_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: integrationType */ ["integrationType_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "integration_type" */ ["integrationType_select_column"]:integrationType_select_column; /** input type for updating data in table "integration_type" */ ["integrationType_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "integration_type" */ ["integrationType_update_column"]:integrationType_update_column; @@ -1878,9 +1878,9 @@ count?: [{ columns?:ValueTypes["integrationType_select_column"][], distinct?:boo jobId?:boolean, message?:boolean, requestParams?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], resolveParams?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], /** An object relationship */ team?:ValueTypes["team"], teamId?:boolean, @@ -1896,82 +1896,82 @@ resolveParams?: [{ /** JSON select path */ }>; /** aggregate fields of "issue" */ ["issue_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["issue_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["issue_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["issue_max_fields"], min?:ValueTypes["issue_min_fields"], __typename?: boolean }>; /** order by aggregate values of table "issue" */ ["issue_aggregate_order_by"]: { - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["issue_max_order_by"] | null, - min?:ValueTypes["issue_min_order_by"] | null + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["issue_max_order_by"] | undefined | null, + min?: ValueTypes["issue_min_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["issue_append_input"]: { - requestParams?:ValueTypes["jsonb"] | null, - resolveParams?:ValueTypes["jsonb"] | null + requestParams?: ValueTypes["jsonb"] | undefined | null, + resolveParams?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "issue" */ ["issue_arr_rel_insert_input"]: { - data:ValueTypes["issue_insert_input"][], + data: (ValueTypes["issue_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["issue_on_conflict"] | null + on_conflict?: ValueTypes["issue_on_conflict"] | undefined | null }; /** Boolean expression to filter rows from the table "issue". All fields are combined with a logical 'AND'. */ ["issue_bool_exp"]: { - _and?:ValueTypes["issue_bool_exp"][], - _not?:ValueTypes["issue_bool_exp"] | null, - _or?:ValueTypes["issue_bool_exp"][], - code?:ValueTypes["String_comparison_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - isPublic?:ValueTypes["Boolean_comparison_exp"] | null, - isResolved?:ValueTypes["Boolean_comparison_exp"] | null, - job?:ValueTypes["job_bool_exp"] | null, - jobId?:ValueTypes["uuid_comparison_exp"] | null, - message?:ValueTypes["String_comparison_exp"] | null, - requestParams?:ValueTypes["jsonb_comparison_exp"] | null, - resolveParams?:ValueTypes["jsonb_comparison_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - type?:ValueTypes["String_comparison_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null + _and?: (ValueTypes["issue_bool_exp"])[], + _not?: ValueTypes["issue_bool_exp"] | undefined | null, + _or?: (ValueTypes["issue_bool_exp"])[], + code?: ValueTypes["String_comparison_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + isPublic?: ValueTypes["Boolean_comparison_exp"] | undefined | null, + isResolved?: ValueTypes["Boolean_comparison_exp"] | undefined | null, + job?: ValueTypes["job_bool_exp"] | undefined | null, + jobId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + message?: ValueTypes["String_comparison_exp"] | undefined | null, + requestParams?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + resolveParams?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + type?: ValueTypes["String_comparison_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "issue" */ ["issue_constraint"]:issue_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["issue_delete_at_path_input"]: { - requestParams?:string[], - resolveParams?:string[] + requestParams?: (string)[], + resolveParams?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["issue_delete_elem_input"]: { - requestParams?:number | null, - resolveParams?:number | null + requestParams?: number | undefined | null, + resolveParams?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["issue_delete_key_input"]: { - requestParams?:string | null, - resolveParams?:string | null + requestParams?: string | undefined | null, + resolveParams?: string | undefined | null }; /** input type for inserting data into table "issue" */ ["issue_insert_input"]: { - code?:string | null, - createdAt?:ValueTypes["timestamptz"] | null, - id?:ValueTypes["uuid"] | null, - isPublic?:boolean | null, - isResolved?:boolean | null, - job?:ValueTypes["job_obj_rel_insert_input"] | null, - jobId?:ValueTypes["uuid"] | null, - message?:string | null, - requestParams?:ValueTypes["jsonb"] | null, - resolveParams?:ValueTypes["jsonb"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - updatedAt?:ValueTypes["timestamptz"] | null + code?: string | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + isPublic?: boolean | undefined | null, + isResolved?: boolean | undefined | null, + job?: ValueTypes["job_obj_rel_insert_input"] | undefined | null, + jobId?: ValueTypes["uuid"] | undefined | null, + message?: string | undefined | null, + requestParams?: ValueTypes["jsonb"] | undefined | null, + resolveParams?: ValueTypes["jsonb"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate max on columns */ ["issue_max_fields"]: AliasType<{ @@ -1987,14 +1987,14 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "issue" */ ["issue_max_order_by"]: { - code?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - jobId?:ValueTypes["order_by"] | null, - message?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + code?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + jobId?: ValueTypes["order_by"] | undefined | null, + message?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["issue_min_fields"]: AliasType<{ @@ -2010,14 +2010,14 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "issue" */ ["issue_min_order_by"]: { - code?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - jobId?:ValueTypes["order_by"] | null, - message?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + code?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + jobId?: ValueTypes["order_by"] | undefined | null, + message?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "issue" */ ["issue_mutation_response"]: AliasType<{ @@ -2029,52 +2029,52 @@ end). throws an error if top level container is not an array */ }>; /** on conflict condition type for table "issue" */ ["issue_on_conflict"]: { - constraint:ValueTypes["issue_constraint"], - update_columns:ValueTypes["issue_update_column"][], - where?:ValueTypes["issue_bool_exp"] | null + constraint: ValueTypes["issue_constraint"], + update_columns: (ValueTypes["issue_update_column"])[] | undefined | null, + where?: ValueTypes["issue_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "issue". */ ["issue_order_by"]: { - code?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - isPublic?:ValueTypes["order_by"] | null, - isResolved?:ValueTypes["order_by"] | null, - job?:ValueTypes["job_order_by"] | null, - jobId?:ValueTypes["order_by"] | null, - message?:ValueTypes["order_by"] | null, - requestParams?:ValueTypes["order_by"] | null, - resolveParams?:ValueTypes["order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + code?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + isPublic?: ValueTypes["order_by"] | undefined | null, + isResolved?: ValueTypes["order_by"] | undefined | null, + job?: ValueTypes["job_order_by"] | undefined | null, + jobId?: ValueTypes["order_by"] | undefined | null, + message?: ValueTypes["order_by"] | undefined | null, + requestParams?: ValueTypes["order_by"] | undefined | null, + resolveParams?: ValueTypes["order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: issue */ ["issue_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["issue_prepend_input"]: { - requestParams?:ValueTypes["jsonb"] | null, - resolveParams?:ValueTypes["jsonb"] | null + requestParams?: ValueTypes["jsonb"] | undefined | null, + resolveParams?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "issue" */ ["issue_select_column"]:issue_select_column; /** input type for updating data in table "issue" */ ["issue_set_input"]: { - code?:string | null, - createdAt?:ValueTypes["timestamptz"] | null, - id?:ValueTypes["uuid"] | null, - isPublic?:boolean | null, - isResolved?:boolean | null, - jobId?:ValueTypes["uuid"] | null, - message?:string | null, - requestParams?:ValueTypes["jsonb"] | null, - resolveParams?:ValueTypes["jsonb"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - updatedAt?:ValueTypes["timestamptz"] | null + code?: string | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + isPublic?: boolean | undefined | null, + isResolved?: boolean | undefined | null, + jobId?: ValueTypes["uuid"] | undefined | null, + message?: string | undefined | null, + requestParams?: ValueTypes["jsonb"] | undefined | null, + resolveParams?: ValueTypes["jsonb"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** update columns of table "issue" */ ["issue_update_column"]:issue_update_column; @@ -2087,17 +2087,17 @@ end). throws an error if top level container is not an array */ createdAt?:boolean, endedAt?:boolean, entities?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], entities_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity_aggregate"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], id?:boolean, /** An object relationship */ integration?:ValueTypes["integration"], @@ -2105,27 +2105,27 @@ entities_aggregate?: [{ /** distinct select on columns */ integrationSdkVersion?:boolean, integrationVersion?:boolean, issues?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["issue_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["issue_order_by"][], /** filter the rows returned */ - where?:ValueTypes["issue_bool_exp"] | null},ValueTypes["issue"]], + distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue"]], issues_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["issue_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["issue_order_by"][], /** filter the rows returned */ - where?:ValueTypes["issue_bool_exp"] | null},ValueTypes["issue_aggregate"]], + distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue_aggregate"]], logFile?:boolean, logLink?:boolean, logs?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], method?:boolean, params?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], requestId?:boolean, response?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], sdkVersion?:boolean, startedAt?:boolean, status?:boolean, @@ -2143,108 +2143,108 @@ response?: [{ /** JSON select path */ }>; /** aggregate fields of "job" */ ["job_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["job_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["job_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["job_max_fields"], min?:ValueTypes["job_min_fields"], __typename?: boolean }>; /** order by aggregate values of table "job" */ ["job_aggregate_order_by"]: { - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["job_max_order_by"] | null, - min?:ValueTypes["job_min_order_by"] | null + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["job_max_order_by"] | undefined | null, + min?: ValueTypes["job_min_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["job_append_input"]: { - logs?:ValueTypes["jsonb"] | null, - params?:ValueTypes["jsonb"] | null, - response?:ValueTypes["jsonb"] | null + logs?: ValueTypes["jsonb"] | undefined | null, + params?: ValueTypes["jsonb"] | undefined | null, + response?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "job" */ ["job_arr_rel_insert_input"]: { - data:ValueTypes["job_insert_input"][], + data: (ValueTypes["job_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["job_on_conflict"] | null + on_conflict?: ValueTypes["job_on_conflict"] | undefined | null }; /** Boolean expression to filter rows from the table "job". All fields are combined with a logical 'AND'. */ ["job_bool_exp"]: { - _and?:ValueTypes["job_bool_exp"][], - _not?:ValueTypes["job_bool_exp"] | null, - _or?:ValueTypes["job_bool_exp"][], - apiVersion?:ValueTypes["String_comparison_exp"] | null, - connection?:ValueTypes["connection_bool_exp"] | null, - connectionId?:ValueTypes["uuid_comparison_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - endedAt?:ValueTypes["timestamptz_comparison_exp"] | null, - entities?:ValueTypes["entity_bool_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - integration?:ValueTypes["integration_bool_exp"] | null, - integrationId?:ValueTypes["uuid_comparison_exp"] | null, - integrationSdkVersion?:ValueTypes["String_comparison_exp"] | null, - integrationVersion?:ValueTypes["String_comparison_exp"] | null, - issues?:ValueTypes["issue_bool_exp"] | null, - logFile?:ValueTypes["String_comparison_exp"] | null, - logLink?:ValueTypes["String_comparison_exp"] | null, - logs?:ValueTypes["jsonb_comparison_exp"] | null, - method?:ValueTypes["job_method_enum_comparison_exp"] | null, - params?:ValueTypes["jsonb_comparison_exp"] | null, - requestId?:ValueTypes["String_comparison_exp"] | null, - response?:ValueTypes["jsonb_comparison_exp"] | null, - sdkVersion?:ValueTypes["String_comparison_exp"] | null, - startedAt?:ValueTypes["timestamptz_comparison_exp"] | null, - status?:ValueTypes["job_status_enum_comparison_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null + _and?: (ValueTypes["job_bool_exp"])[], + _not?: ValueTypes["job_bool_exp"] | undefined | null, + _or?: (ValueTypes["job_bool_exp"])[], + apiVersion?: ValueTypes["String_comparison_exp"] | undefined | null, + connection?: ValueTypes["connection_bool_exp"] | undefined | null, + connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + endedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + entities?: ValueTypes["entity_bool_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + integration?: ValueTypes["integration_bool_exp"] | undefined | null, + integrationId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + integrationSdkVersion?: ValueTypes["String_comparison_exp"] | undefined | null, + integrationVersion?: ValueTypes["String_comparison_exp"] | undefined | null, + issues?: ValueTypes["issue_bool_exp"] | undefined | null, + logFile?: ValueTypes["String_comparison_exp"] | undefined | null, + logLink?: ValueTypes["String_comparison_exp"] | undefined | null, + logs?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + method?: ValueTypes["job_method_enum_comparison_exp"] | undefined | null, + params?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + requestId?: ValueTypes["String_comparison_exp"] | undefined | null, + response?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + sdkVersion?: ValueTypes["String_comparison_exp"] | undefined | null, + startedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + status?: ValueTypes["job_status_enum_comparison_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "job" */ ["job_constraint"]:job_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["job_delete_at_path_input"]: { - logs?:string[], - params?:string[], - response?:string[] + logs?: (string)[], + params?: (string)[], + response?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["job_delete_elem_input"]: { - logs?:number | null, - params?:number | null, - response?:number | null + logs?: number | undefined | null, + params?: number | undefined | null, + response?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["job_delete_key_input"]: { - logs?:string | null, - params?:string | null, - response?:string | null + logs?: string | undefined | null, + params?: string | undefined | null, + response?: string | undefined | null }; /** input type for inserting data into table "job" */ ["job_insert_input"]: { - apiVersion?:string | null, - connection?:ValueTypes["connection_obj_rel_insert_input"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - endedAt?:ValueTypes["timestamptz"] | null, - entities?:ValueTypes["entity_arr_rel_insert_input"] | null, - id?:ValueTypes["uuid"] | null, - integration?:ValueTypes["integration_obj_rel_insert_input"] | null, - integrationId?:ValueTypes["uuid"] | null, - integrationSdkVersion?:string | null, - integrationVersion?:string | null, - issues?:ValueTypes["issue_arr_rel_insert_input"] | null, - logFile?:string | null, - logLink?:string | null, - logs?:ValueTypes["jsonb"] | null, - method?:ValueTypes["job_method_enum"] | null, - params?:ValueTypes["jsonb"] | null, - requestId?:string | null, - response?:ValueTypes["jsonb"] | null, - sdkVersion?:string | null, - startedAt?:ValueTypes["timestamptz"] | null, - status?:ValueTypes["job_status_enum"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null + apiVersion?: string | undefined | null, + connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + endedAt?: ValueTypes["timestamptz"] | undefined | null, + entities?: ValueTypes["entity_arr_rel_insert_input"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + integration?: ValueTypes["integration_obj_rel_insert_input"] | undefined | null, + integrationId?: ValueTypes["uuid"] | undefined | null, + integrationSdkVersion?: string | undefined | null, + integrationVersion?: string | undefined | null, + issues?: ValueTypes["issue_arr_rel_insert_input"] | undefined | null, + logFile?: string | undefined | null, + logLink?: string | undefined | null, + logs?: ValueTypes["jsonb"] | undefined | null, + method?: ValueTypes["job_method_enum"] | undefined | null, + params?: ValueTypes["jsonb"] | undefined | null, + requestId?: string | undefined | null, + response?: ValueTypes["jsonb"] | undefined | null, + sdkVersion?: string | undefined | null, + startedAt?: ValueTypes["timestamptz"] | undefined | null, + status?: ValueTypes["job_status_enum"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate max on columns */ ["job_max_fields"]: AliasType<{ @@ -2267,30 +2267,30 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "job" */ ["job_max_order_by"]: { - apiVersion?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - endedAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - integrationId?:ValueTypes["order_by"] | null, - integrationSdkVersion?:ValueTypes["order_by"] | null, - integrationVersion?:ValueTypes["order_by"] | null, - logFile?:ValueTypes["order_by"] | null, - logLink?:ValueTypes["order_by"] | null, - requestId?:ValueTypes["order_by"] | null, - sdkVersion?:ValueTypes["order_by"] | null, - startedAt?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + apiVersion?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + endedAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + integrationId?: ValueTypes["order_by"] | undefined | null, + integrationSdkVersion?: ValueTypes["order_by"] | undefined | null, + integrationVersion?: ValueTypes["order_by"] | undefined | null, + logFile?: ValueTypes["order_by"] | undefined | null, + logLink?: ValueTypes["order_by"] | undefined | null, + requestId?: ValueTypes["order_by"] | undefined | null, + sdkVersion?: ValueTypes["order_by"] | undefined | null, + startedAt?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; ["job_method_enum"]:job_method_enum; /** Boolean expression to compare columns of type "job_method_enum". All fields are combined with logical 'AND'. */ ["job_method_enum_comparison_exp"]: { - _eq?:ValueTypes["job_method_enum"] | null, - _in?:ValueTypes["job_method_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["job_method_enum"] | null, - _nin?:ValueTypes["job_method_enum"][] + _eq?: ValueTypes["job_method_enum"] | undefined | null, + _in?: (ValueTypes["job_method_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["job_method_enum"] | undefined | null, + _nin?: (ValueTypes["job_method_enum"])[] }; /** aggregate min on columns */ ["job_min_fields"]: AliasType<{ @@ -2313,21 +2313,21 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "job" */ ["job_min_order_by"]: { - apiVersion?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - endedAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - integrationId?:ValueTypes["order_by"] | null, - integrationSdkVersion?:ValueTypes["order_by"] | null, - integrationVersion?:ValueTypes["order_by"] | null, - logFile?:ValueTypes["order_by"] | null, - logLink?:ValueTypes["order_by"] | null, - requestId?:ValueTypes["order_by"] | null, - sdkVersion?:ValueTypes["order_by"] | null, - startedAt?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + apiVersion?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + endedAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + integrationId?: ValueTypes["order_by"] | undefined | null, + integrationSdkVersion?: ValueTypes["order_by"] | undefined | null, + integrationVersion?: ValueTypes["order_by"] | undefined | null, + logFile?: ValueTypes["order_by"] | undefined | null, + logLink?: ValueTypes["order_by"] | undefined | null, + requestId?: ValueTypes["order_by"] | undefined | null, + sdkVersion?: ValueTypes["order_by"] | undefined | null, + startedAt?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "job" */ ["job_mutation_response"]: AliasType<{ @@ -2339,87 +2339,87 @@ end). throws an error if top level container is not an array */ }>; /** input type for inserting object relation for remote table "job" */ ["job_obj_rel_insert_input"]: { - data:ValueTypes["job_insert_input"], + data: ValueTypes["job_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["job_on_conflict"] | null + on_conflict?: ValueTypes["job_on_conflict"] | undefined | null }; /** on conflict condition type for table "job" */ ["job_on_conflict"]: { - constraint:ValueTypes["job_constraint"], - update_columns:ValueTypes["job_update_column"][], - where?:ValueTypes["job_bool_exp"] | null + constraint: ValueTypes["job_constraint"], + update_columns: (ValueTypes["job_update_column"])[] | undefined | null, + where?: ValueTypes["job_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "job". */ ["job_order_by"]: { - apiVersion?:ValueTypes["order_by"] | null, - connection?:ValueTypes["connection_order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - endedAt?:ValueTypes["order_by"] | null, - entities_aggregate?:ValueTypes["entity_aggregate_order_by"] | null, - id?:ValueTypes["order_by"] | null, - integration?:ValueTypes["integration_order_by"] | null, - integrationId?:ValueTypes["order_by"] | null, - integrationSdkVersion?:ValueTypes["order_by"] | null, - integrationVersion?:ValueTypes["order_by"] | null, - issues_aggregate?:ValueTypes["issue_aggregate_order_by"] | null, - logFile?:ValueTypes["order_by"] | null, - logLink?:ValueTypes["order_by"] | null, - logs?:ValueTypes["order_by"] | null, - method?:ValueTypes["order_by"] | null, - params?:ValueTypes["order_by"] | null, - requestId?:ValueTypes["order_by"] | null, - response?:ValueTypes["order_by"] | null, - sdkVersion?:ValueTypes["order_by"] | null, - startedAt?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + apiVersion?: ValueTypes["order_by"] | undefined | null, + connection?: ValueTypes["connection_order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + endedAt?: ValueTypes["order_by"] | undefined | null, + entities_aggregate?: ValueTypes["entity_aggregate_order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + integration?: ValueTypes["integration_order_by"] | undefined | null, + integrationId?: ValueTypes["order_by"] | undefined | null, + integrationSdkVersion?: ValueTypes["order_by"] | undefined | null, + integrationVersion?: ValueTypes["order_by"] | undefined | null, + issues_aggregate?: ValueTypes["issue_aggregate_order_by"] | undefined | null, + logFile?: ValueTypes["order_by"] | undefined | null, + logLink?: ValueTypes["order_by"] | undefined | null, + logs?: ValueTypes["order_by"] | undefined | null, + method?: ValueTypes["order_by"] | undefined | null, + params?: ValueTypes["order_by"] | undefined | null, + requestId?: ValueTypes["order_by"] | undefined | null, + response?: ValueTypes["order_by"] | undefined | null, + sdkVersion?: ValueTypes["order_by"] | undefined | null, + startedAt?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: job */ ["job_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["job_prepend_input"]: { - logs?:ValueTypes["jsonb"] | null, - params?:ValueTypes["jsonb"] | null, - response?:ValueTypes["jsonb"] | null + logs?: ValueTypes["jsonb"] | undefined | null, + params?: ValueTypes["jsonb"] | undefined | null, + response?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "job" */ ["job_select_column"]:job_select_column; /** input type for updating data in table "job" */ ["job_set_input"]: { - apiVersion?:string | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - endedAt?:ValueTypes["timestamptz"] | null, - id?:ValueTypes["uuid"] | null, - integrationId?:ValueTypes["uuid"] | null, - integrationSdkVersion?:string | null, - integrationVersion?:string | null, - logFile?:string | null, - logLink?:string | null, - logs?:ValueTypes["jsonb"] | null, - method?:ValueTypes["job_method_enum"] | null, - params?:ValueTypes["jsonb"] | null, - requestId?:string | null, - response?:ValueTypes["jsonb"] | null, - sdkVersion?:string | null, - startedAt?:ValueTypes["timestamptz"] | null, - status?:ValueTypes["job_status_enum"] | null, - teamId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null + apiVersion?: string | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + endedAt?: ValueTypes["timestamptz"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + integrationId?: ValueTypes["uuid"] | undefined | null, + integrationSdkVersion?: string | undefined | null, + integrationVersion?: string | undefined | null, + logFile?: string | undefined | null, + logLink?: string | undefined | null, + logs?: ValueTypes["jsonb"] | undefined | null, + method?: ValueTypes["job_method_enum"] | undefined | null, + params?: ValueTypes["jsonb"] | undefined | null, + requestId?: string | undefined | null, + response?: ValueTypes["jsonb"] | undefined | null, + sdkVersion?: string | undefined | null, + startedAt?: ValueTypes["timestamptz"] | undefined | null, + status?: ValueTypes["job_status_enum"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; ["job_status_enum"]:job_status_enum; /** Boolean expression to compare columns of type "job_status_enum". All fields are combined with logical 'AND'. */ ["job_status_enum_comparison_exp"]: { - _eq?:ValueTypes["job_status_enum"] | null, - _in?:ValueTypes["job_status_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["job_status_enum"] | null, - _nin?:ValueTypes["job_status_enum"][] + _eq?: ValueTypes["job_status_enum"] | undefined | null, + _in?: (ValueTypes["job_status_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["job_status_enum"] | undefined | null, + _nin?: (ValueTypes["job_status_enum"])[] }; /** update columns of table "job" */ ["job_update_column"]:job_update_column; @@ -2436,23 +2436,23 @@ end). throws an error if top level container is not an array */ }>; /** aggregate fields of "job_method" */ ["jobMethod_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["jobMethod_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["jobMethod_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["jobMethod_max_fields"], min?:ValueTypes["jobMethod_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "job_method". All fields are combined with a logical 'AND'. */ ["jobMethod_bool_exp"]: { - _and?:ValueTypes["jobMethod_bool_exp"][], - _not?:ValueTypes["jobMethod_bool_exp"] | null, - _or?:ValueTypes["jobMethod_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["jobMethod_bool_exp"])[], + _not?: ValueTypes["jobMethod_bool_exp"] | undefined | null, + _or?: (ValueTypes["jobMethod_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "job_method" */ ["jobMethod_constraint"]:jobMethod_constraint; /** input type for inserting data into table "job_method" */ ["jobMethod_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["jobMethod_max_fields"]: AliasType<{ @@ -2474,23 +2474,23 @@ count?: [{ columns?:ValueTypes["jobMethod_select_column"][], distinct?:boolean | }>; /** on conflict condition type for table "job_method" */ ["jobMethod_on_conflict"]: { - constraint:ValueTypes["jobMethod_constraint"], - update_columns:ValueTypes["jobMethod_update_column"][], - where?:ValueTypes["jobMethod_bool_exp"] | null + constraint: ValueTypes["jobMethod_constraint"], + update_columns: (ValueTypes["jobMethod_update_column"])[] | undefined | null, + where?: ValueTypes["jobMethod_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "job_method". */ ["jobMethod_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: jobMethod */ ["jobMethod_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "job_method" */ ["jobMethod_select_column"]:jobMethod_select_column; /** input type for updating data in table "job_method" */ ["jobMethod_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "job_method" */ ["jobMethod_update_column"]:jobMethod_update_column; @@ -2507,23 +2507,23 @@ count?: [{ columns?:ValueTypes["jobMethod_select_column"][], distinct?:boolean | }>; /** aggregate fields of "job_status" */ ["jobStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["jobStatus_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["jobStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["jobStatus_max_fields"], min?:ValueTypes["jobStatus_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "job_status". All fields are combined with a logical 'AND'. */ ["jobStatus_bool_exp"]: { - _and?:ValueTypes["jobStatus_bool_exp"][], - _not?:ValueTypes["jobStatus_bool_exp"] | null, - _or?:ValueTypes["jobStatus_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["jobStatus_bool_exp"])[], + _not?: ValueTypes["jobStatus_bool_exp"] | undefined | null, + _or?: (ValueTypes["jobStatus_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "job_status" */ ["jobStatus_constraint"]:jobStatus_constraint; /** input type for inserting data into table "job_status" */ ["jobStatus_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["jobStatus_max_fields"]: AliasType<{ @@ -2545,23 +2545,23 @@ count?: [{ columns?:ValueTypes["jobStatus_select_column"][], distinct?:boolean | }>; /** on conflict condition type for table "job_status" */ ["jobStatus_on_conflict"]: { - constraint:ValueTypes["jobStatus_constraint"], - update_columns:ValueTypes["jobStatus_update_column"][], - where?:ValueTypes["jobStatus_bool_exp"] | null + constraint: ValueTypes["jobStatus_constraint"], + update_columns: (ValueTypes["jobStatus_update_column"])[] | undefined | null, + where?: ValueTypes["jobStatus_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "job_status". */ ["jobStatus_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: jobStatus */ ["jobStatus_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "job_status" */ ["jobStatus_select_column"]:jobStatus_select_column; /** input type for updating data in table "job_status" */ ["jobStatus_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "job_status" */ ["jobStatus_update_column"]:jobStatus_update_column; @@ -2569,24 +2569,24 @@ count?: [{ columns?:ValueTypes["jobStatus_select_column"][], distinct?:boolean | /** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ ["jsonb_comparison_exp"]: { /** is the column contained in the given json value */ - _contained_in?:ValueTypes["jsonb"] | null, + _contained_in?: ValueTypes["jsonb"] | undefined | null, /** does the column contain the given json value at the top level */ - _contains?:ValueTypes["jsonb"] | null, - _eq?:ValueTypes["jsonb"] | null, - _gt?:ValueTypes["jsonb"] | null, - _gte?:ValueTypes["jsonb"] | null, + _contains?: ValueTypes["jsonb"] | undefined | null, + _eq?: ValueTypes["jsonb"] | undefined | null, + _gt?: ValueTypes["jsonb"] | undefined | null, + _gte?: ValueTypes["jsonb"] | undefined | null, /** does the string exist as a top-level key in the column */ - _has_key?:string | null, + _has_key?: string | undefined | null, /** do all of these strings exist as top-level keys in the column */ - _has_keys_all?:string[], + _has_keys_all?: (string)[], /** do any of these strings exist as top-level keys in the column */ - _has_keys_any?:string[], - _in?:ValueTypes["jsonb"][], - _is_null?:boolean | null, - _lt?:ValueTypes["jsonb"] | null, - _lte?:ValueTypes["jsonb"] | null, - _neq?:ValueTypes["jsonb"] | null, - _nin?:ValueTypes["jsonb"][] + _has_keys_any?: (string)[], + _in?: (ValueTypes["jsonb"])[], + _is_null?: boolean | undefined | null, + _lt?: ValueTypes["jsonb"] | undefined | null, + _lte?: ValueTypes["jsonb"] | undefined | null, + _neq?: ValueTypes["jsonb"] | undefined | null, + _nin?: (ValueTypes["jsonb"])[] }; /** columns and relationships of "line" */ ["line"]: AliasType<{ @@ -2601,17 +2601,17 @@ count?: [{ columns?:ValueTypes["jobStatus_select_column"][], distinct?:boolean | createdAt?:boolean, description?:boolean, enhancementLines?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], enhancementLines_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line_aggregate"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], /** An object relationship */ enhancingLine?:ValueTypes["line"], enhancingLineId?:boolean, @@ -2619,7 +2619,7 @@ enhancementLines_aggregate?: [{ /** distinct select on columns */ invoiceStatus?:boolean, isEnhanced?:boolean, metadata?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], originCentTotal?:boolean, originCurrency?:boolean, originExchangeRate?:boolean, @@ -2645,7 +2645,7 @@ metadata?: [{ /** JSON select path */ /** aggregate fields of "line" */ ["line_aggregate_fields"]: AliasType<{ avg?:ValueTypes["line_avg_fields"], -count?: [{ columns?:ValueTypes["line_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["line_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["line_max_fields"], min?:ValueTypes["line_min_fields"], stddev?:ValueTypes["line_stddev_fields"], @@ -2659,27 +2659,27 @@ count?: [{ columns?:ValueTypes["line_select_column"][], distinct?:boolean | null }>; /** order by aggregate values of table "line" */ ["line_aggregate_order_by"]: { - avg?:ValueTypes["line_avg_order_by"] | null, - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["line_max_order_by"] | null, - min?:ValueTypes["line_min_order_by"] | null, - stddev?:ValueTypes["line_stddev_order_by"] | null, - stddev_pop?:ValueTypes["line_stddev_pop_order_by"] | null, - stddev_samp?:ValueTypes["line_stddev_samp_order_by"] | null, - sum?:ValueTypes["line_sum_order_by"] | null, - var_pop?:ValueTypes["line_var_pop_order_by"] | null, - var_samp?:ValueTypes["line_var_samp_order_by"] | null, - variance?:ValueTypes["line_variance_order_by"] | null + avg?: ValueTypes["line_avg_order_by"] | undefined | null, + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["line_max_order_by"] | undefined | null, + min?: ValueTypes["line_min_order_by"] | undefined | null, + stddev?: ValueTypes["line_stddev_order_by"] | undefined | null, + stddev_pop?: ValueTypes["line_stddev_pop_order_by"] | undefined | null, + stddev_samp?: ValueTypes["line_stddev_samp_order_by"] | undefined | null, + sum?: ValueTypes["line_sum_order_by"] | undefined | null, + var_pop?: ValueTypes["line_var_pop_order_by"] | undefined | null, + var_samp?: ValueTypes["line_var_samp_order_by"] | undefined | null, + variance?: ValueTypes["line_variance_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["line_append_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "line" */ ["line_arr_rel_insert_input"]: { - data:ValueTypes["line_insert_input"][], + data: (ValueTypes["line_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["line_on_conflict"] | null + on_conflict?: ValueTypes["line_on_conflict"] | undefined | null }; /** aggregate avg on columns */ ["line_avg_fields"]: AliasType<{ @@ -2690,93 +2690,93 @@ count?: [{ columns?:ValueTypes["line_select_column"][], distinct?:boolean | null }>; /** order by avg() on columns of table "line" */ ["line_avg_order_by"]: { - centTotal?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null }; /** Boolean expression to filter rows from the table "line". All fields are combined with a logical 'AND'. */ ["line_bool_exp"]: { - _and?:ValueTypes["line_bool_exp"][], - _not?:ValueTypes["line_bool_exp"] | null, - _or?:ValueTypes["line_bool_exp"][], - booking?:ValueTypes["booking_bool_exp"] | null, - bookingId?:ValueTypes["uuid_comparison_exp"] | null, - centTotal?:ValueTypes["Int_comparison_exp"] | null, - classification?:ValueTypes["classification_enum_comparison_exp"] | null, - connection?:ValueTypes["connection_bool_exp"] | null, - connectionId?:ValueTypes["uuid_comparison_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - description?:ValueTypes["String_comparison_exp"] | null, - enhancementLines?:ValueTypes["line_bool_exp"] | null, - enhancingLine?:ValueTypes["line_bool_exp"] | null, - enhancingLineId?:ValueTypes["uuid_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - invoiceStatus?:ValueTypes["String_comparison_exp"] | null, - isEnhanced?:ValueTypes["Boolean_comparison_exp"] | null, - metadata?:ValueTypes["jsonb_comparison_exp"] | null, - originCentTotal?:ValueTypes["Int_comparison_exp"] | null, - originCurrency?:ValueTypes["String_comparison_exp"] | null, - originExchangeRate?:ValueTypes["numeric_comparison_exp"] | null, - payment?:ValueTypes["payment_bool_exp"] | null, - paymentId?:ValueTypes["uuid_comparison_exp"] | null, - subclassification?:ValueTypes["subclassification_enum_comparison_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - type?:ValueTypes["String_comparison_exp"] | null, - uniqueRef?:ValueTypes["String_comparison_exp"] | null, - unitId?:ValueTypes["uuid_comparison_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null + _and?: (ValueTypes["line_bool_exp"])[], + _not?: ValueTypes["line_bool_exp"] | undefined | null, + _or?: (ValueTypes["line_bool_exp"])[], + booking?: ValueTypes["booking_bool_exp"] | undefined | null, + bookingId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + centTotal?: ValueTypes["Int_comparison_exp"] | undefined | null, + classification?: ValueTypes["classification_enum_comparison_exp"] | undefined | null, + connection?: ValueTypes["connection_bool_exp"] | undefined | null, + connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + description?: ValueTypes["String_comparison_exp"] | undefined | null, + enhancementLines?: ValueTypes["line_bool_exp"] | undefined | null, + enhancingLine?: ValueTypes["line_bool_exp"] | undefined | null, + enhancingLineId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + invoiceStatus?: ValueTypes["String_comparison_exp"] | undefined | null, + isEnhanced?: ValueTypes["Boolean_comparison_exp"] | undefined | null, + metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + originCentTotal?: ValueTypes["Int_comparison_exp"] | undefined | null, + originCurrency?: ValueTypes["String_comparison_exp"] | undefined | null, + originExchangeRate?: ValueTypes["numeric_comparison_exp"] | undefined | null, + payment?: ValueTypes["payment_bool_exp"] | undefined | null, + paymentId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + subclassification?: ValueTypes["subclassification_enum_comparison_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + type?: ValueTypes["String_comparison_exp"] | undefined | null, + uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, + unitId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "line" */ ["line_constraint"]:line_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["line_delete_at_path_input"]: { - metadata?:string[] + metadata?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["line_delete_elem_input"]: { - metadata?:number | null + metadata?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["line_delete_key_input"]: { - metadata?:string | null + metadata?: string | undefined | null }; /** input type for incrementing numeric columns in table "line" */ ["line_inc_input"]: { - centTotal?:number | null, - originCentTotal?:number | null, - originExchangeRate?:ValueTypes["numeric"] | null + centTotal?: number | undefined | null, + originCentTotal?: number | undefined | null, + originExchangeRate?: ValueTypes["numeric"] | undefined | null }; /** input type for inserting data into table "line" */ ["line_insert_input"]: { - booking?:ValueTypes["booking_obj_rel_insert_input"] | null, - bookingId?:ValueTypes["uuid"] | null, - centTotal?:number | null, - classification?:ValueTypes["classification_enum"] | null, - connection?:ValueTypes["connection_obj_rel_insert_input"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - description?:string | null, - enhancementLines?:ValueTypes["line_arr_rel_insert_input"] | null, - enhancingLine?:ValueTypes["line_obj_rel_insert_input"] | null, - enhancingLineId?:ValueTypes["uuid"] | null, - id?:ValueTypes["uuid"] | null, - invoiceStatus?:string | null, - isEnhanced?:boolean | null, - metadata?:ValueTypes["jsonb"] | null, - originCentTotal?:number | null, - originCurrency?:string | null, - originExchangeRate?:ValueTypes["numeric"] | null, - payment?:ValueTypes["payment_obj_rel_insert_input"] | null, - paymentId?:ValueTypes["uuid"] | null, - subclassification?:ValueTypes["subclassification_enum"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - uniqueRef?:string | null, - unitId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null + booking?: ValueTypes["booking_obj_rel_insert_input"] | undefined | null, + bookingId?: ValueTypes["uuid"] | undefined | null, + centTotal?: number | undefined | null, + classification?: ValueTypes["classification_enum"] | undefined | null, + connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + description?: string | undefined | null, + enhancementLines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, + enhancingLine?: ValueTypes["line_obj_rel_insert_input"] | undefined | null, + enhancingLineId?: ValueTypes["uuid"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + invoiceStatus?: string | undefined | null, + isEnhanced?: boolean | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + originCentTotal?: number | undefined | null, + originCurrency?: string | undefined | null, + originExchangeRate?: ValueTypes["numeric"] | undefined | null, + payment?: ValueTypes["payment_obj_rel_insert_input"] | undefined | null, + paymentId?: ValueTypes["uuid"] | undefined | null, + subclassification?: ValueTypes["subclassification_enum"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + unitId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate max on columns */ ["line_max_fields"]: AliasType<{ @@ -2801,23 +2801,23 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "line" */ ["line_max_order_by"]: { - bookingId?:ValueTypes["order_by"] | null, - centTotal?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - description?:ValueTypes["order_by"] | null, - enhancingLineId?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - invoiceStatus?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originCurrency?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null, - paymentId?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + bookingId?: ValueTypes["order_by"] | undefined | null, + centTotal?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + description?: ValueTypes["order_by"] | undefined | null, + enhancingLineId?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + invoiceStatus?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originCurrency?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null, + paymentId?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["line_min_fields"]: AliasType<{ @@ -2842,23 +2842,23 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "line" */ ["line_min_order_by"]: { - bookingId?:ValueTypes["order_by"] | null, - centTotal?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - description?:ValueTypes["order_by"] | null, - enhancingLineId?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - invoiceStatus?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originCurrency?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null, - paymentId?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + bookingId?: ValueTypes["order_by"] | undefined | null, + centTotal?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + description?: ValueTypes["order_by"] | undefined | null, + enhancingLineId?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + invoiceStatus?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originCurrency?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null, + paymentId?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "line" */ ["line_mutation_response"]: AliasType<{ @@ -2870,79 +2870,79 @@ end). throws an error if top level container is not an array */ }>; /** input type for inserting object relation for remote table "line" */ ["line_obj_rel_insert_input"]: { - data:ValueTypes["line_insert_input"], + data: ValueTypes["line_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["line_on_conflict"] | null + on_conflict?: ValueTypes["line_on_conflict"] | undefined | null }; /** on conflict condition type for table "line" */ ["line_on_conflict"]: { - constraint:ValueTypes["line_constraint"], - update_columns:ValueTypes["line_update_column"][], - where?:ValueTypes["line_bool_exp"] | null + constraint: ValueTypes["line_constraint"], + update_columns: (ValueTypes["line_update_column"])[] | undefined | null, + where?: ValueTypes["line_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "line". */ ["line_order_by"]: { - booking?:ValueTypes["booking_order_by"] | null, - bookingId?:ValueTypes["order_by"] | null, - centTotal?:ValueTypes["order_by"] | null, - classification?:ValueTypes["order_by"] | null, - connection?:ValueTypes["connection_order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - description?:ValueTypes["order_by"] | null, - enhancementLines_aggregate?:ValueTypes["line_aggregate_order_by"] | null, - enhancingLine?:ValueTypes["line_order_by"] | null, - enhancingLineId?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - invoiceStatus?:ValueTypes["order_by"] | null, - isEnhanced?:ValueTypes["order_by"] | null, - metadata?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originCurrency?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null, - payment?:ValueTypes["payment_order_by"] | null, - paymentId?:ValueTypes["order_by"] | null, - subclassification?:ValueTypes["order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + booking?: ValueTypes["booking_order_by"] | undefined | null, + bookingId?: ValueTypes["order_by"] | undefined | null, + centTotal?: ValueTypes["order_by"] | undefined | null, + classification?: ValueTypes["order_by"] | undefined | null, + connection?: ValueTypes["connection_order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + description?: ValueTypes["order_by"] | undefined | null, + enhancementLines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, + enhancingLine?: ValueTypes["line_order_by"] | undefined | null, + enhancingLineId?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + invoiceStatus?: ValueTypes["order_by"] | undefined | null, + isEnhanced?: ValueTypes["order_by"] | undefined | null, + metadata?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originCurrency?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null, + payment?: ValueTypes["payment_order_by"] | undefined | null, + paymentId?: ValueTypes["order_by"] | undefined | null, + subclassification?: ValueTypes["order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: line */ ["line_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["line_prepend_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "line" */ ["line_select_column"]:line_select_column; /** input type for updating data in table "line" */ ["line_set_input"]: { - bookingId?:ValueTypes["uuid"] | null, - centTotal?:number | null, - classification?:ValueTypes["classification_enum"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - description?:string | null, - enhancingLineId?:ValueTypes["uuid"] | null, - id?:ValueTypes["uuid"] | null, - invoiceStatus?:string | null, - isEnhanced?:boolean | null, - metadata?:ValueTypes["jsonb"] | null, - originCentTotal?:number | null, - originCurrency?:string | null, - originExchangeRate?:ValueTypes["numeric"] | null, - paymentId?:ValueTypes["uuid"] | null, - subclassification?:ValueTypes["subclassification_enum"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - uniqueRef?:string | null, - unitId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null + bookingId?: ValueTypes["uuid"] | undefined | null, + centTotal?: number | undefined | null, + classification?: ValueTypes["classification_enum"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + description?: string | undefined | null, + enhancingLineId?: ValueTypes["uuid"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + invoiceStatus?: string | undefined | null, + isEnhanced?: boolean | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + originCentTotal?: number | undefined | null, + originCurrency?: string | undefined | null, + originExchangeRate?: ValueTypes["numeric"] | undefined | null, + paymentId?: ValueTypes["uuid"] | undefined | null, + subclassification?: ValueTypes["subclassification_enum"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + unitId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate stddev on columns */ ["line_stddev_fields"]: AliasType<{ @@ -2953,9 +2953,9 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev() on columns of table "line" */ ["line_stddev_order_by"]: { - centTotal?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null }; /** aggregate stddev_pop on columns */ ["line_stddev_pop_fields"]: AliasType<{ @@ -2966,9 +2966,9 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev_pop() on columns of table "line" */ ["line_stddev_pop_order_by"]: { - centTotal?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null }; /** aggregate stddev_samp on columns */ ["line_stddev_samp_fields"]: AliasType<{ @@ -2979,9 +2979,9 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev_samp() on columns of table "line" */ ["line_stddev_samp_order_by"]: { - centTotal?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null }; /** aggregate sum on columns */ ["line_sum_fields"]: AliasType<{ @@ -2992,9 +2992,9 @@ end). throws an error if top level container is not an array */ }>; /** order by sum() on columns of table "line" */ ["line_sum_order_by"]: { - centTotal?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null }; /** update columns of table "line" */ ["line_update_column"]:line_update_column; @@ -3007,9 +3007,9 @@ end). throws an error if top level container is not an array */ }>; /** order by var_pop() on columns of table "line" */ ["line_var_pop_order_by"]: { - centTotal?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null }; /** aggregate var_samp on columns */ ["line_var_samp_fields"]: AliasType<{ @@ -3020,9 +3020,9 @@ end). throws an error if top level container is not an array */ }>; /** order by var_samp() on columns of table "line" */ ["line_var_samp_order_by"]: { - centTotal?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null }; /** aggregate variance on columns */ ["line_variance_fields"]: AliasType<{ @@ -3033,9 +3033,9 @@ end). throws an error if top level container is not an array */ }>; /** order by variance() on columns of table "line" */ ["line_variance_order_by"]: { - centTotal?:ValueTypes["order_by"] | null, - originCentTotal?:ValueTypes["order_by"] | null, - originExchangeRate?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null, + originCentTotal?: ValueTypes["order_by"] | undefined | null, + originExchangeRate?: ValueTypes["order_by"] | undefined | null }; /** columns and relationships of "metric" */ ["metric"]: AliasType<{ @@ -3046,7 +3046,7 @@ end). throws an error if top level container is not an array */ ensuedAt?:boolean, id?:boolean, metadata?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], /** An object relationship */ team?:ValueTypes["team"], teamId?:boolean, @@ -3067,7 +3067,7 @@ metadata?: [{ /** JSON select path */ /** aggregate fields of "metric" */ ["metric_aggregate_fields"]: AliasType<{ avg?:ValueTypes["metric_avg_fields"], -count?: [{ columns?:ValueTypes["metric_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["metric_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["metric_max_fields"], min?:ValueTypes["metric_min_fields"], stddev?:ValueTypes["metric_stddev_fields"], @@ -3081,27 +3081,27 @@ count?: [{ columns?:ValueTypes["metric_select_column"][], distinct?:boolean | nu }>; /** order by aggregate values of table "metric" */ ["metric_aggregate_order_by"]: { - avg?:ValueTypes["metric_avg_order_by"] | null, - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["metric_max_order_by"] | null, - min?:ValueTypes["metric_min_order_by"] | null, - stddev?:ValueTypes["metric_stddev_order_by"] | null, - stddev_pop?:ValueTypes["metric_stddev_pop_order_by"] | null, - stddev_samp?:ValueTypes["metric_stddev_samp_order_by"] | null, - sum?:ValueTypes["metric_sum_order_by"] | null, - var_pop?:ValueTypes["metric_var_pop_order_by"] | null, - var_samp?:ValueTypes["metric_var_samp_order_by"] | null, - variance?:ValueTypes["metric_variance_order_by"] | null + avg?: ValueTypes["metric_avg_order_by"] | undefined | null, + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["metric_max_order_by"] | undefined | null, + min?: ValueTypes["metric_min_order_by"] | undefined | null, + stddev?: ValueTypes["metric_stddev_order_by"] | undefined | null, + stddev_pop?: ValueTypes["metric_stddev_pop_order_by"] | undefined | null, + stddev_samp?: ValueTypes["metric_stddev_samp_order_by"] | undefined | null, + sum?: ValueTypes["metric_sum_order_by"] | undefined | null, + var_pop?: ValueTypes["metric_var_pop_order_by"] | undefined | null, + var_samp?: ValueTypes["metric_var_samp_order_by"] | undefined | null, + variance?: ValueTypes["metric_variance_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["metric_append_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "metric" */ ["metric_arr_rel_insert_input"]: { - data:ValueTypes["metric_insert_input"][], + data: (ValueTypes["metric_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["metric_on_conflict"] | null + on_conflict?: ValueTypes["metric_on_conflict"] | undefined | null }; /** aggregate avg on columns */ ["metric_avg_fields"]: AliasType<{ @@ -3110,63 +3110,63 @@ count?: [{ columns?:ValueTypes["metric_select_column"][], distinct?:boolean | nu }>; /** order by avg() on columns of table "metric" */ ["metric_avg_order_by"]: { - value?:ValueTypes["order_by"] | null + value?: ValueTypes["order_by"] | undefined | null }; /** Boolean expression to filter rows from the table "metric". All fields are combined with a logical 'AND'. */ ["metric_bool_exp"]: { - _and?:ValueTypes["metric_bool_exp"][], - _not?:ValueTypes["metric_bool_exp"] | null, - _or?:ValueTypes["metric_bool_exp"][], - connection?:ValueTypes["connection_bool_exp"] | null, - connectionId?:ValueTypes["uuid_comparison_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - ensuedAt?:ValueTypes["timestamptz_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - metadata?:ValueTypes["jsonb_comparison_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - text?:ValueTypes["String_comparison_exp"] | null, - type?:ValueTypes["String_comparison_exp"] | null, - uniqueRef?:ValueTypes["String_comparison_exp"] | null, - unitId?:ValueTypes["uuid_comparison_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null, - value?:ValueTypes["float8_comparison_exp"] | null + _and?: (ValueTypes["metric_bool_exp"])[], + _not?: ValueTypes["metric_bool_exp"] | undefined | null, + _or?: (ValueTypes["metric_bool_exp"])[], + connection?: ValueTypes["connection_bool_exp"] | undefined | null, + connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + ensuedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + text?: ValueTypes["String_comparison_exp"] | undefined | null, + type?: ValueTypes["String_comparison_exp"] | undefined | null, + uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, + unitId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + value?: ValueTypes["float8_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "metric" */ ["metric_constraint"]:metric_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["metric_delete_at_path_input"]: { - metadata?:string[] + metadata?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["metric_delete_elem_input"]: { - metadata?:number | null + metadata?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["metric_delete_key_input"]: { - metadata?:string | null + metadata?: string | undefined | null }; /** input type for incrementing numeric columns in table "metric" */ ["metric_inc_input"]: { - value?:ValueTypes["float8"] | null + value?: ValueTypes["float8"] | undefined | null }; /** input type for inserting data into table "metric" */ ["metric_insert_input"]: { - connection?:ValueTypes["connection_obj_rel_insert_input"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - ensuedAt?:ValueTypes["timestamptz"] | null, - id?:ValueTypes["uuid"] | null, - metadata?:ValueTypes["jsonb"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - text?:string | null, - type?:string | null, - uniqueRef?:string | null, - unitId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null, - value?:ValueTypes["float8"] | null + connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + ensuedAt?: ValueTypes["timestamptz"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + text?: string | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + unitId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null, + value?: ValueTypes["float8"] | undefined | null }; /** aggregate max on columns */ ["metric_max_fields"]: AliasType<{ @@ -3185,17 +3185,17 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "metric" */ ["metric_max_order_by"]: { - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - ensuedAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - text?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null, - value?:ValueTypes["order_by"] | null + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + ensuedAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + text?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null, + value?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["metric_min_fields"]: AliasType<{ @@ -3214,17 +3214,17 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "metric" */ ["metric_min_order_by"]: { - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - ensuedAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - text?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null, - value?:ValueTypes["order_by"] | null + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + ensuedAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + text?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null, + value?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "metric" */ ["metric_mutation_response"]: AliasType<{ @@ -3236,51 +3236,51 @@ end). throws an error if top level container is not an array */ }>; /** on conflict condition type for table "metric" */ ["metric_on_conflict"]: { - constraint:ValueTypes["metric_constraint"], - update_columns:ValueTypes["metric_update_column"][], - where?:ValueTypes["metric_bool_exp"] | null + constraint: ValueTypes["metric_constraint"], + update_columns: (ValueTypes["metric_update_column"])[] | undefined | null, + where?: ValueTypes["metric_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "metric". */ ["metric_order_by"]: { - connection?:ValueTypes["connection_order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - ensuedAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - metadata?:ValueTypes["order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - text?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null, - value?:ValueTypes["order_by"] | null + connection?: ValueTypes["connection_order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + ensuedAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + metadata?: ValueTypes["order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + text?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null, + value?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: metric */ ["metric_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["metric_prepend_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "metric" */ ["metric_select_column"]:metric_select_column; /** input type for updating data in table "metric" */ ["metric_set_input"]: { - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - ensuedAt?:ValueTypes["timestamptz"] | null, - id?:ValueTypes["uuid"] | null, - metadata?:ValueTypes["jsonb"] | null, - teamId?:ValueTypes["uuid"] | null, - text?:string | null, - type?:string | null, - uniqueRef?:string | null, - unitId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null, - value?:ValueTypes["float8"] | null + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + ensuedAt?: ValueTypes["timestamptz"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + text?: string | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + unitId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null, + value?: ValueTypes["float8"] | undefined | null }; /** aggregate stddev on columns */ ["metric_stddev_fields"]: AliasType<{ @@ -3289,7 +3289,7 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev() on columns of table "metric" */ ["metric_stddev_order_by"]: { - value?:ValueTypes["order_by"] | null + value?: ValueTypes["order_by"] | undefined | null }; /** aggregate stddev_pop on columns */ ["metric_stddev_pop_fields"]: AliasType<{ @@ -3298,7 +3298,7 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev_pop() on columns of table "metric" */ ["metric_stddev_pop_order_by"]: { - value?:ValueTypes["order_by"] | null + value?: ValueTypes["order_by"] | undefined | null }; /** aggregate stddev_samp on columns */ ["metric_stddev_samp_fields"]: AliasType<{ @@ -3307,7 +3307,7 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev_samp() on columns of table "metric" */ ["metric_stddev_samp_order_by"]: { - value?:ValueTypes["order_by"] | null + value?: ValueTypes["order_by"] | undefined | null }; /** aggregate sum on columns */ ["metric_sum_fields"]: AliasType<{ @@ -3316,7 +3316,7 @@ end). throws an error if top level container is not an array */ }>; /** order by sum() on columns of table "metric" */ ["metric_sum_order_by"]: { - value?:ValueTypes["order_by"] | null + value?: ValueTypes["order_by"] | undefined | null }; /** update columns of table "metric" */ ["metric_update_column"]:metric_update_column; @@ -3327,7 +3327,7 @@ end). throws an error if top level container is not an array */ }>; /** order by var_pop() on columns of table "metric" */ ["metric_var_pop_order_by"]: { - value?:ValueTypes["order_by"] | null + value?: ValueTypes["order_by"] | undefined | null }; /** aggregate var_samp on columns */ ["metric_var_samp_fields"]: AliasType<{ @@ -3336,7 +3336,7 @@ end). throws an error if top level container is not an array */ }>; /** order by var_samp() on columns of table "metric" */ ["metric_var_samp_order_by"]: { - value?:ValueTypes["order_by"] | null + value?: ValueTypes["order_by"] | undefined | null }; /** aggregate variance on columns */ ["metric_variance_fields"]: AliasType<{ @@ -3345,554 +3345,554 @@ end). throws an error if top level container is not an array */ }>; /** order by variance() on columns of table "metric" */ ["metric_variance_order_by"]: { - value?:ValueTypes["order_by"] | null + value?: ValueTypes["order_by"] | undefined | null }; /** mutation root */ ["mutation_root"]: AliasType<{ -deleteBooking?: [{ id:ValueTypes["uuid"]},ValueTypes["booking"]], -deleteBookingStatus?: [{ name:string},ValueTypes["bookingStatus"]], +deleteBooking?: [{ id: ValueTypes["uuid"]},ValueTypes["booking"]], +deleteBookingStatus?: [{ name: string},ValueTypes["bookingStatus"]], deleteBookingStatuses?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["bookingStatus_bool_exp"]},ValueTypes["bookingStatus_mutation_response"]], + where: ValueTypes["bookingStatus_bool_exp"]},ValueTypes["bookingStatus_mutation_response"]], deleteBookings?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["booking_bool_exp"]},ValueTypes["booking_mutation_response"]], -deleteClassification?: [{ name:string},ValueTypes["classification"]], + where: ValueTypes["booking_bool_exp"]},ValueTypes["booking_mutation_response"]], +deleteClassification?: [{ name: string},ValueTypes["classification"]], deleteClassifications?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["classification_bool_exp"]},ValueTypes["classification_mutation_response"]], -deleteConnection?: [{ id:ValueTypes["uuid"]},ValueTypes["connection"]], + where: ValueTypes["classification_bool_exp"]},ValueTypes["classification_mutation_response"]], +deleteConnection?: [{ id: ValueTypes["uuid"]},ValueTypes["connection"]], deleteConnections?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["connection_bool_exp"]},ValueTypes["connection_mutation_response"]], + where: ValueTypes["connection_bool_exp"]},ValueTypes["connection_mutation_response"]], deleteCurrencies?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["currency_bool_exp"]},ValueTypes["currency_mutation_response"]], -deleteCurrency?: [{ name:string},ValueTypes["currency"]], + where: ValueTypes["currency_bool_exp"]},ValueTypes["currency_mutation_response"]], +deleteCurrency?: [{ name: string},ValueTypes["currency"]], deleteEntities?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["entity_bool_exp"]},ValueTypes["entity_mutation_response"]], -deleteEntity?: [{ id:ValueTypes["uuid"]},ValueTypes["entity"]], -deleteEntityStatus?: [{ name:string},ValueTypes["entityStatus"]], + where: ValueTypes["entity_bool_exp"]},ValueTypes["entity_mutation_response"]], +deleteEntity?: [{ id: ValueTypes["uuid"]},ValueTypes["entity"]], +deleteEntityStatus?: [{ name: string},ValueTypes["entityStatus"]], deleteEntityStatuses?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["entityStatus_bool_exp"]},ValueTypes["entityStatus_mutation_response"]], -deleteIntegration?: [{ id:ValueTypes["uuid"]},ValueTypes["integration"]], -deleteIntegrationType?: [{ name:string},ValueTypes["integrationType"]], + where: ValueTypes["entityStatus_bool_exp"]},ValueTypes["entityStatus_mutation_response"]], +deleteIntegration?: [{ id: ValueTypes["uuid"]},ValueTypes["integration"]], +deleteIntegrationType?: [{ name: string},ValueTypes["integrationType"]], deleteIntegrationTypes?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["integrationType_bool_exp"]},ValueTypes["integrationType_mutation_response"]], + where: ValueTypes["integrationType_bool_exp"]},ValueTypes["integrationType_mutation_response"]], deleteIntegrations?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["integration_bool_exp"]},ValueTypes["integration_mutation_response"]], -deleteIssue?: [{ id:ValueTypes["uuid"]},ValueTypes["issue"]], + where: ValueTypes["integration_bool_exp"]},ValueTypes["integration_mutation_response"]], +deleteIssue?: [{ id: ValueTypes["uuid"]},ValueTypes["issue"]], deleteIssues?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["issue_bool_exp"]},ValueTypes["issue_mutation_response"]], -deleteJob?: [{ id:ValueTypes["uuid"]},ValueTypes["job"]], -deleteJobMethod?: [{ name:string},ValueTypes["jobMethod"]], + where: ValueTypes["issue_bool_exp"]},ValueTypes["issue_mutation_response"]], +deleteJob?: [{ id: ValueTypes["uuid"]},ValueTypes["job"]], +deleteJobMethod?: [{ name: string},ValueTypes["jobMethod"]], deleteJobMethods?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["jobMethod_bool_exp"]},ValueTypes["jobMethod_mutation_response"]], -deleteJobStatus?: [{ name:string},ValueTypes["jobStatus"]], + where: ValueTypes["jobMethod_bool_exp"]},ValueTypes["jobMethod_mutation_response"]], +deleteJobStatus?: [{ name: string},ValueTypes["jobStatus"]], deleteJobStatuses?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["jobStatus_bool_exp"]},ValueTypes["jobStatus_mutation_response"]], + where: ValueTypes["jobStatus_bool_exp"]},ValueTypes["jobStatus_mutation_response"]], deleteJobs?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["job_bool_exp"]},ValueTypes["job_mutation_response"]], -deleteLine?: [{ id:ValueTypes["uuid"]},ValueTypes["line"]], + where: ValueTypes["job_bool_exp"]},ValueTypes["job_mutation_response"]], +deleteLine?: [{ id: ValueTypes["uuid"]},ValueTypes["line"]], deleteLines?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["line_bool_exp"]},ValueTypes["line_mutation_response"]], -deleteMetric?: [{ id:ValueTypes["uuid"]},ValueTypes["metric"]], + where: ValueTypes["line_bool_exp"]},ValueTypes["line_mutation_response"]], +deleteMetric?: [{ id: ValueTypes["uuid"]},ValueTypes["metric"]], deleteMetrics?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["metric_bool_exp"]},ValueTypes["metric_mutation_response"]], -deleteNormalizedType?: [{ name:string},ValueTypes["normalizedType"]], + where: ValueTypes["metric_bool_exp"]},ValueTypes["metric_mutation_response"]], +deleteNormalizedType?: [{ name: string},ValueTypes["normalizedType"]], deleteNormalizedTypes?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["normalizedType_bool_exp"]},ValueTypes["normalizedType_mutation_response"]], -deletePayment?: [{ id:ValueTypes["uuid"]},ValueTypes["payment"]], -deletePaymentStatus?: [{ name:string},ValueTypes["paymentStatus"]], + where: ValueTypes["normalizedType_bool_exp"]},ValueTypes["normalizedType_mutation_response"]], +deletePayment?: [{ id: ValueTypes["uuid"]},ValueTypes["payment"]], +deletePaymentStatus?: [{ name: string},ValueTypes["paymentStatus"]], deletePaymentStatuses?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["paymentStatus_bool_exp"]},ValueTypes["paymentStatus_mutation_response"]], -deletePaymentType?: [{ name:string},ValueTypes["paymentType"]], + where: ValueTypes["paymentStatus_bool_exp"]},ValueTypes["paymentStatus_mutation_response"]], +deletePaymentType?: [{ name: string},ValueTypes["paymentType"]], deletePaymentTypes?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["paymentType_bool_exp"]},ValueTypes["paymentType_mutation_response"]], + where: ValueTypes["paymentType_bool_exp"]},ValueTypes["paymentType_mutation_response"]], deletePayments?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["payment_bool_exp"]},ValueTypes["payment_mutation_response"]], -deleteSubclassification?: [{ name:string},ValueTypes["subclassification"]], + where: ValueTypes["payment_bool_exp"]},ValueTypes["payment_mutation_response"]], +deleteSubclassification?: [{ name: string},ValueTypes["subclassification"]], deleteSubclassifications?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["subclassification_bool_exp"]},ValueTypes["subclassification_mutation_response"]], -deleteTag?: [{ id:ValueTypes["uuid"]},ValueTypes["tag"]], + where: ValueTypes["subclassification_bool_exp"]},ValueTypes["subclassification_mutation_response"]], +deleteTag?: [{ id: ValueTypes["uuid"]},ValueTypes["tag"]], deleteTags?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["tag_bool_exp"]},ValueTypes["tag_mutation_response"]], -deleteTeam?: [{ id:ValueTypes["uuid"]},ValueTypes["team"]], -deleteTeamUser?: [{ id:ValueTypes["uuid"]},ValueTypes["teamUser"]], + where: ValueTypes["tag_bool_exp"]},ValueTypes["tag_mutation_response"]], +deleteTeam?: [{ id: ValueTypes["uuid"]},ValueTypes["team"]], +deleteTeamUser?: [{ id: ValueTypes["uuid"]},ValueTypes["teamUser"]], deleteTeamUsers?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["teamUser_bool_exp"]},ValueTypes["teamUser_mutation_response"]], + where: ValueTypes["teamUser_bool_exp"]},ValueTypes["teamUser_mutation_response"]], deleteTeams?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["team_bool_exp"]},ValueTypes["team_mutation_response"]], -deleteUnit?: [{ id:ValueTypes["uuid"]},ValueTypes["unit"]], + where: ValueTypes["team_bool_exp"]},ValueTypes["team_mutation_response"]], +deleteUnit?: [{ id: ValueTypes["uuid"]},ValueTypes["unit"]], deleteUnits?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["unit_bool_exp"]},ValueTypes["unit_mutation_response"]], -deleteUser?: [{ id:ValueTypes["uuid"]},ValueTypes["user"]], -deleteUserStatus?: [{ name:string},ValueTypes["userStatus"]], + where: ValueTypes["unit_bool_exp"]},ValueTypes["unit_mutation_response"]], +deleteUser?: [{ id: ValueTypes["uuid"]},ValueTypes["user"]], +deleteUserStatus?: [{ name: string},ValueTypes["userStatus"]], deleteUserStatuses?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["userStatus_bool_exp"]},ValueTypes["userStatus_mutation_response"]], + where: ValueTypes["userStatus_bool_exp"]},ValueTypes["userStatus_mutation_response"]], deleteUsers?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["user_bool_exp"]},ValueTypes["user_mutation_response"]], -deleteWebhook?: [{ id:ValueTypes["uuid"]},ValueTypes["webhook"]], + where: ValueTypes["user_bool_exp"]},ValueTypes["user_mutation_response"]], +deleteWebhook?: [{ id: ValueTypes["uuid"]},ValueTypes["webhook"]], deleteWebhooks?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["webhook_bool_exp"]},ValueTypes["webhook_mutation_response"]], + where: ValueTypes["webhook_bool_exp"]},ValueTypes["webhook_mutation_response"]], delete_booking_channel?: [{ /** filter the rows which have to be deleted */ - where:ValueTypes["booking_channel_bool_exp"]},ValueTypes["booking_channel_mutation_response"]], -delete_booking_channel_by_pk?: [{ name:string},ValueTypes["booking_channel"]], + where: ValueTypes["booking_channel_bool_exp"]},ValueTypes["booking_channel_mutation_response"]], +delete_booking_channel_by_pk?: [{ name: string},ValueTypes["booking_channel"]], insertBooking?: [{ /** the row to be inserted */ - object:ValueTypes["booking_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["booking_on_conflict"] | null},ValueTypes["booking"]], + object: ValueTypes["booking_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["booking_on_conflict"] | undefined | null},ValueTypes["booking"]], insertBookingStatus?: [{ /** the row to be inserted */ - object:ValueTypes["bookingStatus_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["bookingStatus_on_conflict"] | null},ValueTypes["bookingStatus"]], + object: ValueTypes["bookingStatus_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["bookingStatus_on_conflict"] | undefined | null},ValueTypes["bookingStatus"]], insertBookingStatuses?: [{ /** the rows to be inserted */ - objects:ValueTypes["bookingStatus_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["bookingStatus_on_conflict"] | null},ValueTypes["bookingStatus_mutation_response"]], + objects: (ValueTypes["bookingStatus_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["bookingStatus_on_conflict"] | undefined | null},ValueTypes["bookingStatus_mutation_response"]], insertBookings?: [{ /** the rows to be inserted */ - objects:ValueTypes["booking_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["booking_on_conflict"] | null},ValueTypes["booking_mutation_response"]], + objects: (ValueTypes["booking_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["booking_on_conflict"] | undefined | null},ValueTypes["booking_mutation_response"]], insertClassification?: [{ /** the row to be inserted */ - object:ValueTypes["classification_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["classification_on_conflict"] | null},ValueTypes["classification"]], + object: ValueTypes["classification_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["classification_on_conflict"] | undefined | null},ValueTypes["classification"]], insertClassifications?: [{ /** the rows to be inserted */ - objects:ValueTypes["classification_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["classification_on_conflict"] | null},ValueTypes["classification_mutation_response"]], + objects: (ValueTypes["classification_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["classification_on_conflict"] | undefined | null},ValueTypes["classification_mutation_response"]], insertConnection?: [{ /** the row to be inserted */ - object:ValueTypes["connection_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["connection_on_conflict"] | null},ValueTypes["connection"]], + object: ValueTypes["connection_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["connection_on_conflict"] | undefined | null},ValueTypes["connection"]], insertConnections?: [{ /** the rows to be inserted */ - objects:ValueTypes["connection_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["connection_on_conflict"] | null},ValueTypes["connection_mutation_response"]], + objects: (ValueTypes["connection_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["connection_on_conflict"] | undefined | null},ValueTypes["connection_mutation_response"]], insertCurrencies?: [{ /** the rows to be inserted */ - objects:ValueTypes["currency_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["currency_on_conflict"] | null},ValueTypes["currency_mutation_response"]], + objects: (ValueTypes["currency_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["currency_on_conflict"] | undefined | null},ValueTypes["currency_mutation_response"]], insertCurrency?: [{ /** the row to be inserted */ - object:ValueTypes["currency_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["currency_on_conflict"] | null},ValueTypes["currency"]], + object: ValueTypes["currency_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["currency_on_conflict"] | undefined | null},ValueTypes["currency"]], insertEntities?: [{ /** the rows to be inserted */ - objects:ValueTypes["entity_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["entity_on_conflict"] | null},ValueTypes["entity_mutation_response"]], + objects: (ValueTypes["entity_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["entity_on_conflict"] | undefined | null},ValueTypes["entity_mutation_response"]], insertEntity?: [{ /** the row to be inserted */ - object:ValueTypes["entity_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["entity_on_conflict"] | null},ValueTypes["entity"]], + object: ValueTypes["entity_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["entity_on_conflict"] | undefined | null},ValueTypes["entity"]], insertEntityStatus?: [{ /** the row to be inserted */ - object:ValueTypes["entityStatus_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["entityStatus_on_conflict"] | null},ValueTypes["entityStatus"]], + object: ValueTypes["entityStatus_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["entityStatus_on_conflict"] | undefined | null},ValueTypes["entityStatus"]], insertEntityStatuses?: [{ /** the rows to be inserted */ - objects:ValueTypes["entityStatus_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["entityStatus_on_conflict"] | null},ValueTypes["entityStatus_mutation_response"]], + objects: (ValueTypes["entityStatus_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["entityStatus_on_conflict"] | undefined | null},ValueTypes["entityStatus_mutation_response"]], insertIntegration?: [{ /** the row to be inserted */ - object:ValueTypes["integration_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["integration_on_conflict"] | null},ValueTypes["integration"]], + object: ValueTypes["integration_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["integration_on_conflict"] | undefined | null},ValueTypes["integration"]], insertIntegrationType?: [{ /** the row to be inserted */ - object:ValueTypes["integrationType_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["integrationType_on_conflict"] | null},ValueTypes["integrationType"]], + object: ValueTypes["integrationType_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["integrationType_on_conflict"] | undefined | null},ValueTypes["integrationType"]], insertIntegrationTypes?: [{ /** the rows to be inserted */ - objects:ValueTypes["integrationType_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["integrationType_on_conflict"] | null},ValueTypes["integrationType_mutation_response"]], + objects: (ValueTypes["integrationType_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["integrationType_on_conflict"] | undefined | null},ValueTypes["integrationType_mutation_response"]], insertIntegrations?: [{ /** the rows to be inserted */ - objects:ValueTypes["integration_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["integration_on_conflict"] | null},ValueTypes["integration_mutation_response"]], + objects: (ValueTypes["integration_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["integration_on_conflict"] | undefined | null},ValueTypes["integration_mutation_response"]], insertIssue?: [{ /** the row to be inserted */ - object:ValueTypes["issue_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["issue_on_conflict"] | null},ValueTypes["issue"]], + object: ValueTypes["issue_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["issue_on_conflict"] | undefined | null},ValueTypes["issue"]], insertIssues?: [{ /** the rows to be inserted */ - objects:ValueTypes["issue_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["issue_on_conflict"] | null},ValueTypes["issue_mutation_response"]], + objects: (ValueTypes["issue_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["issue_on_conflict"] | undefined | null},ValueTypes["issue_mutation_response"]], insertJob?: [{ /** the row to be inserted */ - object:ValueTypes["job_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["job_on_conflict"] | null},ValueTypes["job"]], + object: ValueTypes["job_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["job_on_conflict"] | undefined | null},ValueTypes["job"]], insertJobMethod?: [{ /** the row to be inserted */ - object:ValueTypes["jobMethod_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["jobMethod_on_conflict"] | null},ValueTypes["jobMethod"]], + object: ValueTypes["jobMethod_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["jobMethod_on_conflict"] | undefined | null},ValueTypes["jobMethod"]], insertJobMethods?: [{ /** the rows to be inserted */ - objects:ValueTypes["jobMethod_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["jobMethod_on_conflict"] | null},ValueTypes["jobMethod_mutation_response"]], + objects: (ValueTypes["jobMethod_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["jobMethod_on_conflict"] | undefined | null},ValueTypes["jobMethod_mutation_response"]], insertJobStatus?: [{ /** the row to be inserted */ - object:ValueTypes["jobStatus_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["jobStatus_on_conflict"] | null},ValueTypes["jobStatus"]], + object: ValueTypes["jobStatus_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["jobStatus_on_conflict"] | undefined | null},ValueTypes["jobStatus"]], insertJobStatuses?: [{ /** the rows to be inserted */ - objects:ValueTypes["jobStatus_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["jobStatus_on_conflict"] | null},ValueTypes["jobStatus_mutation_response"]], + objects: (ValueTypes["jobStatus_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["jobStatus_on_conflict"] | undefined | null},ValueTypes["jobStatus_mutation_response"]], insertJobs?: [{ /** the rows to be inserted */ - objects:ValueTypes["job_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["job_on_conflict"] | null},ValueTypes["job_mutation_response"]], + objects: (ValueTypes["job_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["job_on_conflict"] | undefined | null},ValueTypes["job_mutation_response"]], insertLine?: [{ /** the row to be inserted */ - object:ValueTypes["line_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["line_on_conflict"] | null},ValueTypes["line"]], + object: ValueTypes["line_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["line_on_conflict"] | undefined | null},ValueTypes["line"]], insertLines?: [{ /** the rows to be inserted */ - objects:ValueTypes["line_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["line_on_conflict"] | null},ValueTypes["line_mutation_response"]], + objects: (ValueTypes["line_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["line_on_conflict"] | undefined | null},ValueTypes["line_mutation_response"]], insertMetric?: [{ /** the row to be inserted */ - object:ValueTypes["metric_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["metric_on_conflict"] | null},ValueTypes["metric"]], + object: ValueTypes["metric_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["metric_on_conflict"] | undefined | null},ValueTypes["metric"]], insertMetrics?: [{ /** the rows to be inserted */ - objects:ValueTypes["metric_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["metric_on_conflict"] | null},ValueTypes["metric_mutation_response"]], + objects: (ValueTypes["metric_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["metric_on_conflict"] | undefined | null},ValueTypes["metric_mutation_response"]], insertNormalizedType?: [{ /** the row to be inserted */ - object:ValueTypes["normalizedType_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["normalizedType_on_conflict"] | null},ValueTypes["normalizedType"]], + object: ValueTypes["normalizedType_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["normalizedType_on_conflict"] | undefined | null},ValueTypes["normalizedType"]], insertNormalizedTypes?: [{ /** the rows to be inserted */ - objects:ValueTypes["normalizedType_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["normalizedType_on_conflict"] | null},ValueTypes["normalizedType_mutation_response"]], + objects: (ValueTypes["normalizedType_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["normalizedType_on_conflict"] | undefined | null},ValueTypes["normalizedType_mutation_response"]], insertPayment?: [{ /** the row to be inserted */ - object:ValueTypes["payment_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["payment_on_conflict"] | null},ValueTypes["payment"]], + object: ValueTypes["payment_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["payment_on_conflict"] | undefined | null},ValueTypes["payment"]], insertPaymentStatus?: [{ /** the row to be inserted */ - object:ValueTypes["paymentStatus_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["paymentStatus_on_conflict"] | null},ValueTypes["paymentStatus"]], + object: ValueTypes["paymentStatus_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["paymentStatus_on_conflict"] | undefined | null},ValueTypes["paymentStatus"]], insertPaymentStatuses?: [{ /** the rows to be inserted */ - objects:ValueTypes["paymentStatus_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["paymentStatus_on_conflict"] | null},ValueTypes["paymentStatus_mutation_response"]], + objects: (ValueTypes["paymentStatus_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["paymentStatus_on_conflict"] | undefined | null},ValueTypes["paymentStatus_mutation_response"]], insertPaymentType?: [{ /** the row to be inserted */ - object:ValueTypes["paymentType_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["paymentType_on_conflict"] | null},ValueTypes["paymentType"]], + object: ValueTypes["paymentType_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["paymentType_on_conflict"] | undefined | null},ValueTypes["paymentType"]], insertPaymentTypes?: [{ /** the rows to be inserted */ - objects:ValueTypes["paymentType_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["paymentType_on_conflict"] | null},ValueTypes["paymentType_mutation_response"]], + objects: (ValueTypes["paymentType_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["paymentType_on_conflict"] | undefined | null},ValueTypes["paymentType_mutation_response"]], insertPayments?: [{ /** the rows to be inserted */ - objects:ValueTypes["payment_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["payment_on_conflict"] | null},ValueTypes["payment_mutation_response"]], + objects: (ValueTypes["payment_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["payment_on_conflict"] | undefined | null},ValueTypes["payment_mutation_response"]], insertSubclassification?: [{ /** the row to be inserted */ - object:ValueTypes["subclassification_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["subclassification_on_conflict"] | null},ValueTypes["subclassification"]], + object: ValueTypes["subclassification_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["subclassification_on_conflict"] | undefined | null},ValueTypes["subclassification"]], insertSubclassifications?: [{ /** the rows to be inserted */ - objects:ValueTypes["subclassification_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["subclassification_on_conflict"] | null},ValueTypes["subclassification_mutation_response"]], + objects: (ValueTypes["subclassification_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["subclassification_on_conflict"] | undefined | null},ValueTypes["subclassification_mutation_response"]], insertTag?: [{ /** the row to be inserted */ - object:ValueTypes["tag_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["tag_on_conflict"] | null},ValueTypes["tag"]], + object: ValueTypes["tag_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["tag_on_conflict"] | undefined | null},ValueTypes["tag"]], insertTags?: [{ /** the rows to be inserted */ - objects:ValueTypes["tag_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["tag_on_conflict"] | null},ValueTypes["tag_mutation_response"]], + objects: (ValueTypes["tag_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["tag_on_conflict"] | undefined | null},ValueTypes["tag_mutation_response"]], insertTeam?: [{ /** the row to be inserted */ - object:ValueTypes["team_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["team_on_conflict"] | null},ValueTypes["team"]], + object: ValueTypes["team_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["team_on_conflict"] | undefined | null},ValueTypes["team"]], insertTeamUser?: [{ /** the row to be inserted */ - object:ValueTypes["teamUser_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["teamUser_on_conflict"] | null},ValueTypes["teamUser"]], + object: ValueTypes["teamUser_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["teamUser_on_conflict"] | undefined | null},ValueTypes["teamUser"]], insertTeamUsers?: [{ /** the rows to be inserted */ - objects:ValueTypes["teamUser_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["teamUser_on_conflict"] | null},ValueTypes["teamUser_mutation_response"]], + objects: (ValueTypes["teamUser_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["teamUser_on_conflict"] | undefined | null},ValueTypes["teamUser_mutation_response"]], insertTeams?: [{ /** the rows to be inserted */ - objects:ValueTypes["team_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["team_on_conflict"] | null},ValueTypes["team_mutation_response"]], + objects: (ValueTypes["team_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["team_on_conflict"] | undefined | null},ValueTypes["team_mutation_response"]], insertUnit?: [{ /** the row to be inserted */ - object:ValueTypes["unit_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["unit_on_conflict"] | null},ValueTypes["unit"]], + object: ValueTypes["unit_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["unit_on_conflict"] | undefined | null},ValueTypes["unit"]], insertUnits?: [{ /** the rows to be inserted */ - objects:ValueTypes["unit_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["unit_on_conflict"] | null},ValueTypes["unit_mutation_response"]], + objects: (ValueTypes["unit_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["unit_on_conflict"] | undefined | null},ValueTypes["unit_mutation_response"]], insertUser?: [{ /** the row to be inserted */ - object:ValueTypes["user_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["user_on_conflict"] | null},ValueTypes["user"]], + object: ValueTypes["user_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["user_on_conflict"] | undefined | null},ValueTypes["user"]], insertUserStatus?: [{ /** the row to be inserted */ - object:ValueTypes["userStatus_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["userStatus_on_conflict"] | null},ValueTypes["userStatus"]], + object: ValueTypes["userStatus_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["userStatus_on_conflict"] | undefined | null},ValueTypes["userStatus"]], insertUserStatuses?: [{ /** the rows to be inserted */ - objects:ValueTypes["userStatus_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["userStatus_on_conflict"] | null},ValueTypes["userStatus_mutation_response"]], + objects: (ValueTypes["userStatus_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["userStatus_on_conflict"] | undefined | null},ValueTypes["userStatus_mutation_response"]], insertUsers?: [{ /** the rows to be inserted */ - objects:ValueTypes["user_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["user_on_conflict"] | null},ValueTypes["user_mutation_response"]], + objects: (ValueTypes["user_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["user_on_conflict"] | undefined | null},ValueTypes["user_mutation_response"]], insertWebhook?: [{ /** the row to be inserted */ - object:ValueTypes["webhook_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["webhook_on_conflict"] | null},ValueTypes["webhook"]], + object: ValueTypes["webhook_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["webhook_on_conflict"] | undefined | null},ValueTypes["webhook"]], insertWebhooks?: [{ /** the rows to be inserted */ - objects:ValueTypes["webhook_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["webhook_on_conflict"] | null},ValueTypes["webhook_mutation_response"]], + objects: (ValueTypes["webhook_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["webhook_on_conflict"] | undefined | null},ValueTypes["webhook_mutation_response"]], insert_booking_channel?: [{ /** the rows to be inserted */ - objects:ValueTypes["booking_channel_insert_input"][], /** on conflict condition */ - on_conflict?:ValueTypes["booking_channel_on_conflict"] | null},ValueTypes["booking_channel_mutation_response"]], + objects: (ValueTypes["booking_channel_insert_input"])[] | undefined | null, /** on conflict condition */ + on_conflict?: ValueTypes["booking_channel_on_conflict"] | undefined | null},ValueTypes["booking_channel_mutation_response"]], insert_booking_channel_one?: [{ /** the row to be inserted */ - object:ValueTypes["booking_channel_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["booking_channel_on_conflict"] | null},ValueTypes["booking_channel"]], + object: ValueTypes["booking_channel_insert_input"], /** on conflict condition */ + on_conflict?: ValueTypes["booking_channel_on_conflict"] | undefined | null},ValueTypes["booking_channel"]], updateBooking?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["booking_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["booking_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["booking_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["booking_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["booking_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["booking_delete_key_input"] | null, /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["booking_inc_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["booking_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["booking_set_input"] | null, pk_columns:ValueTypes["booking_pk_columns_input"]},ValueTypes["booking"]], + _delete_elem?: ValueTypes["booking_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["booking_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ + _inc?: ValueTypes["booking_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["booking_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["booking_set_input"] | undefined | null, pk_columns: ValueTypes["booking_pk_columns_input"]},ValueTypes["booking"]], updateBookingStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["bookingStatus_set_input"] | null, pk_columns:ValueTypes["bookingStatus_pk_columns_input"]},ValueTypes["bookingStatus"]], + _set?: ValueTypes["bookingStatus_set_input"] | undefined | null, pk_columns: ValueTypes["bookingStatus_pk_columns_input"]},ValueTypes["bookingStatus"]], updateBookingStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["bookingStatus_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["bookingStatus_bool_exp"]},ValueTypes["bookingStatus_mutation_response"]], + _set?: ValueTypes["bookingStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["bookingStatus_bool_exp"]},ValueTypes["bookingStatus_mutation_response"]], updateBookings?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["booking_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["booking_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["booking_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["booking_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["booking_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["booking_delete_key_input"] | null, /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["booking_inc_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["booking_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["booking_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["booking_bool_exp"]},ValueTypes["booking_mutation_response"]], + _delete_elem?: ValueTypes["booking_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["booking_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ + _inc?: ValueTypes["booking_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["booking_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["booking_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["booking_bool_exp"]},ValueTypes["booking_mutation_response"]], updateClassification?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["classification_set_input"] | null, pk_columns:ValueTypes["classification_pk_columns_input"]},ValueTypes["classification"]], + _set?: ValueTypes["classification_set_input"] | undefined | null, pk_columns: ValueTypes["classification_pk_columns_input"]},ValueTypes["classification"]], updateClassifications?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["classification_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["classification_bool_exp"]},ValueTypes["classification_mutation_response"]], + _set?: ValueTypes["classification_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["classification_bool_exp"]},ValueTypes["classification_mutation_response"]], updateConnection?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["connection_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["connection_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["connection_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["connection_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["connection_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["connection_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["connection_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["connection_set_input"] | null, pk_columns:ValueTypes["connection_pk_columns_input"]},ValueTypes["connection"]], + _delete_elem?: ValueTypes["connection_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["connection_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["connection_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["connection_set_input"] | undefined | null, pk_columns: ValueTypes["connection_pk_columns_input"]},ValueTypes["connection"]], updateConnections?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["connection_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["connection_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["connection_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["connection_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["connection_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["connection_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["connection_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["connection_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["connection_bool_exp"]},ValueTypes["connection_mutation_response"]], + _delete_elem?: ValueTypes["connection_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["connection_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["connection_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["connection_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["connection_bool_exp"]},ValueTypes["connection_mutation_response"]], updateCurrencies?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["currency_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["currency_bool_exp"]},ValueTypes["currency_mutation_response"]], + _set?: ValueTypes["currency_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["currency_bool_exp"]},ValueTypes["currency_mutation_response"]], updateCurrency?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["currency_set_input"] | null, pk_columns:ValueTypes["currency_pk_columns_input"]},ValueTypes["currency"]], + _set?: ValueTypes["currency_set_input"] | undefined | null, pk_columns: ValueTypes["currency_pk_columns_input"]},ValueTypes["currency"]], updateEntities?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["entity_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["entity_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["entity_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["entity_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["entity_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["entity_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["entity_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["entity_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["entity_bool_exp"]},ValueTypes["entity_mutation_response"]], + _delete_elem?: ValueTypes["entity_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["entity_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["entity_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["entity_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["entity_bool_exp"]},ValueTypes["entity_mutation_response"]], updateEntity?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["entity_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["entity_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["entity_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["entity_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["entity_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["entity_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["entity_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["entity_set_input"] | null, pk_columns:ValueTypes["entity_pk_columns_input"]},ValueTypes["entity"]], + _delete_elem?: ValueTypes["entity_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["entity_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["entity_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["entity_set_input"] | undefined | null, pk_columns: ValueTypes["entity_pk_columns_input"]},ValueTypes["entity"]], updateEntityStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["entityStatus_set_input"] | null, pk_columns:ValueTypes["entityStatus_pk_columns_input"]},ValueTypes["entityStatus"]], + _set?: ValueTypes["entityStatus_set_input"] | undefined | null, pk_columns: ValueTypes["entityStatus_pk_columns_input"]},ValueTypes["entityStatus"]], updateEntityStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["entityStatus_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["entityStatus_bool_exp"]},ValueTypes["entityStatus_mutation_response"]], + _set?: ValueTypes["entityStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["entityStatus_bool_exp"]},ValueTypes["entityStatus_mutation_response"]], updateIntegration?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["integration_set_input"] | null, pk_columns:ValueTypes["integration_pk_columns_input"]},ValueTypes["integration"]], + _set?: ValueTypes["integration_set_input"] | undefined | null, pk_columns: ValueTypes["integration_pk_columns_input"]},ValueTypes["integration"]], updateIntegrationType?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["integrationType_set_input"] | null, pk_columns:ValueTypes["integrationType_pk_columns_input"]},ValueTypes["integrationType"]], + _set?: ValueTypes["integrationType_set_input"] | undefined | null, pk_columns: ValueTypes["integrationType_pk_columns_input"]},ValueTypes["integrationType"]], updateIntegrationTypes?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["integrationType_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["integrationType_bool_exp"]},ValueTypes["integrationType_mutation_response"]], + _set?: ValueTypes["integrationType_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["integrationType_bool_exp"]},ValueTypes["integrationType_mutation_response"]], updateIntegrations?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["integration_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["integration_bool_exp"]},ValueTypes["integration_mutation_response"]], + _set?: ValueTypes["integration_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["integration_bool_exp"]},ValueTypes["integration_mutation_response"]], updateIssue?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["issue_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["issue_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["issue_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["issue_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["issue_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["issue_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["issue_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["issue_set_input"] | null, pk_columns:ValueTypes["issue_pk_columns_input"]},ValueTypes["issue"]], + _delete_elem?: ValueTypes["issue_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["issue_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["issue_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["issue_set_input"] | undefined | null, pk_columns: ValueTypes["issue_pk_columns_input"]},ValueTypes["issue"]], updateIssues?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["issue_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["issue_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["issue_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["issue_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["issue_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["issue_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["issue_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["issue_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["issue_bool_exp"]},ValueTypes["issue_mutation_response"]], + _delete_elem?: ValueTypes["issue_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["issue_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["issue_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["issue_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["issue_bool_exp"]},ValueTypes["issue_mutation_response"]], updateJob?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["job_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["job_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["job_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["job_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["job_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["job_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["job_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["job_set_input"] | null, pk_columns:ValueTypes["job_pk_columns_input"]},ValueTypes["job"]], + _delete_elem?: ValueTypes["job_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["job_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["job_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["job_set_input"] | undefined | null, pk_columns: ValueTypes["job_pk_columns_input"]},ValueTypes["job"]], updateJobMethod?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["jobMethod_set_input"] | null, pk_columns:ValueTypes["jobMethod_pk_columns_input"]},ValueTypes["jobMethod"]], + _set?: ValueTypes["jobMethod_set_input"] | undefined | null, pk_columns: ValueTypes["jobMethod_pk_columns_input"]},ValueTypes["jobMethod"]], updateJobMethods?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["jobMethod_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["jobMethod_bool_exp"]},ValueTypes["jobMethod_mutation_response"]], + _set?: ValueTypes["jobMethod_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["jobMethod_bool_exp"]},ValueTypes["jobMethod_mutation_response"]], updateJobStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["jobStatus_set_input"] | null, pk_columns:ValueTypes["jobStatus_pk_columns_input"]},ValueTypes["jobStatus"]], + _set?: ValueTypes["jobStatus_set_input"] | undefined | null, pk_columns: ValueTypes["jobStatus_pk_columns_input"]},ValueTypes["jobStatus"]], updateJobStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["jobStatus_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["jobStatus_bool_exp"]},ValueTypes["jobStatus_mutation_response"]], + _set?: ValueTypes["jobStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["jobStatus_bool_exp"]},ValueTypes["jobStatus_mutation_response"]], updateJobs?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["job_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["job_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["job_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["job_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["job_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["job_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["job_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["job_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["job_bool_exp"]},ValueTypes["job_mutation_response"]], + _delete_elem?: ValueTypes["job_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["job_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["job_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["job_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["job_bool_exp"]},ValueTypes["job_mutation_response"]], updateLine?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["line_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["line_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["line_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["line_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["line_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["line_delete_key_input"] | null, /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["line_inc_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["line_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["line_set_input"] | null, pk_columns:ValueTypes["line_pk_columns_input"]},ValueTypes["line"]], + _delete_elem?: ValueTypes["line_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["line_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ + _inc?: ValueTypes["line_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["line_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["line_set_input"] | undefined | null, pk_columns: ValueTypes["line_pk_columns_input"]},ValueTypes["line"]], updateLines?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["line_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["line_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["line_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["line_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["line_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["line_delete_key_input"] | null, /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["line_inc_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["line_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["line_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["line_bool_exp"]},ValueTypes["line_mutation_response"]], + _delete_elem?: ValueTypes["line_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["line_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ + _inc?: ValueTypes["line_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["line_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["line_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["line_bool_exp"]},ValueTypes["line_mutation_response"]], updateMetric?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["metric_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["metric_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["metric_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["metric_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["metric_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["metric_delete_key_input"] | null, /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["metric_inc_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["metric_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["metric_set_input"] | null, pk_columns:ValueTypes["metric_pk_columns_input"]},ValueTypes["metric"]], + _delete_elem?: ValueTypes["metric_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["metric_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ + _inc?: ValueTypes["metric_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["metric_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["metric_set_input"] | undefined | null, pk_columns: ValueTypes["metric_pk_columns_input"]},ValueTypes["metric"]], updateMetrics?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["metric_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["metric_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["metric_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["metric_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["metric_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["metric_delete_key_input"] | null, /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["metric_inc_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["metric_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["metric_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["metric_bool_exp"]},ValueTypes["metric_mutation_response"]], + _delete_elem?: ValueTypes["metric_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["metric_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ + _inc?: ValueTypes["metric_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["metric_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["metric_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["metric_bool_exp"]},ValueTypes["metric_mutation_response"]], updateNormalizedType?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["normalizedType_set_input"] | null, pk_columns:ValueTypes["normalizedType_pk_columns_input"]},ValueTypes["normalizedType"]], + _set?: ValueTypes["normalizedType_set_input"] | undefined | null, pk_columns: ValueTypes["normalizedType_pk_columns_input"]},ValueTypes["normalizedType"]], updateNormalizedTypes?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["normalizedType_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["normalizedType_bool_exp"]},ValueTypes["normalizedType_mutation_response"]], + _set?: ValueTypes["normalizedType_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["normalizedType_bool_exp"]},ValueTypes["normalizedType_mutation_response"]], updatePayment?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["payment_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["payment_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["payment_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["payment_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["payment_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["payment_delete_key_input"] | null, /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["payment_inc_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["payment_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["payment_set_input"] | null, pk_columns:ValueTypes["payment_pk_columns_input"]},ValueTypes["payment"]], + _delete_elem?: ValueTypes["payment_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["payment_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ + _inc?: ValueTypes["payment_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["payment_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["payment_set_input"] | undefined | null, pk_columns: ValueTypes["payment_pk_columns_input"]},ValueTypes["payment"]], updatePaymentStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["paymentStatus_set_input"] | null, pk_columns:ValueTypes["paymentStatus_pk_columns_input"]},ValueTypes["paymentStatus"]], + _set?: ValueTypes["paymentStatus_set_input"] | undefined | null, pk_columns: ValueTypes["paymentStatus_pk_columns_input"]},ValueTypes["paymentStatus"]], updatePaymentStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["paymentStatus_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["paymentStatus_bool_exp"]},ValueTypes["paymentStatus_mutation_response"]], + _set?: ValueTypes["paymentStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["paymentStatus_bool_exp"]},ValueTypes["paymentStatus_mutation_response"]], updatePaymentType?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["paymentType_set_input"] | null, pk_columns:ValueTypes["paymentType_pk_columns_input"]},ValueTypes["paymentType"]], + _set?: ValueTypes["paymentType_set_input"] | undefined | null, pk_columns: ValueTypes["paymentType_pk_columns_input"]},ValueTypes["paymentType"]], updatePaymentTypes?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["paymentType_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["paymentType_bool_exp"]},ValueTypes["paymentType_mutation_response"]], + _set?: ValueTypes["paymentType_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["paymentType_bool_exp"]},ValueTypes["paymentType_mutation_response"]], updatePayments?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["payment_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["payment_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["payment_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["payment_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["payment_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["payment_delete_key_input"] | null, /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["payment_inc_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["payment_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["payment_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["payment_bool_exp"]},ValueTypes["payment_mutation_response"]], + _delete_elem?: ValueTypes["payment_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["payment_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ + _inc?: ValueTypes["payment_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["payment_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["payment_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["payment_bool_exp"]},ValueTypes["payment_mutation_response"]], updateSubclassification?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["subclassification_set_input"] | null, pk_columns:ValueTypes["subclassification_pk_columns_input"]},ValueTypes["subclassification"]], + _set?: ValueTypes["subclassification_set_input"] | undefined | null, pk_columns: ValueTypes["subclassification_pk_columns_input"]},ValueTypes["subclassification"]], updateSubclassifications?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["subclassification_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["subclassification_bool_exp"]},ValueTypes["subclassification_mutation_response"]], + _set?: ValueTypes["subclassification_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["subclassification_bool_exp"]},ValueTypes["subclassification_mutation_response"]], updateTag?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["tag_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["tag_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["tag_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["tag_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["tag_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["tag_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["tag_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["tag_set_input"] | null, pk_columns:ValueTypes["tag_pk_columns_input"]},ValueTypes["tag"]], + _delete_elem?: ValueTypes["tag_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["tag_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["tag_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["tag_set_input"] | undefined | null, pk_columns: ValueTypes["tag_pk_columns_input"]},ValueTypes["tag"]], updateTags?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["tag_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["tag_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["tag_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["tag_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["tag_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["tag_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["tag_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["tag_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["tag_bool_exp"]},ValueTypes["tag_mutation_response"]], + _delete_elem?: ValueTypes["tag_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["tag_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["tag_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["tag_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["tag_bool_exp"]},ValueTypes["tag_mutation_response"]], updateTeam?: [{ /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["team_inc_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["team_set_input"] | null, pk_columns:ValueTypes["team_pk_columns_input"]},ValueTypes["team"]], + _inc?: ValueTypes["team_inc_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["team_set_input"] | undefined | null, pk_columns: ValueTypes["team_pk_columns_input"]},ValueTypes["team"]], updateTeamUser?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["teamUser_set_input"] | null, pk_columns:ValueTypes["teamUser_pk_columns_input"]},ValueTypes["teamUser"]], + _set?: ValueTypes["teamUser_set_input"] | undefined | null, pk_columns: ValueTypes["teamUser_pk_columns_input"]},ValueTypes["teamUser"]], updateTeamUsers?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["teamUser_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["teamUser_bool_exp"]},ValueTypes["teamUser_mutation_response"]], + _set?: ValueTypes["teamUser_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["teamUser_bool_exp"]},ValueTypes["teamUser_mutation_response"]], updateTeams?: [{ /** increments the numeric columns with given value of the filtered values */ - _inc?:ValueTypes["team_inc_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["team_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["team_bool_exp"]},ValueTypes["team_mutation_response"]], + _inc?: ValueTypes["team_inc_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["team_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["team_bool_exp"]},ValueTypes["team_mutation_response"]], updateUnit?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["unit_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["unit_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["unit_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["unit_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["unit_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["unit_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["unit_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["unit_set_input"] | null, pk_columns:ValueTypes["unit_pk_columns_input"]},ValueTypes["unit"]], + _delete_elem?: ValueTypes["unit_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["unit_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["unit_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["unit_set_input"] | undefined | null, pk_columns: ValueTypes["unit_pk_columns_input"]},ValueTypes["unit"]], updateUnits?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["unit_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["unit_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["unit_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["unit_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["unit_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["unit_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["unit_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["unit_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["unit_bool_exp"]},ValueTypes["unit_mutation_response"]], + _delete_elem?: ValueTypes["unit_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["unit_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["unit_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["unit_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["unit_bool_exp"]},ValueTypes["unit_mutation_response"]], updateUser?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["user_set_input"] | null, pk_columns:ValueTypes["user_pk_columns_input"]},ValueTypes["user"]], + _set?: ValueTypes["user_set_input"] | undefined | null, pk_columns: ValueTypes["user_pk_columns_input"]},ValueTypes["user"]], updateUserStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["userStatus_set_input"] | null, pk_columns:ValueTypes["userStatus_pk_columns_input"]},ValueTypes["userStatus"]], + _set?: ValueTypes["userStatus_set_input"] | undefined | null, pk_columns: ValueTypes["userStatus_pk_columns_input"]},ValueTypes["userStatus"]], updateUserStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["userStatus_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["userStatus_bool_exp"]},ValueTypes["userStatus_mutation_response"]], + _set?: ValueTypes["userStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["userStatus_bool_exp"]},ValueTypes["userStatus_mutation_response"]], updateUsers?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["user_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["user_bool_exp"]},ValueTypes["user_mutation_response"]], + _set?: ValueTypes["user_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["user_bool_exp"]},ValueTypes["user_mutation_response"]], updateWebhook?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["webhook_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["webhook_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["webhook_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["webhook_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["webhook_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["webhook_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["webhook_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["webhook_set_input"] | null, pk_columns:ValueTypes["webhook_pk_columns_input"]},ValueTypes["webhook"]], + _delete_elem?: ValueTypes["webhook_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["webhook_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["webhook_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["webhook_set_input"] | undefined | null, pk_columns: ValueTypes["webhook_pk_columns_input"]},ValueTypes["webhook"]], updateWebhooks?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?:ValueTypes["webhook_append_input"] | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?:ValueTypes["webhook_delete_at_path_input"] | null, /** delete the array element with specified index (negative integers count from + _append?: ValueTypes["webhook_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ + _delete_at_path?: ValueTypes["webhook_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ - _delete_elem?:ValueTypes["webhook_delete_elem_input"] | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?:ValueTypes["webhook_delete_key_input"] | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?:ValueTypes["webhook_prepend_input"] | null, /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["webhook_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["webhook_bool_exp"]},ValueTypes["webhook_mutation_response"]], + _delete_elem?: ValueTypes["webhook_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ + _delete_key?: ValueTypes["webhook_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ + _prepend?: ValueTypes["webhook_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ + _set?: ValueTypes["webhook_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["webhook_bool_exp"]},ValueTypes["webhook_mutation_response"]], update_booking_channel?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["booking_channel_set_input"] | null, /** filter the rows which have to be updated */ - where:ValueTypes["booking_channel_bool_exp"]},ValueTypes["booking_channel_mutation_response"]], + _set?: ValueTypes["booking_channel_set_input"] | undefined | null, /** filter the rows which have to be updated */ + where: ValueTypes["booking_channel_bool_exp"]},ValueTypes["booking_channel_mutation_response"]], update_booking_channel_by_pk?: [{ /** sets the columns of the filtered rows to the given values */ - _set?:ValueTypes["booking_channel_set_input"] | null, pk_columns:ValueTypes["booking_channel_pk_columns_input"]},ValueTypes["booking_channel"]], + _set?: ValueTypes["booking_channel_set_input"] | undefined | null, pk_columns: ValueTypes["booking_channel_pk_columns_input"]},ValueTypes["booking_channel"]], __typename?: boolean }>; ["normalized_type_enum"]:normalized_type_enum; /** Boolean expression to compare columns of type "normalized_type_enum". All fields are combined with logical 'AND'. */ ["normalized_type_enum_comparison_exp"]: { - _eq?:ValueTypes["normalized_type_enum"] | null, - _in?:ValueTypes["normalized_type_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["normalized_type_enum"] | null, - _nin?:ValueTypes["normalized_type_enum"][] + _eq?: ValueTypes["normalized_type_enum"] | undefined | null, + _in?: (ValueTypes["normalized_type_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["normalized_type_enum"] | undefined | null, + _nin?: (ValueTypes["normalized_type_enum"])[] }; /** columns and relationships of "normalized_type" */ ["normalizedType"]: AliasType<{ @@ -3907,23 +3907,23 @@ update_booking_channel_by_pk?: [{ /** sets the columns of the filtered rows to t }>; /** aggregate fields of "normalized_type" */ ["normalizedType_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["normalizedType_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["normalizedType_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["normalizedType_max_fields"], min?:ValueTypes["normalizedType_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "normalized_type". All fields are combined with a logical 'AND'. */ ["normalizedType_bool_exp"]: { - _and?:ValueTypes["normalizedType_bool_exp"][], - _not?:ValueTypes["normalizedType_bool_exp"] | null, - _or?:ValueTypes["normalizedType_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["normalizedType_bool_exp"])[], + _not?: ValueTypes["normalizedType_bool_exp"] | undefined | null, + _or?: (ValueTypes["normalizedType_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "normalized_type" */ ["normalizedType_constraint"]:normalizedType_constraint; /** input type for inserting data into table "normalized_type" */ ["normalizedType_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["normalizedType_max_fields"]: AliasType<{ @@ -3945,38 +3945,38 @@ count?: [{ columns?:ValueTypes["normalizedType_select_column"][], distinct?:bool }>; /** on conflict condition type for table "normalized_type" */ ["normalizedType_on_conflict"]: { - constraint:ValueTypes["normalizedType_constraint"], - update_columns:ValueTypes["normalizedType_update_column"][], - where?:ValueTypes["normalizedType_bool_exp"] | null + constraint: ValueTypes["normalizedType_constraint"], + update_columns: (ValueTypes["normalizedType_update_column"])[] | undefined | null, + where?: ValueTypes["normalizedType_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "normalized_type". */ ["normalizedType_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: normalizedType */ ["normalizedType_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "normalized_type" */ ["normalizedType_select_column"]:normalizedType_select_column; /** input type for updating data in table "normalized_type" */ ["normalizedType_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "normalized_type" */ ["normalizedType_update_column"]:normalizedType_update_column; ["numeric"]:unknown; /** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ ["numeric_comparison_exp"]: { - _eq?:ValueTypes["numeric"] | null, - _gt?:ValueTypes["numeric"] | null, - _gte?:ValueTypes["numeric"] | null, - _in?:ValueTypes["numeric"][], - _is_null?:boolean | null, - _lt?:ValueTypes["numeric"] | null, - _lte?:ValueTypes["numeric"] | null, - _neq?:ValueTypes["numeric"] | null, - _nin?:ValueTypes["numeric"][] + _eq?: ValueTypes["numeric"] | undefined | null, + _gt?: ValueTypes["numeric"] | undefined | null, + _gte?: ValueTypes["numeric"] | undefined | null, + _in?: (ValueTypes["numeric"])[], + _is_null?: boolean | undefined | null, + _lt?: ValueTypes["numeric"] | undefined | null, + _lte?: ValueTypes["numeric"] | undefined | null, + _neq?: ValueTypes["numeric"] | undefined | null, + _nin?: (ValueTypes["numeric"])[] }; /** column ordering options */ ["order_by"]:order_by; @@ -3995,33 +3995,33 @@ count?: [{ columns?:ValueTypes["normalizedType_select_column"][], distinct?:bool entityId?:boolean, id?:boolean, lines?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], lines_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line_aggregate"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], metadata?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], paidAt?:boolean, status?:boolean, tags?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag_aggregate"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], /** An object relationship */ team?:ValueTypes["team"], teamId?:boolean, @@ -4039,7 +4039,7 @@ tags_aggregate?: [{ /** distinct select on columns */ /** aggregate fields of "payment" */ ["payment_aggregate_fields"]: AliasType<{ avg?:ValueTypes["payment_avg_fields"], -count?: [{ columns?:ValueTypes["payment_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["payment_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["payment_max_fields"], min?:ValueTypes["payment_min_fields"], stddev?:ValueTypes["payment_stddev_fields"], @@ -4053,27 +4053,27 @@ count?: [{ columns?:ValueTypes["payment_select_column"][], distinct?:boolean | n }>; /** order by aggregate values of table "payment" */ ["payment_aggregate_order_by"]: { - avg?:ValueTypes["payment_avg_order_by"] | null, - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["payment_max_order_by"] | null, - min?:ValueTypes["payment_min_order_by"] | null, - stddev?:ValueTypes["payment_stddev_order_by"] | null, - stddev_pop?:ValueTypes["payment_stddev_pop_order_by"] | null, - stddev_samp?:ValueTypes["payment_stddev_samp_order_by"] | null, - sum?:ValueTypes["payment_sum_order_by"] | null, - var_pop?:ValueTypes["payment_var_pop_order_by"] | null, - var_samp?:ValueTypes["payment_var_samp_order_by"] | null, - variance?:ValueTypes["payment_variance_order_by"] | null + avg?: ValueTypes["payment_avg_order_by"] | undefined | null, + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["payment_max_order_by"] | undefined | null, + min?: ValueTypes["payment_min_order_by"] | undefined | null, + stddev?: ValueTypes["payment_stddev_order_by"] | undefined | null, + stddev_pop?: ValueTypes["payment_stddev_pop_order_by"] | undefined | null, + stddev_samp?: ValueTypes["payment_stddev_samp_order_by"] | undefined | null, + sum?: ValueTypes["payment_sum_order_by"] | undefined | null, + var_pop?: ValueTypes["payment_var_pop_order_by"] | undefined | null, + var_samp?: ValueTypes["payment_var_samp_order_by"] | undefined | null, + variance?: ValueTypes["payment_variance_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["payment_append_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "payment" */ ["payment_arr_rel_insert_input"]: { - data:ValueTypes["payment_insert_input"][], + data: (ValueTypes["payment_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["payment_on_conflict"] | null + on_conflict?: ValueTypes["payment_on_conflict"] | undefined | null }; /** aggregate avg on columns */ ["payment_avg_fields"]: AliasType<{ @@ -4082,75 +4082,75 @@ count?: [{ columns?:ValueTypes["payment_select_column"][], distinct?:boolean | n }>; /** order by avg() on columns of table "payment" */ ["payment_avg_order_by"]: { - centTotal?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null }; /** Boolean expression to filter rows from the table "payment". All fields are combined with a logical 'AND'. */ ["payment_bool_exp"]: { - _and?:ValueTypes["payment_bool_exp"][], - _not?:ValueTypes["payment_bool_exp"] | null, - _or?:ValueTypes["payment_bool_exp"][], - arrivesAt?:ValueTypes["timestamptz_comparison_exp"] | null, - centTotal?:ValueTypes["Int_comparison_exp"] | null, - connection?:ValueTypes["connection_bool_exp"] | null, - connectionId?:ValueTypes["uuid_comparison_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - currency?:ValueTypes["currency_enum_comparison_exp"] | null, - description?:ValueTypes["String_comparison_exp"] | null, - entity?:ValueTypes["entity_bool_exp"] | null, - entityId?:ValueTypes["uuid_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - lines?:ValueTypes["line_bool_exp"] | null, - metadata?:ValueTypes["jsonb_comparison_exp"] | null, - paidAt?:ValueTypes["timestamptz_comparison_exp"] | null, - status?:ValueTypes["payment_status_enum_comparison_exp"] | null, - tags?:ValueTypes["tag_bool_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - type?:ValueTypes["String_comparison_exp"] | null, - uniqueRef?:ValueTypes["String_comparison_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null + _and?: (ValueTypes["payment_bool_exp"])[], + _not?: ValueTypes["payment_bool_exp"] | undefined | null, + _or?: (ValueTypes["payment_bool_exp"])[], + arrivesAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + centTotal?: ValueTypes["Int_comparison_exp"] | undefined | null, + connection?: ValueTypes["connection_bool_exp"] | undefined | null, + connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + currency?: ValueTypes["currency_enum_comparison_exp"] | undefined | null, + description?: ValueTypes["String_comparison_exp"] | undefined | null, + entity?: ValueTypes["entity_bool_exp"] | undefined | null, + entityId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + lines?: ValueTypes["line_bool_exp"] | undefined | null, + metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + paidAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + status?: ValueTypes["payment_status_enum_comparison_exp"] | undefined | null, + tags?: ValueTypes["tag_bool_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + type?: ValueTypes["String_comparison_exp"] | undefined | null, + uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "payment" */ ["payment_constraint"]:payment_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["payment_delete_at_path_input"]: { - metadata?:string[] + metadata?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["payment_delete_elem_input"]: { - metadata?:number | null + metadata?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["payment_delete_key_input"]: { - metadata?:string | null + metadata?: string | undefined | null }; /** input type for incrementing numeric columns in table "payment" */ ["payment_inc_input"]: { - centTotal?:number | null + centTotal?: number | undefined | null }; /** input type for inserting data into table "payment" */ ["payment_insert_input"]: { - arrivesAt?:ValueTypes["timestamptz"] | null, - centTotal?:number | null, - connection?:ValueTypes["connection_obj_rel_insert_input"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - currency?:ValueTypes["currency_enum"] | null, - description?:string | null, - entity?:ValueTypes["entity_obj_rel_insert_input"] | null, - entityId?:ValueTypes["uuid"] | null, - id?:ValueTypes["uuid"] | null, - lines?:ValueTypes["line_arr_rel_insert_input"] | null, - metadata?:ValueTypes["jsonb"] | null, - paidAt?:ValueTypes["timestamptz"] | null, - status?:ValueTypes["payment_status_enum"] | null, - tags?:ValueTypes["tag_arr_rel_insert_input"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - uniqueRef?:string | null, - updatedAt?:ValueTypes["timestamptz"] | null + arrivesAt?: ValueTypes["timestamptz"] | undefined | null, + centTotal?: number | undefined | null, + connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + currency?: ValueTypes["currency_enum"] | undefined | null, + description?: string | undefined | null, + entity?: ValueTypes["entity_obj_rel_insert_input"] | undefined | null, + entityId?: ValueTypes["uuid"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + lines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + paidAt?: ValueTypes["timestamptz"] | undefined | null, + status?: ValueTypes["payment_status_enum"] | undefined | null, + tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate max on columns */ ["payment_max_fields"]: AliasType<{ @@ -4170,18 +4170,18 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "payment" */ ["payment_max_order_by"]: { - arrivesAt?:ValueTypes["order_by"] | null, - centTotal?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - description?:ValueTypes["order_by"] | null, - entityId?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - paidAt?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + arrivesAt?: ValueTypes["order_by"] | undefined | null, + centTotal?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + description?: ValueTypes["order_by"] | undefined | null, + entityId?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + paidAt?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["payment_min_fields"]: AliasType<{ @@ -4201,18 +4201,18 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "payment" */ ["payment_min_order_by"]: { - arrivesAt?:ValueTypes["order_by"] | null, - centTotal?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - description?:ValueTypes["order_by"] | null, - entityId?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - paidAt?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + arrivesAt?: ValueTypes["order_by"] | undefined | null, + centTotal?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + description?: ValueTypes["order_by"] | undefined | null, + entityId?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + paidAt?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "payment" */ ["payment_mutation_response"]: AliasType<{ @@ -4224,75 +4224,75 @@ end). throws an error if top level container is not an array */ }>; /** input type for inserting object relation for remote table "payment" */ ["payment_obj_rel_insert_input"]: { - data:ValueTypes["payment_insert_input"], + data: ValueTypes["payment_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["payment_on_conflict"] | null + on_conflict?: ValueTypes["payment_on_conflict"] | undefined | null }; /** on conflict condition type for table "payment" */ ["payment_on_conflict"]: { - constraint:ValueTypes["payment_constraint"], - update_columns:ValueTypes["payment_update_column"][], - where?:ValueTypes["payment_bool_exp"] | null + constraint: ValueTypes["payment_constraint"], + update_columns: (ValueTypes["payment_update_column"])[] | undefined | null, + where?: ValueTypes["payment_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "payment". */ ["payment_order_by"]: { - arrivesAt?:ValueTypes["order_by"] | null, - centTotal?:ValueTypes["order_by"] | null, - connection?:ValueTypes["connection_order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - currency?:ValueTypes["order_by"] | null, - description?:ValueTypes["order_by"] | null, - entity?:ValueTypes["entity_order_by"] | null, - entityId?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - lines_aggregate?:ValueTypes["line_aggregate_order_by"] | null, - metadata?:ValueTypes["order_by"] | null, - paidAt?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - tags_aggregate?:ValueTypes["tag_aggregate_order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + arrivesAt?: ValueTypes["order_by"] | undefined | null, + centTotal?: ValueTypes["order_by"] | undefined | null, + connection?: ValueTypes["connection_order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + currency?: ValueTypes["order_by"] | undefined | null, + description?: ValueTypes["order_by"] | undefined | null, + entity?: ValueTypes["entity_order_by"] | undefined | null, + entityId?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + lines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, + metadata?: ValueTypes["order_by"] | undefined | null, + paidAt?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: payment */ ["payment_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["payment_prepend_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "payment" */ ["payment_select_column"]:payment_select_column; /** input type for updating data in table "payment" */ ["payment_set_input"]: { - arrivesAt?:ValueTypes["timestamptz"] | null, - centTotal?:number | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - currency?:ValueTypes["currency_enum"] | null, - description?:string | null, - entityId?:ValueTypes["uuid"] | null, - id?:ValueTypes["uuid"] | null, - metadata?:ValueTypes["jsonb"] | null, - paidAt?:ValueTypes["timestamptz"] | null, - status?:ValueTypes["payment_status_enum"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - uniqueRef?:string | null, - updatedAt?:ValueTypes["timestamptz"] | null + arrivesAt?: ValueTypes["timestamptz"] | undefined | null, + centTotal?: number | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + currency?: ValueTypes["currency_enum"] | undefined | null, + description?: string | undefined | null, + entityId?: ValueTypes["uuid"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + paidAt?: ValueTypes["timestamptz"] | undefined | null, + status?: ValueTypes["payment_status_enum"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; ["payment_status_enum"]:payment_status_enum; /** Boolean expression to compare columns of type "payment_status_enum". All fields are combined with logical 'AND'. */ ["payment_status_enum_comparison_exp"]: { - _eq?:ValueTypes["payment_status_enum"] | null, - _in?:ValueTypes["payment_status_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["payment_status_enum"] | null, - _nin?:ValueTypes["payment_status_enum"][] + _eq?: ValueTypes["payment_status_enum"] | undefined | null, + _in?: (ValueTypes["payment_status_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["payment_status_enum"] | undefined | null, + _nin?: (ValueTypes["payment_status_enum"])[] }; /** aggregate stddev on columns */ ["payment_stddev_fields"]: AliasType<{ @@ -4301,7 +4301,7 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev() on columns of table "payment" */ ["payment_stddev_order_by"]: { - centTotal?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null }; /** aggregate stddev_pop on columns */ ["payment_stddev_pop_fields"]: AliasType<{ @@ -4310,7 +4310,7 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev_pop() on columns of table "payment" */ ["payment_stddev_pop_order_by"]: { - centTotal?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null }; /** aggregate stddev_samp on columns */ ["payment_stddev_samp_fields"]: AliasType<{ @@ -4319,7 +4319,7 @@ end). throws an error if top level container is not an array */ }>; /** order by stddev_samp() on columns of table "payment" */ ["payment_stddev_samp_order_by"]: { - centTotal?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null }; /** aggregate sum on columns */ ["payment_sum_fields"]: AliasType<{ @@ -4328,7 +4328,7 @@ end). throws an error if top level container is not an array */ }>; /** order by sum() on columns of table "payment" */ ["payment_sum_order_by"]: { - centTotal?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null }; /** update columns of table "payment" */ ["payment_update_column"]:payment_update_column; @@ -4339,7 +4339,7 @@ end). throws an error if top level container is not an array */ }>; /** order by var_pop() on columns of table "payment" */ ["payment_var_pop_order_by"]: { - centTotal?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null }; /** aggregate var_samp on columns */ ["payment_var_samp_fields"]: AliasType<{ @@ -4348,7 +4348,7 @@ end). throws an error if top level container is not an array */ }>; /** order by var_samp() on columns of table "payment" */ ["payment_var_samp_order_by"]: { - centTotal?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null }; /** aggregate variance on columns */ ["payment_variance_fields"]: AliasType<{ @@ -4357,7 +4357,7 @@ end). throws an error if top level container is not an array */ }>; /** order by variance() on columns of table "payment" */ ["payment_variance_order_by"]: { - centTotal?:ValueTypes["order_by"] | null + centTotal?: ValueTypes["order_by"] | undefined | null }; /** columns and relationships of "payment_status" */ ["paymentStatus"]: AliasType<{ @@ -4372,23 +4372,23 @@ end). throws an error if top level container is not an array */ }>; /** aggregate fields of "payment_status" */ ["paymentStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["paymentStatus_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["paymentStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["paymentStatus_max_fields"], min?:ValueTypes["paymentStatus_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "payment_status". All fields are combined with a logical 'AND'. */ ["paymentStatus_bool_exp"]: { - _and?:ValueTypes["paymentStatus_bool_exp"][], - _not?:ValueTypes["paymentStatus_bool_exp"] | null, - _or?:ValueTypes["paymentStatus_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["paymentStatus_bool_exp"])[], + _not?: ValueTypes["paymentStatus_bool_exp"] | undefined | null, + _or?: (ValueTypes["paymentStatus_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "payment_status" */ ["paymentStatus_constraint"]:paymentStatus_constraint; /** input type for inserting data into table "payment_status" */ ["paymentStatus_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["paymentStatus_max_fields"]: AliasType<{ @@ -4410,23 +4410,23 @@ count?: [{ columns?:ValueTypes["paymentStatus_select_column"][], distinct?:boole }>; /** on conflict condition type for table "payment_status" */ ["paymentStatus_on_conflict"]: { - constraint:ValueTypes["paymentStatus_constraint"], - update_columns:ValueTypes["paymentStatus_update_column"][], - where?:ValueTypes["paymentStatus_bool_exp"] | null + constraint: ValueTypes["paymentStatus_constraint"], + update_columns: (ValueTypes["paymentStatus_update_column"])[] | undefined | null, + where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "payment_status". */ ["paymentStatus_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: paymentStatus */ ["paymentStatus_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "payment_status" */ ["paymentStatus_select_column"]:paymentStatus_select_column; /** input type for updating data in table "payment_status" */ ["paymentStatus_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "payment_status" */ ["paymentStatus_update_column"]:paymentStatus_update_column; @@ -4443,23 +4443,23 @@ count?: [{ columns?:ValueTypes["paymentStatus_select_column"][], distinct?:boole }>; /** aggregate fields of "payment_type" */ ["paymentType_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["paymentType_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["paymentType_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["paymentType_max_fields"], min?:ValueTypes["paymentType_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "payment_type". All fields are combined with a logical 'AND'. */ ["paymentType_bool_exp"]: { - _and?:ValueTypes["paymentType_bool_exp"][], - _not?:ValueTypes["paymentType_bool_exp"] | null, - _or?:ValueTypes["paymentType_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["paymentType_bool_exp"])[], + _not?: ValueTypes["paymentType_bool_exp"] | undefined | null, + _or?: (ValueTypes["paymentType_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "payment_type" */ ["paymentType_constraint"]:paymentType_constraint; /** input type for inserting data into table "payment_type" */ ["paymentType_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["paymentType_max_fields"]: AliasType<{ @@ -4481,424 +4481,424 @@ count?: [{ columns?:ValueTypes["paymentType_select_column"][], distinct?:boolean }>; /** on conflict condition type for table "payment_type" */ ["paymentType_on_conflict"]: { - constraint:ValueTypes["paymentType_constraint"], - update_columns:ValueTypes["paymentType_update_column"][], - where?:ValueTypes["paymentType_bool_exp"] | null + constraint: ValueTypes["paymentType_constraint"], + update_columns: (ValueTypes["paymentType_update_column"])[] | undefined | null, + where?: ValueTypes["paymentType_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "payment_type". */ ["paymentType_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: paymentType */ ["paymentType_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "payment_type" */ ["paymentType_select_column"]:paymentType_select_column; /** input type for updating data in table "payment_type" */ ["paymentType_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "payment_type" */ ["paymentType_update_column"]:paymentType_update_column; ["query_root"]: AliasType<{ aggregateBookingStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["bookingStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["bookingStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["bookingStatus_bool_exp"] | null},ValueTypes["bookingStatus_aggregate"]], + distinct_on?: (ValueTypes["bookingStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["bookingStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null},ValueTypes["bookingStatus_aggregate"]], aggregateBookings?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking_aggregate"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], aggregateClassifications?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["classification_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["classification_order_by"][], /** filter the rows returned */ - where?:ValueTypes["classification_bool_exp"] | null},ValueTypes["classification_aggregate"]], + distinct_on?: (ValueTypes["classification_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["classification_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["classification_bool_exp"] | undefined | null},ValueTypes["classification_aggregate"]], aggregateConnections?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["connection_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["connection_order_by"][], /** filter the rows returned */ - where?:ValueTypes["connection_bool_exp"] | null},ValueTypes["connection_aggregate"]], + distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection_aggregate"]], aggregateCurrencies?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["currency_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["currency_order_by"][], /** filter the rows returned */ - where?:ValueTypes["currency_bool_exp"] | null},ValueTypes["currency_aggregate"]], + distinct_on?: (ValueTypes["currency_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["currency_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["currency_bool_exp"] | undefined | null},ValueTypes["currency_aggregate"]], aggregateEntities?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity_aggregate"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], aggregateEntityStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entityStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entityStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entityStatus_bool_exp"] | null},ValueTypes["entityStatus_aggregate"]], + distinct_on?: (ValueTypes["entityStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entityStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entityStatus_bool_exp"] | undefined | null},ValueTypes["entityStatus_aggregate"]], aggregateIntegrationTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integrationType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integrationType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integrationType_bool_exp"] | null},ValueTypes["integrationType_aggregate"]], + distinct_on?: (ValueTypes["integrationType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integrationType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integrationType_bool_exp"] | undefined | null},ValueTypes["integrationType_aggregate"]], aggregateIntegrations?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integration_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integration_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integration_bool_exp"] | null},ValueTypes["integration_aggregate"]], + distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration_aggregate"]], aggregateIssues?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["issue_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["issue_order_by"][], /** filter the rows returned */ - where?:ValueTypes["issue_bool_exp"] | null},ValueTypes["issue_aggregate"]], + distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue_aggregate"]], aggregateJobMethods?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["jobMethod_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["jobMethod_order_by"][], /** filter the rows returned */ - where?:ValueTypes["jobMethod_bool_exp"] | null},ValueTypes["jobMethod_aggregate"]], + distinct_on?: (ValueTypes["jobMethod_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["jobMethod_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["jobMethod_bool_exp"] | undefined | null},ValueTypes["jobMethod_aggregate"]], aggregateJobStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["jobStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["jobStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["jobStatus_bool_exp"] | null},ValueTypes["jobStatus_aggregate"]], + distinct_on?: (ValueTypes["jobStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["jobStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["jobStatus_bool_exp"] | undefined | null},ValueTypes["jobStatus_aggregate"]], aggregateJobs?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job_aggregate"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], aggregateLines?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line_aggregate"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], aggregateMetrics?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["metric_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["metric_order_by"][], /** filter the rows returned */ - where?:ValueTypes["metric_bool_exp"] | null},ValueTypes["metric_aggregate"]], + distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric_aggregate"]], aggregateNormalizedTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["normalizedType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["normalizedType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["normalizedType_bool_exp"] | null},ValueTypes["normalizedType_aggregate"]], + distinct_on?: (ValueTypes["normalizedType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["normalizedType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["normalizedType_bool_exp"] | undefined | null},ValueTypes["normalizedType_aggregate"]], aggregatePaymentStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["paymentStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["paymentStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["paymentStatus_bool_exp"] | null},ValueTypes["paymentStatus_aggregate"]], + distinct_on?: (ValueTypes["paymentStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["paymentStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null},ValueTypes["paymentStatus_aggregate"]], aggregatePaymentTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["paymentType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["paymentType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["paymentType_bool_exp"] | null},ValueTypes["paymentType_aggregate"]], + distinct_on?: (ValueTypes["paymentType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["paymentType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["paymentType_bool_exp"] | undefined | null},ValueTypes["paymentType_aggregate"]], aggregatePayments?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment_aggregate"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], aggregateSubclassifications?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["subclassification_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["subclassification_order_by"][], /** filter the rows returned */ - where?:ValueTypes["subclassification_bool_exp"] | null},ValueTypes["subclassification_aggregate"]], + distinct_on?: (ValueTypes["subclassification_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["subclassification_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["subclassification_bool_exp"] | undefined | null},ValueTypes["subclassification_aggregate"]], aggregateTags?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag_aggregate"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], aggregateTeamUsers?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["teamUser_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["teamUser_order_by"][], /** filter the rows returned */ - where?:ValueTypes["teamUser_bool_exp"] | null},ValueTypes["teamUser_aggregate"]], + distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser_aggregate"]], aggregateTeams?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["team_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["team_order_by"][], /** filter the rows returned */ - where?:ValueTypes["team_bool_exp"] | null},ValueTypes["team_aggregate"]], + distinct_on?: (ValueTypes["team_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["team_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["team_bool_exp"] | undefined | null},ValueTypes["team_aggregate"]], aggregateUnits?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit_aggregate"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], aggregateUserStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["userStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["userStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["userStatus_bool_exp"] | null},ValueTypes["userStatus_aggregate"]], + distinct_on?: (ValueTypes["userStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["userStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["userStatus_bool_exp"] | undefined | null},ValueTypes["userStatus_aggregate"]], aggregateUsers?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["user_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["user_order_by"][], /** filter the rows returned */ - where?:ValueTypes["user_bool_exp"] | null},ValueTypes["user_aggregate"]], + distinct_on?: (ValueTypes["user_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["user_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["user_bool_exp"] | undefined | null},ValueTypes["user_aggregate"]], aggregateWebhooks?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["webhook_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["webhook_order_by"][], /** filter the rows returned */ - where?:ValueTypes["webhook_bool_exp"] | null},ValueTypes["webhook_aggregate"]], -booking?: [{ id:ValueTypes["uuid"]},ValueTypes["booking"]], -bookingStatus?: [{ name:string},ValueTypes["bookingStatus"]], + distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook_aggregate"]], +booking?: [{ id: ValueTypes["uuid"]},ValueTypes["booking"]], +bookingStatus?: [{ name: string},ValueTypes["bookingStatus"]], bookingStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["bookingStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["bookingStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["bookingStatus_bool_exp"] | null},ValueTypes["bookingStatus"]], + distinct_on?: (ValueTypes["bookingStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["bookingStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null},ValueTypes["bookingStatus"]], booking_channel?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_channel_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_channel_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_channel_bool_exp"] | null},ValueTypes["booking_channel"]], + distinct_on?: (ValueTypes["booking_channel_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_channel_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_channel_bool_exp"] | undefined | null},ValueTypes["booking_channel"]], booking_channel_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_channel_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_channel_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_channel_bool_exp"] | null},ValueTypes["booking_channel_aggregate"]], -booking_channel_by_pk?: [{ name:string},ValueTypes["booking_channel"]], + distinct_on?: (ValueTypes["booking_channel_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_channel_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_channel_bool_exp"] | undefined | null},ValueTypes["booking_channel_aggregate"]], +booking_channel_by_pk?: [{ name: string},ValueTypes["booking_channel"]], bookings?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking"]], -classification?: [{ name:string},ValueTypes["classification"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], +classification?: [{ name: string},ValueTypes["classification"]], classifications?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["classification_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["classification_order_by"][], /** filter the rows returned */ - where?:ValueTypes["classification_bool_exp"] | null},ValueTypes["classification"]], -connection?: [{ id:ValueTypes["uuid"]},ValueTypes["connection"]], + distinct_on?: (ValueTypes["classification_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["classification_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["classification_bool_exp"] | undefined | null},ValueTypes["classification"]], +connection?: [{ id: ValueTypes["uuid"]},ValueTypes["connection"]], connections?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["connection_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["connection_order_by"][], /** filter the rows returned */ - where?:ValueTypes["connection_bool_exp"] | null},ValueTypes["connection"]], + distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection"]], currencies?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["currency_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["currency_order_by"][], /** filter the rows returned */ - where?:ValueTypes["currency_bool_exp"] | null},ValueTypes["currency"]], -currency?: [{ name:string},ValueTypes["currency"]], + distinct_on?: (ValueTypes["currency_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["currency_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["currency_bool_exp"] | undefined | null},ValueTypes["currency"]], +currency?: [{ name: string},ValueTypes["currency"]], entities?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity"]], -entity?: [{ id:ValueTypes["uuid"]},ValueTypes["entity"]], -entityStatus?: [{ name:string},ValueTypes["entityStatus"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], +entity?: [{ id: ValueTypes["uuid"]},ValueTypes["entity"]], +entityStatus?: [{ name: string},ValueTypes["entityStatus"]], entityStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entityStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entityStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entityStatus_bool_exp"] | null},ValueTypes["entityStatus"]], -integration?: [{ id:ValueTypes["uuid"]},ValueTypes["integration"]], -integrationType?: [{ name:string},ValueTypes["integrationType"]], + distinct_on?: (ValueTypes["entityStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entityStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entityStatus_bool_exp"] | undefined | null},ValueTypes["entityStatus"]], +integration?: [{ id: ValueTypes["uuid"]},ValueTypes["integration"]], +integrationType?: [{ name: string},ValueTypes["integrationType"]], integrationTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integrationType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integrationType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integrationType_bool_exp"] | null},ValueTypes["integrationType"]], + distinct_on?: (ValueTypes["integrationType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integrationType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integrationType_bool_exp"] | undefined | null},ValueTypes["integrationType"]], integrations?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integration_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integration_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integration_bool_exp"] | null},ValueTypes["integration"]], -issue?: [{ id:ValueTypes["uuid"]},ValueTypes["issue"]], + distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration"]], +issue?: [{ id: ValueTypes["uuid"]},ValueTypes["issue"]], issues?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["issue_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["issue_order_by"][], /** filter the rows returned */ - where?:ValueTypes["issue_bool_exp"] | null},ValueTypes["issue"]], -job?: [{ id:ValueTypes["uuid"]},ValueTypes["job"]], -jobMethod?: [{ name:string},ValueTypes["jobMethod"]], + distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue"]], +job?: [{ id: ValueTypes["uuid"]},ValueTypes["job"]], +jobMethod?: [{ name: string},ValueTypes["jobMethod"]], jobMethods?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["jobMethod_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["jobMethod_order_by"][], /** filter the rows returned */ - where?:ValueTypes["jobMethod_bool_exp"] | null},ValueTypes["jobMethod"]], -jobStatus?: [{ name:string},ValueTypes["jobStatus"]], + distinct_on?: (ValueTypes["jobMethod_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["jobMethod_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["jobMethod_bool_exp"] | undefined | null},ValueTypes["jobMethod"]], +jobStatus?: [{ name: string},ValueTypes["jobStatus"]], jobStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["jobStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["jobStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["jobStatus_bool_exp"] | null},ValueTypes["jobStatus"]], + distinct_on?: (ValueTypes["jobStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["jobStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["jobStatus_bool_exp"] | undefined | null},ValueTypes["jobStatus"]], jobs?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job"]], -line?: [{ id:ValueTypes["uuid"]},ValueTypes["line"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], +line?: [{ id: ValueTypes["uuid"]},ValueTypes["line"]], lines?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line"]], -metric?: [{ id:ValueTypes["uuid"]},ValueTypes["metric"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], +metric?: [{ id: ValueTypes["uuid"]},ValueTypes["metric"]], metrics?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["metric_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["metric_order_by"][], /** filter the rows returned */ - where?:ValueTypes["metric_bool_exp"] | null},ValueTypes["metric"]], -normalizedType?: [{ name:string},ValueTypes["normalizedType"]], + distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric"]], +normalizedType?: [{ name: string},ValueTypes["normalizedType"]], normalizedTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["normalizedType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["normalizedType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["normalizedType_bool_exp"] | null},ValueTypes["normalizedType"]], -payment?: [{ id:ValueTypes["uuid"]},ValueTypes["payment"]], -paymentStatus?: [{ name:string},ValueTypes["paymentStatus"]], + distinct_on?: (ValueTypes["normalizedType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["normalizedType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["normalizedType_bool_exp"] | undefined | null},ValueTypes["normalizedType"]], +payment?: [{ id: ValueTypes["uuid"]},ValueTypes["payment"]], +paymentStatus?: [{ name: string},ValueTypes["paymentStatus"]], paymentStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["paymentStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["paymentStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["paymentStatus_bool_exp"] | null},ValueTypes["paymentStatus"]], -paymentType?: [{ name:string},ValueTypes["paymentType"]], + distinct_on?: (ValueTypes["paymentStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["paymentStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null},ValueTypes["paymentStatus"]], +paymentType?: [{ name: string},ValueTypes["paymentType"]], paymentTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["paymentType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["paymentType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["paymentType_bool_exp"] | null},ValueTypes["paymentType"]], + distinct_on?: (ValueTypes["paymentType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["paymentType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["paymentType_bool_exp"] | undefined | null},ValueTypes["paymentType"]], payments?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment"]], -subclassification?: [{ name:string},ValueTypes["subclassification"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], +subclassification?: [{ name: string},ValueTypes["subclassification"]], subclassifications?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["subclassification_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["subclassification_order_by"][], /** filter the rows returned */ - where?:ValueTypes["subclassification_bool_exp"] | null},ValueTypes["subclassification"]], -tag?: [{ id:ValueTypes["uuid"]},ValueTypes["tag"]], + distinct_on?: (ValueTypes["subclassification_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["subclassification_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["subclassification_bool_exp"] | undefined | null},ValueTypes["subclassification"]], +tag?: [{ id: ValueTypes["uuid"]},ValueTypes["tag"]], tags?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag"]], -team?: [{ id:ValueTypes["uuid"]},ValueTypes["team"]], -teamUser?: [{ id:ValueTypes["uuid"]},ValueTypes["teamUser"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], +team?: [{ id: ValueTypes["uuid"]},ValueTypes["team"]], +teamUser?: [{ id: ValueTypes["uuid"]},ValueTypes["teamUser"]], teamUsers?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["teamUser_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["teamUser_order_by"][], /** filter the rows returned */ - where?:ValueTypes["teamUser_bool_exp"] | null},ValueTypes["teamUser"]], + distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser"]], teams?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["team_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["team_order_by"][], /** filter the rows returned */ - where?:ValueTypes["team_bool_exp"] | null},ValueTypes["team"]], -unit?: [{ id:ValueTypes["uuid"]},ValueTypes["unit"]], + distinct_on?: (ValueTypes["team_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["team_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["team_bool_exp"] | undefined | null},ValueTypes["team"]], +unit?: [{ id: ValueTypes["uuid"]},ValueTypes["unit"]], units?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit"]], -user?: [{ id:ValueTypes["uuid"]},ValueTypes["user"]], -userStatus?: [{ name:string},ValueTypes["userStatus"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], +user?: [{ id: ValueTypes["uuid"]},ValueTypes["user"]], +userStatus?: [{ name: string},ValueTypes["userStatus"]], userStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["userStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["userStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["userStatus_bool_exp"] | null},ValueTypes["userStatus"]], + distinct_on?: (ValueTypes["userStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["userStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["userStatus_bool_exp"] | undefined | null},ValueTypes["userStatus"]], users?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["user_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["user_order_by"][], /** filter the rows returned */ - where?:ValueTypes["user_bool_exp"] | null},ValueTypes["user"]], -webhook?: [{ id:ValueTypes["uuid"]},ValueTypes["webhook"]], + distinct_on?: (ValueTypes["user_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["user_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["user_bool_exp"] | undefined | null},ValueTypes["user"]], +webhook?: [{ id: ValueTypes["uuid"]},ValueTypes["webhook"]], webhooks?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["webhook_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["webhook_order_by"][], /** filter the rows returned */ - where?:ValueTypes["webhook_bool_exp"] | null},ValueTypes["webhook"]], + distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook"]], __typename?: boolean }>; /** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ ["String_comparison_exp"]: { - _eq?:string | null, - _gt?:string | null, - _gte?:string | null, + _eq?: string | undefined | null, + _gt?: string | undefined | null, + _gte?: string | undefined | null, /** does the column match the given case-insensitive pattern */ - _ilike?:string | null, - _in?:string[], + _ilike?: string | undefined | null, + _in?: (string)[], /** does the column match the given POSIX regular expression, case insensitive */ - _iregex?:string | null, - _is_null?:boolean | null, + _iregex?: string | undefined | null, + _is_null?: boolean | undefined | null, /** does the column match the given pattern */ - _like?:string | null, - _lt?:string | null, - _lte?:string | null, - _neq?:string | null, + _like?: string | undefined | null, + _lt?: string | undefined | null, + _lte?: string | undefined | null, + _neq?: string | undefined | null, /** does the column NOT match the given case-insensitive pattern */ - _nilike?:string | null, - _nin?:string[], + _nilike?: string | undefined | null, + _nin?: (string)[], /** does the column NOT match the given POSIX regular expression, case insensitive */ - _niregex?:string | null, + _niregex?: string | undefined | null, /** does the column NOT match the given pattern */ - _nlike?:string | null, + _nlike?: string | undefined | null, /** does the column NOT match the given POSIX regular expression, case sensitive */ - _nregex?:string | null, + _nregex?: string | undefined | null, /** does the column NOT match the given SQL regular expression */ - _nsimilar?:string | null, + _nsimilar?: string | undefined | null, /** does the column match the given POSIX regular expression, case sensitive */ - _regex?:string | null, + _regex?: string | undefined | null, /** does the column match the given SQL regular expression */ - _similar?:string | null + _similar?: string | undefined | null }; /** columns and relationships of "subclassification" */ ["subclassification"]: AliasType<{ @@ -4913,32 +4913,32 @@ webhooks?: [{ /** distinct select on columns */ }>; /** aggregate fields of "subclassification" */ ["subclassification_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["subclassification_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["subclassification_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["subclassification_max_fields"], min?:ValueTypes["subclassification_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "subclassification". All fields are combined with a logical 'AND'. */ ["subclassification_bool_exp"]: { - _and?:ValueTypes["subclassification_bool_exp"][], - _not?:ValueTypes["subclassification_bool_exp"] | null, - _or?:ValueTypes["subclassification_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["subclassification_bool_exp"])[], + _not?: ValueTypes["subclassification_bool_exp"] | undefined | null, + _or?: (ValueTypes["subclassification_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "subclassification" */ ["subclassification_constraint"]:subclassification_constraint; ["subclassification_enum"]:subclassification_enum; /** Boolean expression to compare columns of type "subclassification_enum". All fields are combined with logical 'AND'. */ ["subclassification_enum_comparison_exp"]: { - _eq?:ValueTypes["subclassification_enum"] | null, - _in?:ValueTypes["subclassification_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["subclassification_enum"] | null, - _nin?:ValueTypes["subclassification_enum"][] + _eq?: ValueTypes["subclassification_enum"] | undefined | null, + _in?: (ValueTypes["subclassification_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["subclassification_enum"] | undefined | null, + _nin?: (ValueTypes["subclassification_enum"])[] }; /** input type for inserting data into table "subclassification" */ ["subclassification_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["subclassification_max_fields"]: AliasType<{ @@ -4960,391 +4960,391 @@ count?: [{ columns?:ValueTypes["subclassification_select_column"][], distinct?:b }>; /** on conflict condition type for table "subclassification" */ ["subclassification_on_conflict"]: { - constraint:ValueTypes["subclassification_constraint"], - update_columns:ValueTypes["subclassification_update_column"][], - where?:ValueTypes["subclassification_bool_exp"] | null + constraint: ValueTypes["subclassification_constraint"], + update_columns: (ValueTypes["subclassification_update_column"])[] | undefined | null, + where?: ValueTypes["subclassification_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "subclassification". */ ["subclassification_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: subclassification */ ["subclassification_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "subclassification" */ ["subclassification_select_column"]:subclassification_select_column; /** input type for updating data in table "subclassification" */ ["subclassification_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "subclassification" */ ["subclassification_update_column"]:subclassification_update_column; ["subscription_root"]: AliasType<{ aggregateBookingStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["bookingStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["bookingStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["bookingStatus_bool_exp"] | null},ValueTypes["bookingStatus_aggregate"]], + distinct_on?: (ValueTypes["bookingStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["bookingStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null},ValueTypes["bookingStatus_aggregate"]], aggregateBookings?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking_aggregate"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], aggregateClassifications?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["classification_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["classification_order_by"][], /** filter the rows returned */ - where?:ValueTypes["classification_bool_exp"] | null},ValueTypes["classification_aggregate"]], + distinct_on?: (ValueTypes["classification_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["classification_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["classification_bool_exp"] | undefined | null},ValueTypes["classification_aggregate"]], aggregateConnections?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["connection_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["connection_order_by"][], /** filter the rows returned */ - where?:ValueTypes["connection_bool_exp"] | null},ValueTypes["connection_aggregate"]], + distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection_aggregate"]], aggregateCurrencies?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["currency_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["currency_order_by"][], /** filter the rows returned */ - where?:ValueTypes["currency_bool_exp"] | null},ValueTypes["currency_aggregate"]], + distinct_on?: (ValueTypes["currency_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["currency_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["currency_bool_exp"] | undefined | null},ValueTypes["currency_aggregate"]], aggregateEntities?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity_aggregate"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], aggregateEntityStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entityStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entityStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entityStatus_bool_exp"] | null},ValueTypes["entityStatus_aggregate"]], + distinct_on?: (ValueTypes["entityStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entityStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entityStatus_bool_exp"] | undefined | null},ValueTypes["entityStatus_aggregate"]], aggregateIntegrationTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integrationType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integrationType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integrationType_bool_exp"] | null},ValueTypes["integrationType_aggregate"]], + distinct_on?: (ValueTypes["integrationType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integrationType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integrationType_bool_exp"] | undefined | null},ValueTypes["integrationType_aggregate"]], aggregateIntegrations?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integration_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integration_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integration_bool_exp"] | null},ValueTypes["integration_aggregate"]], + distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration_aggregate"]], aggregateIssues?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["issue_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["issue_order_by"][], /** filter the rows returned */ - where?:ValueTypes["issue_bool_exp"] | null},ValueTypes["issue_aggregate"]], + distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue_aggregate"]], aggregateJobMethods?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["jobMethod_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["jobMethod_order_by"][], /** filter the rows returned */ - where?:ValueTypes["jobMethod_bool_exp"] | null},ValueTypes["jobMethod_aggregate"]], + distinct_on?: (ValueTypes["jobMethod_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["jobMethod_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["jobMethod_bool_exp"] | undefined | null},ValueTypes["jobMethod_aggregate"]], aggregateJobStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["jobStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["jobStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["jobStatus_bool_exp"] | null},ValueTypes["jobStatus_aggregate"]], + distinct_on?: (ValueTypes["jobStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["jobStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["jobStatus_bool_exp"] | undefined | null},ValueTypes["jobStatus_aggregate"]], aggregateJobs?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job_aggregate"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], aggregateLines?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line_aggregate"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], aggregateMetrics?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["metric_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["metric_order_by"][], /** filter the rows returned */ - where?:ValueTypes["metric_bool_exp"] | null},ValueTypes["metric_aggregate"]], + distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric_aggregate"]], aggregateNormalizedTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["normalizedType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["normalizedType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["normalizedType_bool_exp"] | null},ValueTypes["normalizedType_aggregate"]], + distinct_on?: (ValueTypes["normalizedType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["normalizedType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["normalizedType_bool_exp"] | undefined | null},ValueTypes["normalizedType_aggregate"]], aggregatePaymentStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["paymentStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["paymentStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["paymentStatus_bool_exp"] | null},ValueTypes["paymentStatus_aggregate"]], + distinct_on?: (ValueTypes["paymentStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["paymentStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null},ValueTypes["paymentStatus_aggregate"]], aggregatePaymentTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["paymentType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["paymentType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["paymentType_bool_exp"] | null},ValueTypes["paymentType_aggregate"]], + distinct_on?: (ValueTypes["paymentType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["paymentType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["paymentType_bool_exp"] | undefined | null},ValueTypes["paymentType_aggregate"]], aggregatePayments?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment_aggregate"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], aggregateSubclassifications?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["subclassification_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["subclassification_order_by"][], /** filter the rows returned */ - where?:ValueTypes["subclassification_bool_exp"] | null},ValueTypes["subclassification_aggregate"]], + distinct_on?: (ValueTypes["subclassification_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["subclassification_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["subclassification_bool_exp"] | undefined | null},ValueTypes["subclassification_aggregate"]], aggregateTags?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag_aggregate"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], aggregateTeamUsers?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["teamUser_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["teamUser_order_by"][], /** filter the rows returned */ - where?:ValueTypes["teamUser_bool_exp"] | null},ValueTypes["teamUser_aggregate"]], + distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser_aggregate"]], aggregateTeams?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["team_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["team_order_by"][], /** filter the rows returned */ - where?:ValueTypes["team_bool_exp"] | null},ValueTypes["team_aggregate"]], + distinct_on?: (ValueTypes["team_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["team_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["team_bool_exp"] | undefined | null},ValueTypes["team_aggregate"]], aggregateUnits?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit_aggregate"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], aggregateUserStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["userStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["userStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["userStatus_bool_exp"] | null},ValueTypes["userStatus_aggregate"]], + distinct_on?: (ValueTypes["userStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["userStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["userStatus_bool_exp"] | undefined | null},ValueTypes["userStatus_aggregate"]], aggregateUsers?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["user_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["user_order_by"][], /** filter the rows returned */ - where?:ValueTypes["user_bool_exp"] | null},ValueTypes["user_aggregate"]], + distinct_on?: (ValueTypes["user_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["user_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["user_bool_exp"] | undefined | null},ValueTypes["user_aggregate"]], aggregateWebhooks?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["webhook_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["webhook_order_by"][], /** filter the rows returned */ - where?:ValueTypes["webhook_bool_exp"] | null},ValueTypes["webhook_aggregate"]], -booking?: [{ id:ValueTypes["uuid"]},ValueTypes["booking"]], -bookingStatus?: [{ name:string},ValueTypes["bookingStatus"]], + distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook_aggregate"]], +booking?: [{ id: ValueTypes["uuid"]},ValueTypes["booking"]], +bookingStatus?: [{ name: string},ValueTypes["bookingStatus"]], bookingStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["bookingStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["bookingStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["bookingStatus_bool_exp"] | null},ValueTypes["bookingStatus"]], + distinct_on?: (ValueTypes["bookingStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["bookingStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null},ValueTypes["bookingStatus"]], booking_channel?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_channel_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_channel_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_channel_bool_exp"] | null},ValueTypes["booking_channel"]], + distinct_on?: (ValueTypes["booking_channel_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_channel_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_channel_bool_exp"] | undefined | null},ValueTypes["booking_channel"]], booking_channel_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_channel_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_channel_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_channel_bool_exp"] | null},ValueTypes["booking_channel_aggregate"]], -booking_channel_by_pk?: [{ name:string},ValueTypes["booking_channel"]], + distinct_on?: (ValueTypes["booking_channel_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_channel_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_channel_bool_exp"] | undefined | null},ValueTypes["booking_channel_aggregate"]], +booking_channel_by_pk?: [{ name: string},ValueTypes["booking_channel"]], bookings?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking"]], -classification?: [{ name:string},ValueTypes["classification"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], +classification?: [{ name: string},ValueTypes["classification"]], classifications?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["classification_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["classification_order_by"][], /** filter the rows returned */ - where?:ValueTypes["classification_bool_exp"] | null},ValueTypes["classification"]], -connection?: [{ id:ValueTypes["uuid"]},ValueTypes["connection"]], + distinct_on?: (ValueTypes["classification_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["classification_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["classification_bool_exp"] | undefined | null},ValueTypes["classification"]], +connection?: [{ id: ValueTypes["uuid"]},ValueTypes["connection"]], connections?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["connection_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["connection_order_by"][], /** filter the rows returned */ - where?:ValueTypes["connection_bool_exp"] | null},ValueTypes["connection"]], + distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection"]], currencies?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["currency_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["currency_order_by"][], /** filter the rows returned */ - where?:ValueTypes["currency_bool_exp"] | null},ValueTypes["currency"]], -currency?: [{ name:string},ValueTypes["currency"]], + distinct_on?: (ValueTypes["currency_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["currency_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["currency_bool_exp"] | undefined | null},ValueTypes["currency"]], +currency?: [{ name: string},ValueTypes["currency"]], entities?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity"]], -entity?: [{ id:ValueTypes["uuid"]},ValueTypes["entity"]], -entityStatus?: [{ name:string},ValueTypes["entityStatus"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], +entity?: [{ id: ValueTypes["uuid"]},ValueTypes["entity"]], +entityStatus?: [{ name: string},ValueTypes["entityStatus"]], entityStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entityStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entityStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entityStatus_bool_exp"] | null},ValueTypes["entityStatus"]], -integration?: [{ id:ValueTypes["uuid"]},ValueTypes["integration"]], -integrationType?: [{ name:string},ValueTypes["integrationType"]], + distinct_on?: (ValueTypes["entityStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entityStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entityStatus_bool_exp"] | undefined | null},ValueTypes["entityStatus"]], +integration?: [{ id: ValueTypes["uuid"]},ValueTypes["integration"]], +integrationType?: [{ name: string},ValueTypes["integrationType"]], integrationTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integrationType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integrationType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integrationType_bool_exp"] | null},ValueTypes["integrationType"]], + distinct_on?: (ValueTypes["integrationType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integrationType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integrationType_bool_exp"] | undefined | null},ValueTypes["integrationType"]], integrations?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integration_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integration_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integration_bool_exp"] | null},ValueTypes["integration"]], -issue?: [{ id:ValueTypes["uuid"]},ValueTypes["issue"]], + distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration"]], +issue?: [{ id: ValueTypes["uuid"]},ValueTypes["issue"]], issues?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["issue_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["issue_order_by"][], /** filter the rows returned */ - where?:ValueTypes["issue_bool_exp"] | null},ValueTypes["issue"]], -job?: [{ id:ValueTypes["uuid"]},ValueTypes["job"]], -jobMethod?: [{ name:string},ValueTypes["jobMethod"]], + distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue"]], +job?: [{ id: ValueTypes["uuid"]},ValueTypes["job"]], +jobMethod?: [{ name: string},ValueTypes["jobMethod"]], jobMethods?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["jobMethod_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["jobMethod_order_by"][], /** filter the rows returned */ - where?:ValueTypes["jobMethod_bool_exp"] | null},ValueTypes["jobMethod"]], -jobStatus?: [{ name:string},ValueTypes["jobStatus"]], + distinct_on?: (ValueTypes["jobMethod_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["jobMethod_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["jobMethod_bool_exp"] | undefined | null},ValueTypes["jobMethod"]], +jobStatus?: [{ name: string},ValueTypes["jobStatus"]], jobStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["jobStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["jobStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["jobStatus_bool_exp"] | null},ValueTypes["jobStatus"]], + distinct_on?: (ValueTypes["jobStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["jobStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["jobStatus_bool_exp"] | undefined | null},ValueTypes["jobStatus"]], jobs?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job"]], -line?: [{ id:ValueTypes["uuid"]},ValueTypes["line"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], +line?: [{ id: ValueTypes["uuid"]},ValueTypes["line"]], lines?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line"]], -metric?: [{ id:ValueTypes["uuid"]},ValueTypes["metric"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], +metric?: [{ id: ValueTypes["uuid"]},ValueTypes["metric"]], metrics?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["metric_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["metric_order_by"][], /** filter the rows returned */ - where?:ValueTypes["metric_bool_exp"] | null},ValueTypes["metric"]], -normalizedType?: [{ name:string},ValueTypes["normalizedType"]], + distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric"]], +normalizedType?: [{ name: string},ValueTypes["normalizedType"]], normalizedTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["normalizedType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["normalizedType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["normalizedType_bool_exp"] | null},ValueTypes["normalizedType"]], -payment?: [{ id:ValueTypes["uuid"]},ValueTypes["payment"]], -paymentStatus?: [{ name:string},ValueTypes["paymentStatus"]], + distinct_on?: (ValueTypes["normalizedType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["normalizedType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["normalizedType_bool_exp"] | undefined | null},ValueTypes["normalizedType"]], +payment?: [{ id: ValueTypes["uuid"]},ValueTypes["payment"]], +paymentStatus?: [{ name: string},ValueTypes["paymentStatus"]], paymentStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["paymentStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["paymentStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["paymentStatus_bool_exp"] | null},ValueTypes["paymentStatus"]], -paymentType?: [{ name:string},ValueTypes["paymentType"]], + distinct_on?: (ValueTypes["paymentStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["paymentStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null},ValueTypes["paymentStatus"]], +paymentType?: [{ name: string},ValueTypes["paymentType"]], paymentTypes?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["paymentType_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["paymentType_order_by"][], /** filter the rows returned */ - where?:ValueTypes["paymentType_bool_exp"] | null},ValueTypes["paymentType"]], + distinct_on?: (ValueTypes["paymentType_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["paymentType_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["paymentType_bool_exp"] | undefined | null},ValueTypes["paymentType"]], payments?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment"]], -subclassification?: [{ name:string},ValueTypes["subclassification"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], +subclassification?: [{ name: string},ValueTypes["subclassification"]], subclassifications?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["subclassification_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["subclassification_order_by"][], /** filter the rows returned */ - where?:ValueTypes["subclassification_bool_exp"] | null},ValueTypes["subclassification"]], -tag?: [{ id:ValueTypes["uuid"]},ValueTypes["tag"]], + distinct_on?: (ValueTypes["subclassification_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["subclassification_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["subclassification_bool_exp"] | undefined | null},ValueTypes["subclassification"]], +tag?: [{ id: ValueTypes["uuid"]},ValueTypes["tag"]], tags?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag"]], -team?: [{ id:ValueTypes["uuid"]},ValueTypes["team"]], -teamUser?: [{ id:ValueTypes["uuid"]},ValueTypes["teamUser"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], +team?: [{ id: ValueTypes["uuid"]},ValueTypes["team"]], +teamUser?: [{ id: ValueTypes["uuid"]},ValueTypes["teamUser"]], teamUsers?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["teamUser_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["teamUser_order_by"][], /** filter the rows returned */ - where?:ValueTypes["teamUser_bool_exp"] | null},ValueTypes["teamUser"]], + distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser"]], teams?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["team_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["team_order_by"][], /** filter the rows returned */ - where?:ValueTypes["team_bool_exp"] | null},ValueTypes["team"]], -unit?: [{ id:ValueTypes["uuid"]},ValueTypes["unit"]], + distinct_on?: (ValueTypes["team_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["team_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["team_bool_exp"] | undefined | null},ValueTypes["team"]], +unit?: [{ id: ValueTypes["uuid"]},ValueTypes["unit"]], units?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit"]], -user?: [{ id:ValueTypes["uuid"]},ValueTypes["user"]], -userStatus?: [{ name:string},ValueTypes["userStatus"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], +user?: [{ id: ValueTypes["uuid"]},ValueTypes["user"]], +userStatus?: [{ name: string},ValueTypes["userStatus"]], userStatuses?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["userStatus_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["userStatus_order_by"][], /** filter the rows returned */ - where?:ValueTypes["userStatus_bool_exp"] | null},ValueTypes["userStatus"]], + distinct_on?: (ValueTypes["userStatus_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["userStatus_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["userStatus_bool_exp"] | undefined | null},ValueTypes["userStatus"]], users?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["user_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["user_order_by"][], /** filter the rows returned */ - where?:ValueTypes["user_bool_exp"] | null},ValueTypes["user"]], -webhook?: [{ id:ValueTypes["uuid"]},ValueTypes["webhook"]], + distinct_on?: (ValueTypes["user_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["user_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["user_bool_exp"] | undefined | null},ValueTypes["user"]], +webhook?: [{ id: ValueTypes["uuid"]},ValueTypes["webhook"]], webhooks?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["webhook_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["webhook_order_by"][], /** filter the rows returned */ - where?:ValueTypes["webhook_bool_exp"] | null},ValueTypes["webhook"]], + distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook"]], __typename?: boolean }>; /** columns and relationships of "tag" */ @@ -5358,7 +5358,7 @@ webhooks?: [{ /** distinct select on columns */ createdAt?:boolean, id?:boolean, json?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], /** An object relationship */ payment?:ValueTypes["payment"], paymentId?:boolean, @@ -5381,82 +5381,82 @@ json?: [{ /** JSON select path */ }>; /** aggregate fields of "tag" */ ["tag_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["tag_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["tag_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["tag_max_fields"], min?:ValueTypes["tag_min_fields"], __typename?: boolean }>; /** order by aggregate values of table "tag" */ ["tag_aggregate_order_by"]: { - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["tag_max_order_by"] | null, - min?:ValueTypes["tag_min_order_by"] | null + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["tag_max_order_by"] | undefined | null, + min?: ValueTypes["tag_min_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["tag_append_input"]: { - json?:ValueTypes["jsonb"] | null + json?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "tag" */ ["tag_arr_rel_insert_input"]: { - data:ValueTypes["tag_insert_input"][], + data: (ValueTypes["tag_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["tag_on_conflict"] | null + on_conflict?: ValueTypes["tag_on_conflict"] | undefined | null }; /** Boolean expression to filter rows from the table "tag". All fields are combined with a logical 'AND'. */ ["tag_bool_exp"]: { - _and?:ValueTypes["tag_bool_exp"][], - _not?:ValueTypes["tag_bool_exp"] | null, - _or?:ValueTypes["tag_bool_exp"][], - booking?:ValueTypes["booking_bool_exp"] | null, - bookingId?:ValueTypes["uuid_comparison_exp"] | null, - connection?:ValueTypes["connection_bool_exp"] | null, - connectionId?:ValueTypes["uuid_comparison_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - json?:ValueTypes["jsonb_comparison_exp"] | null, - payment?:ValueTypes["payment_bool_exp"] | null, - paymentId?:ValueTypes["uuid_comparison_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - type?:ValueTypes["String_comparison_exp"] | null, - uniqueRef?:ValueTypes["String_comparison_exp"] | null, - unit?:ValueTypes["unit_bool_exp"] | null, - unitId?:ValueTypes["uuid_comparison_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null + _and?: (ValueTypes["tag_bool_exp"])[], + _not?: ValueTypes["tag_bool_exp"] | undefined | null, + _or?: (ValueTypes["tag_bool_exp"])[], + booking?: ValueTypes["booking_bool_exp"] | undefined | null, + bookingId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + connection?: ValueTypes["connection_bool_exp"] | undefined | null, + connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + json?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + payment?: ValueTypes["payment_bool_exp"] | undefined | null, + paymentId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + type?: ValueTypes["String_comparison_exp"] | undefined | null, + uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, + unit?: ValueTypes["unit_bool_exp"] | undefined | null, + unitId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "tag" */ ["tag_constraint"]:tag_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["tag_delete_at_path_input"]: { - json?:string[] + json?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["tag_delete_elem_input"]: { - json?:number | null + json?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["tag_delete_key_input"]: { - json?:string | null + json?: string | undefined | null }; /** input type for inserting data into table "tag" */ ["tag_insert_input"]: { - booking?:ValueTypes["booking_obj_rel_insert_input"] | null, - bookingId?:ValueTypes["uuid"] | null, - connection?:ValueTypes["connection_obj_rel_insert_input"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - id?:ValueTypes["uuid"] | null, - json?:ValueTypes["jsonb"] | null, - payment?:ValueTypes["payment_obj_rel_insert_input"] | null, - paymentId?:ValueTypes["uuid"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - uniqueRef?:string | null, - unit?:ValueTypes["unit_obj_rel_insert_input"] | null, - unitId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null + booking?: ValueTypes["booking_obj_rel_insert_input"] | undefined | null, + bookingId?: ValueTypes["uuid"] | undefined | null, + connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + json?: ValueTypes["jsonb"] | undefined | null, + payment?: ValueTypes["payment_obj_rel_insert_input"] | undefined | null, + paymentId?: ValueTypes["uuid"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + unit?: ValueTypes["unit_obj_rel_insert_input"] | undefined | null, + unitId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate max on columns */ ["tag_max_fields"]: AliasType<{ @@ -5474,16 +5474,16 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "tag" */ ["tag_max_order_by"]: { - bookingId?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - paymentId?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + bookingId?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + paymentId?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["tag_min_fields"]: AliasType<{ @@ -5501,16 +5501,16 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "tag" */ ["tag_min_order_by"]: { - bookingId?:ValueTypes["order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - paymentId?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + bookingId?: ValueTypes["order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + paymentId?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "tag" */ ["tag_mutation_response"]: AliasType<{ @@ -5522,52 +5522,52 @@ end). throws an error if top level container is not an array */ }>; /** on conflict condition type for table "tag" */ ["tag_on_conflict"]: { - constraint:ValueTypes["tag_constraint"], - update_columns:ValueTypes["tag_update_column"][], - where?:ValueTypes["tag_bool_exp"] | null + constraint: ValueTypes["tag_constraint"], + update_columns: (ValueTypes["tag_update_column"])[] | undefined | null, + where?: ValueTypes["tag_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "tag". */ ["tag_order_by"]: { - booking?:ValueTypes["booking_order_by"] | null, - bookingId?:ValueTypes["order_by"] | null, - connection?:ValueTypes["connection_order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - json?:ValueTypes["order_by"] | null, - payment?:ValueTypes["payment_order_by"] | null, - paymentId?:ValueTypes["order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - type?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - unit?:ValueTypes["unit_order_by"] | null, - unitId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + booking?: ValueTypes["booking_order_by"] | undefined | null, + bookingId?: ValueTypes["order_by"] | undefined | null, + connection?: ValueTypes["connection_order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + json?: ValueTypes["order_by"] | undefined | null, + payment?: ValueTypes["payment_order_by"] | undefined | null, + paymentId?: ValueTypes["order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + type?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + unit?: ValueTypes["unit_order_by"] | undefined | null, + unitId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: tag */ ["tag_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["tag_prepend_input"]: { - json?:ValueTypes["jsonb"] | null + json?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "tag" */ ["tag_select_column"]:tag_select_column; /** input type for updating data in table "tag" */ ["tag_set_input"]: { - bookingId?:ValueTypes["uuid"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - id?:ValueTypes["uuid"] | null, - json?:ValueTypes["jsonb"] | null, - paymentId?:ValueTypes["uuid"] | null, - teamId?:ValueTypes["uuid"] | null, - type?:string | null, - uniqueRef?:string | null, - unitId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null + bookingId?: ValueTypes["uuid"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + json?: ValueTypes["jsonb"] | undefined | null, + paymentId?: ValueTypes["uuid"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + type?: string | undefined | null, + uniqueRef?: string | undefined | null, + unitId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** update columns of table "tag" */ ["tag_update_column"]:tag_update_column; @@ -5575,172 +5575,172 @@ end). throws an error if top level container is not an array */ ["team"]: AliasType<{ address?:boolean, bookings?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], bookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking_aggregate"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], commissionPercentage?:boolean, connections?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["connection_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["connection_order_by"][], /** filter the rows returned */ - where?:ValueTypes["connection_bool_exp"] | null},ValueTypes["connection"]], + distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection"]], connections_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["connection_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["connection_order_by"][], /** filter the rows returned */ - where?:ValueTypes["connection_bool_exp"] | null},ValueTypes["connection_aggregate"]], + distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection_aggregate"]], createdAt?:boolean, email?:boolean, entities?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], entities_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["entity_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["entity_order_by"][], /** filter the rows returned */ - where?:ValueTypes["entity_bool_exp"] | null},ValueTypes["entity_aggregate"]], + distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], id?:boolean, integrations?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integration_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integration_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integration_bool_exp"] | null},ValueTypes["integration"]], + distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration"]], integrations_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["integration_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["integration_order_by"][], /** filter the rows returned */ - where?:ValueTypes["integration_bool_exp"] | null},ValueTypes["integration_aggregate"]], + distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration_aggregate"]], isActive?:boolean, isTest?:boolean, issues?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["issue_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["issue_order_by"][], /** filter the rows returned */ - where?:ValueTypes["issue_bool_exp"] | null},ValueTypes["issue"]], + distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue"]], issues_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["issue_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["issue_order_by"][], /** filter the rows returned */ - where?:ValueTypes["issue_bool_exp"] | null},ValueTypes["issue_aggregate"]], + distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue_aggregate"]], jobs?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], jobs_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["job_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["job_order_by"][], /** filter the rows returned */ - where?:ValueTypes["job_bool_exp"] | null},ValueTypes["job_aggregate"]], + distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], lines?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], lines_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["line_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["line_order_by"][], /** filter the rows returned */ - where?:ValueTypes["line_bool_exp"] | null},ValueTypes["line_aggregate"]], + distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], members?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["teamUser_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["teamUser_order_by"][], /** filter the rows returned */ - where?:ValueTypes["teamUser_bool_exp"] | null},ValueTypes["teamUser"]], + distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser"]], members_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["teamUser_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["teamUser_order_by"][], /** filter the rows returned */ - where?:ValueTypes["teamUser_bool_exp"] | null},ValueTypes["teamUser_aggregate"]], + distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser_aggregate"]], metrics?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["metric_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["metric_order_by"][], /** filter the rows returned */ - where?:ValueTypes["metric_bool_exp"] | null},ValueTypes["metric"]], + distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric"]], metrics_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["metric_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["metric_order_by"][], /** filter the rows returned */ - where?:ValueTypes["metric_bool_exp"] | null},ValueTypes["metric_aggregate"]], + distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric_aggregate"]], name?:boolean, payments?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], payments_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["payment_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["payment_order_by"][], /** filter the rows returned */ - where?:ValueTypes["payment_bool_exp"] | null},ValueTypes["payment_aggregate"]], + distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], stripeId?:boolean, stripeSubscriptionItemId?:boolean, supportEmail?:boolean, supportPhone?:boolean, tags?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag_aggregate"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], units?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], units_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["unit_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["unit_order_by"][], /** filter the rows returned */ - where?:ValueTypes["unit_bool_exp"] | null},ValueTypes["unit_aggregate"]], + distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], webhooks?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["webhook_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["webhook_order_by"][], /** filter the rows returned */ - where?:ValueTypes["webhook_bool_exp"] | null},ValueTypes["webhook"]], + distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook"]], webhooks_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["webhook_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["webhook_order_by"][], /** filter the rows returned */ - where?:ValueTypes["webhook_bool_exp"] | null},ValueTypes["webhook_aggregate"]], + distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook_aggregate"]], website?:boolean, __typename?: boolean }>; @@ -5753,7 +5753,7 @@ webhooks_aggregate?: [{ /** distinct select on columns */ /** aggregate fields of "team" */ ["team_aggregate_fields"]: AliasType<{ avg?:ValueTypes["team_avg_fields"], -count?: [{ columns?:ValueTypes["team_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["team_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["team_max_fields"], min?:ValueTypes["team_min_fields"], stddev?:ValueTypes["team_stddev_fields"], @@ -5772,70 +5772,70 @@ count?: [{ columns?:ValueTypes["team_select_column"][], distinct?:boolean | null }>; /** Boolean expression to filter rows from the table "team". All fields are combined with a logical 'AND'. */ ["team_bool_exp"]: { - _and?:ValueTypes["team_bool_exp"][], - _not?:ValueTypes["team_bool_exp"] | null, - _or?:ValueTypes["team_bool_exp"][], - address?:ValueTypes["String_comparison_exp"] | null, - bookings?:ValueTypes["booking_bool_exp"] | null, - commissionPercentage?:ValueTypes["numeric_comparison_exp"] | null, - connections?:ValueTypes["connection_bool_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - email?:ValueTypes["String_comparison_exp"] | null, - entities?:ValueTypes["entity_bool_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - integrations?:ValueTypes["integration_bool_exp"] | null, - isActive?:ValueTypes["Boolean_comparison_exp"] | null, - isTest?:ValueTypes["Boolean_comparison_exp"] | null, - issues?:ValueTypes["issue_bool_exp"] | null, - jobs?:ValueTypes["job_bool_exp"] | null, - lines?:ValueTypes["line_bool_exp"] | null, - members?:ValueTypes["teamUser_bool_exp"] | null, - metrics?:ValueTypes["metric_bool_exp"] | null, - name?:ValueTypes["String_comparison_exp"] | null, - payments?:ValueTypes["payment_bool_exp"] | null, - stripeId?:ValueTypes["String_comparison_exp"] | null, - stripeSubscriptionItemId?:ValueTypes["String_comparison_exp"] | null, - supportEmail?:ValueTypes["String_comparison_exp"] | null, - supportPhone?:ValueTypes["String_comparison_exp"] | null, - tags?:ValueTypes["tag_bool_exp"] | null, - units?:ValueTypes["unit_bool_exp"] | null, - webhooks?:ValueTypes["webhook_bool_exp"] | null, - website?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["team_bool_exp"])[], + _not?: ValueTypes["team_bool_exp"] | undefined | null, + _or?: (ValueTypes["team_bool_exp"])[], + address?: ValueTypes["String_comparison_exp"] | undefined | null, + bookings?: ValueTypes["booking_bool_exp"] | undefined | null, + commissionPercentage?: ValueTypes["numeric_comparison_exp"] | undefined | null, + connections?: ValueTypes["connection_bool_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + email?: ValueTypes["String_comparison_exp"] | undefined | null, + entities?: ValueTypes["entity_bool_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + integrations?: ValueTypes["integration_bool_exp"] | undefined | null, + isActive?: ValueTypes["Boolean_comparison_exp"] | undefined | null, + isTest?: ValueTypes["Boolean_comparison_exp"] | undefined | null, + issues?: ValueTypes["issue_bool_exp"] | undefined | null, + jobs?: ValueTypes["job_bool_exp"] | undefined | null, + lines?: ValueTypes["line_bool_exp"] | undefined | null, + members?: ValueTypes["teamUser_bool_exp"] | undefined | null, + metrics?: ValueTypes["metric_bool_exp"] | undefined | null, + name?: ValueTypes["String_comparison_exp"] | undefined | null, + payments?: ValueTypes["payment_bool_exp"] | undefined | null, + stripeId?: ValueTypes["String_comparison_exp"] | undefined | null, + stripeSubscriptionItemId?: ValueTypes["String_comparison_exp"] | undefined | null, + supportEmail?: ValueTypes["String_comparison_exp"] | undefined | null, + supportPhone?: ValueTypes["String_comparison_exp"] | undefined | null, + tags?: ValueTypes["tag_bool_exp"] | undefined | null, + units?: ValueTypes["unit_bool_exp"] | undefined | null, + webhooks?: ValueTypes["webhook_bool_exp"] | undefined | null, + website?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "team" */ ["team_constraint"]:team_constraint; /** input type for incrementing numeric columns in table "team" */ ["team_inc_input"]: { - commissionPercentage?:ValueTypes["numeric"] | null + commissionPercentage?: ValueTypes["numeric"] | undefined | null }; /** input type for inserting data into table "team" */ ["team_insert_input"]: { - address?:string | null, - bookings?:ValueTypes["booking_arr_rel_insert_input"] | null, - commissionPercentage?:ValueTypes["numeric"] | null, - connections?:ValueTypes["connection_arr_rel_insert_input"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - email?:string | null, - entities?:ValueTypes["entity_arr_rel_insert_input"] | null, - id?:ValueTypes["uuid"] | null, - integrations?:ValueTypes["integration_arr_rel_insert_input"] | null, - isActive?:boolean | null, - isTest?:boolean | null, - issues?:ValueTypes["issue_arr_rel_insert_input"] | null, - jobs?:ValueTypes["job_arr_rel_insert_input"] | null, - lines?:ValueTypes["line_arr_rel_insert_input"] | null, - members?:ValueTypes["teamUser_arr_rel_insert_input"] | null, - metrics?:ValueTypes["metric_arr_rel_insert_input"] | null, - name?:string | null, - payments?:ValueTypes["payment_arr_rel_insert_input"] | null, - stripeId?:string | null, - stripeSubscriptionItemId?:string | null, - supportEmail?:string | null, - supportPhone?:string | null, - tags?:ValueTypes["tag_arr_rel_insert_input"] | null, - units?:ValueTypes["unit_arr_rel_insert_input"] | null, - webhooks?:ValueTypes["webhook_arr_rel_insert_input"] | null, - website?:string | null + address?: string | undefined | null, + bookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, + commissionPercentage?: ValueTypes["numeric"] | undefined | null, + connections?: ValueTypes["connection_arr_rel_insert_input"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + email?: string | undefined | null, + entities?: ValueTypes["entity_arr_rel_insert_input"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + integrations?: ValueTypes["integration_arr_rel_insert_input"] | undefined | null, + isActive?: boolean | undefined | null, + isTest?: boolean | undefined | null, + issues?: ValueTypes["issue_arr_rel_insert_input"] | undefined | null, + jobs?: ValueTypes["job_arr_rel_insert_input"] | undefined | null, + lines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, + members?: ValueTypes["teamUser_arr_rel_insert_input"] | undefined | null, + metrics?: ValueTypes["metric_arr_rel_insert_input"] | undefined | null, + name?: string | undefined | null, + payments?: ValueTypes["payment_arr_rel_insert_input"] | undefined | null, + stripeId?: string | undefined | null, + stripeSubscriptionItemId?: string | undefined | null, + supportEmail?: string | undefined | null, + supportPhone?: string | undefined | null, + tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, + units?: ValueTypes["unit_arr_rel_insert_input"] | undefined | null, + webhooks?: ValueTypes["webhook_arr_rel_insert_input"] | undefined | null, + website?: string | undefined | null }; /** aggregate max on columns */ ["team_max_fields"]: AliasType<{ @@ -5877,66 +5877,66 @@ count?: [{ columns?:ValueTypes["team_select_column"][], distinct?:boolean | null }>; /** input type for inserting object relation for remote table "team" */ ["team_obj_rel_insert_input"]: { - data:ValueTypes["team_insert_input"], + data: ValueTypes["team_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["team_on_conflict"] | null + on_conflict?: ValueTypes["team_on_conflict"] | undefined | null }; /** on conflict condition type for table "team" */ ["team_on_conflict"]: { - constraint:ValueTypes["team_constraint"], - update_columns:ValueTypes["team_update_column"][], - where?:ValueTypes["team_bool_exp"] | null + constraint: ValueTypes["team_constraint"], + update_columns: (ValueTypes["team_update_column"])[] | undefined | null, + where?: ValueTypes["team_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "team". */ ["team_order_by"]: { - address?:ValueTypes["order_by"] | null, - bookings_aggregate?:ValueTypes["booking_aggregate_order_by"] | null, - commissionPercentage?:ValueTypes["order_by"] | null, - connections_aggregate?:ValueTypes["connection_aggregate_order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - email?:ValueTypes["order_by"] | null, - entities_aggregate?:ValueTypes["entity_aggregate_order_by"] | null, - id?:ValueTypes["order_by"] | null, - integrations_aggregate?:ValueTypes["integration_aggregate_order_by"] | null, - isActive?:ValueTypes["order_by"] | null, - isTest?:ValueTypes["order_by"] | null, - issues_aggregate?:ValueTypes["issue_aggregate_order_by"] | null, - jobs_aggregate?:ValueTypes["job_aggregate_order_by"] | null, - lines_aggregate?:ValueTypes["line_aggregate_order_by"] | null, - members_aggregate?:ValueTypes["teamUser_aggregate_order_by"] | null, - metrics_aggregate?:ValueTypes["metric_aggregate_order_by"] | null, - name?:ValueTypes["order_by"] | null, - payments_aggregate?:ValueTypes["payment_aggregate_order_by"] | null, - stripeId?:ValueTypes["order_by"] | null, - stripeSubscriptionItemId?:ValueTypes["order_by"] | null, - supportEmail?:ValueTypes["order_by"] | null, - supportPhone?:ValueTypes["order_by"] | null, - tags_aggregate?:ValueTypes["tag_aggregate_order_by"] | null, - units_aggregate?:ValueTypes["unit_aggregate_order_by"] | null, - webhooks_aggregate?:ValueTypes["webhook_aggregate_order_by"] | null, - website?:ValueTypes["order_by"] | null + address?: ValueTypes["order_by"] | undefined | null, + bookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, + commissionPercentage?: ValueTypes["order_by"] | undefined | null, + connections_aggregate?: ValueTypes["connection_aggregate_order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + email?: ValueTypes["order_by"] | undefined | null, + entities_aggregate?: ValueTypes["entity_aggregate_order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + integrations_aggregate?: ValueTypes["integration_aggregate_order_by"] | undefined | null, + isActive?: ValueTypes["order_by"] | undefined | null, + isTest?: ValueTypes["order_by"] | undefined | null, + issues_aggregate?: ValueTypes["issue_aggregate_order_by"] | undefined | null, + jobs_aggregate?: ValueTypes["job_aggregate_order_by"] | undefined | null, + lines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, + members_aggregate?: ValueTypes["teamUser_aggregate_order_by"] | undefined | null, + metrics_aggregate?: ValueTypes["metric_aggregate_order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + payments_aggregate?: ValueTypes["payment_aggregate_order_by"] | undefined | null, + stripeId?: ValueTypes["order_by"] | undefined | null, + stripeSubscriptionItemId?: ValueTypes["order_by"] | undefined | null, + supportEmail?: ValueTypes["order_by"] | undefined | null, + supportPhone?: ValueTypes["order_by"] | undefined | null, + tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, + units_aggregate?: ValueTypes["unit_aggregate_order_by"] | undefined | null, + webhooks_aggregate?: ValueTypes["webhook_aggregate_order_by"] | undefined | null, + website?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: team */ ["team_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** select columns of table "team" */ ["team_select_column"]:team_select_column; /** input type for updating data in table "team" */ ["team_set_input"]: { - address?:string | null, - commissionPercentage?:ValueTypes["numeric"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - email?:string | null, - id?:ValueTypes["uuid"] | null, - isActive?:boolean | null, - isTest?:boolean | null, - name?:string | null, - stripeId?:string | null, - stripeSubscriptionItemId?:string | null, - supportEmail?:string | null, - supportPhone?:string | null, - website?:string | null + address?: string | undefined | null, + commissionPercentage?: ValueTypes["numeric"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + email?: string | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + isActive?: boolean | undefined | null, + isTest?: boolean | undefined | null, + name?: string | undefined | null, + stripeId?: string | undefined | null, + stripeSubscriptionItemId?: string | undefined | null, + supportEmail?: string | undefined | null, + supportPhone?: string | undefined | null, + website?: string | undefined | null }; /** aggregate stddev on columns */ ["team_stddev_fields"]: AliasType<{ @@ -5997,49 +5997,49 @@ count?: [{ columns?:ValueTypes["team_select_column"][], distinct?:boolean | null }>; /** aggregate fields of "team_user" */ ["teamUser_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["teamUser_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["teamUser_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["teamUser_max_fields"], min?:ValueTypes["teamUser_min_fields"], __typename?: boolean }>; /** order by aggregate values of table "team_user" */ ["teamUser_aggregate_order_by"]: { - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["teamUser_max_order_by"] | null, - min?:ValueTypes["teamUser_min_order_by"] | null + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["teamUser_max_order_by"] | undefined | null, + min?: ValueTypes["teamUser_min_order_by"] | undefined | null }; /** input type for inserting array relation for remote table "team_user" */ ["teamUser_arr_rel_insert_input"]: { - data:ValueTypes["teamUser_insert_input"][], + data: (ValueTypes["teamUser_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["teamUser_on_conflict"] | null + on_conflict?: ValueTypes["teamUser_on_conflict"] | undefined | null }; /** Boolean expression to filter rows from the table "team_user". All fields are combined with a logical 'AND'. */ ["teamUser_bool_exp"]: { - _and?:ValueTypes["teamUser_bool_exp"][], - _not?:ValueTypes["teamUser_bool_exp"] | null, - _or?:ValueTypes["teamUser_bool_exp"][], - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - role?:ValueTypes["String_comparison_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null, - user?:ValueTypes["user_bool_exp"] | null, - userId?:ValueTypes["uuid_comparison_exp"] | null + _and?: (ValueTypes["teamUser_bool_exp"])[], + _not?: ValueTypes["teamUser_bool_exp"] | undefined | null, + _or?: (ValueTypes["teamUser_bool_exp"])[], + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + role?: ValueTypes["String_comparison_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + user?: ValueTypes["user_bool_exp"] | undefined | null, + userId?: ValueTypes["uuid_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "team_user" */ ["teamUser_constraint"]:teamUser_constraint; /** input type for inserting data into table "team_user" */ ["teamUser_insert_input"]: { - createdAt?:ValueTypes["timestamptz"] | null, - id?:ValueTypes["uuid"] | null, - role?:string | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null, - user?:ValueTypes["user_obj_rel_insert_input"] | null, - userId?:ValueTypes["uuid"] | null + createdAt?: ValueTypes["timestamptz"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + role?: string | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null, + user?: ValueTypes["user_obj_rel_insert_input"] | undefined | null, + userId?: ValueTypes["uuid"] | undefined | null }; /** aggregate max on columns */ ["teamUser_max_fields"]: AliasType<{ @@ -6053,12 +6053,12 @@ count?: [{ columns?:ValueTypes["teamUser_select_column"][], distinct?:boolean | }>; /** order by max() on columns of table "team_user" */ ["teamUser_max_order_by"]: { - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - role?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null, - userId?:ValueTypes["order_by"] | null + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + role?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null, + userId?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["teamUser_min_fields"]: AliasType<{ @@ -6072,12 +6072,12 @@ count?: [{ columns?:ValueTypes["teamUser_select_column"][], distinct?:boolean | }>; /** order by min() on columns of table "team_user" */ ["teamUser_min_order_by"]: { - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - role?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null, - userId?:ValueTypes["order_by"] | null + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + role?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null, + userId?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "team_user" */ ["teamUser_mutation_response"]: AliasType<{ @@ -6089,65 +6089,65 @@ count?: [{ columns?:ValueTypes["teamUser_select_column"][], distinct?:boolean | }>; /** on conflict condition type for table "team_user" */ ["teamUser_on_conflict"]: { - constraint:ValueTypes["teamUser_constraint"], - update_columns:ValueTypes["teamUser_update_column"][], - where?:ValueTypes["teamUser_bool_exp"] | null + constraint: ValueTypes["teamUser_constraint"], + update_columns: (ValueTypes["teamUser_update_column"])[] | undefined | null, + where?: ValueTypes["teamUser_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "team_user". */ ["teamUser_order_by"]: { - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - role?:ValueTypes["order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null, - user?:ValueTypes["user_order_by"] | null, - userId?:ValueTypes["order_by"] | null + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + role?: ValueTypes["order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null, + user?: ValueTypes["user_order_by"] | undefined | null, + userId?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: teamUser */ ["teamUser_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** select columns of table "team_user" */ ["teamUser_select_column"]:teamUser_select_column; /** input type for updating data in table "team_user" */ ["teamUser_set_input"]: { - createdAt?:ValueTypes["timestamptz"] | null, - id?:ValueTypes["uuid"] | null, - role?:string | null, - teamId?:ValueTypes["uuid"] | null, - updatedAt?:ValueTypes["timestamptz"] | null, - userId?:ValueTypes["uuid"] | null + createdAt?: ValueTypes["timestamptz"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + role?: string | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null, + userId?: ValueTypes["uuid"] | undefined | null }; /** update columns of table "team_user" */ ["teamUser_update_column"]:teamUser_update_column; ["timestamptz"]:unknown; /** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ ["timestamptz_comparison_exp"]: { - _eq?:ValueTypes["timestamptz"] | null, - _gt?:ValueTypes["timestamptz"] | null, - _gte?:ValueTypes["timestamptz"] | null, - _in?:ValueTypes["timestamptz"][], - _is_null?:boolean | null, - _lt?:ValueTypes["timestamptz"] | null, - _lte?:ValueTypes["timestamptz"] | null, - _neq?:ValueTypes["timestamptz"] | null, - _nin?:ValueTypes["timestamptz"][] + _eq?: ValueTypes["timestamptz"] | undefined | null, + _gt?: ValueTypes["timestamptz"] | undefined | null, + _gte?: ValueTypes["timestamptz"] | undefined | null, + _in?: (ValueTypes["timestamptz"])[], + _is_null?: boolean | undefined | null, + _lt?: ValueTypes["timestamptz"] | undefined | null, + _lte?: ValueTypes["timestamptz"] | undefined | null, + _neq?: ValueTypes["timestamptz"] | undefined | null, + _nin?: (ValueTypes["timestamptz"])[] }; /** columns and relationships of "unit" */ ["unit"]: AliasType<{ bookings?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], bookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["booking_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["booking_order_by"][], /** filter the rows returned */ - where?:ValueTypes["booking_bool_exp"] | null},ValueTypes["booking_aggregate"]], + distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], /** An object relationship */ connection?:ValueTypes["connection"], connectionId?:boolean, @@ -6157,21 +6157,21 @@ bookings_aggregate?: [{ /** distinct select on columns */ entityId?:boolean, id?:boolean, metadata?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], name?:boolean, status?:boolean, tags?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["tag_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["tag_order_by"][], /** filter the rows returned */ - where?:ValueTypes["tag_bool_exp"] | null},ValueTypes["tag_aggregate"]], + distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], /** An object relationship */ team?:ValueTypes["team"], teamId?:boolean, @@ -6187,80 +6187,80 @@ tags_aggregate?: [{ /** distinct select on columns */ }>; /** aggregate fields of "unit" */ ["unit_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["unit_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["unit_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["unit_max_fields"], min?:ValueTypes["unit_min_fields"], __typename?: boolean }>; /** order by aggregate values of table "unit" */ ["unit_aggregate_order_by"]: { - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["unit_max_order_by"] | null, - min?:ValueTypes["unit_min_order_by"] | null + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["unit_max_order_by"] | undefined | null, + min?: ValueTypes["unit_min_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["unit_append_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "unit" */ ["unit_arr_rel_insert_input"]: { - data:ValueTypes["unit_insert_input"][], + data: (ValueTypes["unit_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["unit_on_conflict"] | null + on_conflict?: ValueTypes["unit_on_conflict"] | undefined | null }; /** Boolean expression to filter rows from the table "unit". All fields are combined with a logical 'AND'. */ ["unit_bool_exp"]: { - _and?:ValueTypes["unit_bool_exp"][], - _not?:ValueTypes["unit_bool_exp"] | null, - _or?:ValueTypes["unit_bool_exp"][], - bookings?:ValueTypes["booking_bool_exp"] | null, - connection?:ValueTypes["connection_bool_exp"] | null, - connectionId?:ValueTypes["uuid_comparison_exp"] | null, - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - entity?:ValueTypes["entity_bool_exp"] | null, - entityId?:ValueTypes["uuid_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - metadata?:ValueTypes["jsonb_comparison_exp"] | null, - name?:ValueTypes["String_comparison_exp"] | null, - status?:ValueTypes["String_comparison_exp"] | null, - tags?:ValueTypes["tag_bool_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - uniqueRef?:ValueTypes["String_comparison_exp"] | null, - updatedAt?:ValueTypes["timestamptz_comparison_exp"] | null + _and?: (ValueTypes["unit_bool_exp"])[], + _not?: ValueTypes["unit_bool_exp"] | undefined | null, + _or?: (ValueTypes["unit_bool_exp"])[], + bookings?: ValueTypes["booking_bool_exp"] | undefined | null, + connection?: ValueTypes["connection_bool_exp"] | undefined | null, + connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + entity?: ValueTypes["entity_bool_exp"] | undefined | null, + entityId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + name?: ValueTypes["String_comparison_exp"] | undefined | null, + status?: ValueTypes["String_comparison_exp"] | undefined | null, + tags?: ValueTypes["tag_bool_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, + updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "unit" */ ["unit_constraint"]:unit_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["unit_delete_at_path_input"]: { - metadata?:string[] + metadata?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["unit_delete_elem_input"]: { - metadata?:number | null + metadata?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["unit_delete_key_input"]: { - metadata?:string | null + metadata?: string | undefined | null }; /** input type for inserting data into table "unit" */ ["unit_insert_input"]: { - bookings?:ValueTypes["booking_arr_rel_insert_input"] | null, - connection?:ValueTypes["connection_obj_rel_insert_input"] | null, - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - entity?:ValueTypes["entity_obj_rel_insert_input"] | null, - entityId?:ValueTypes["uuid"] | null, - id?:ValueTypes["uuid"] | null, - metadata?:ValueTypes["jsonb"] | null, - name?:string | null, - status?:string | null, - tags?:ValueTypes["tag_arr_rel_insert_input"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - uniqueRef?:string | null, - updatedAt?:ValueTypes["timestamptz"] | null + bookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, + connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + entity?: ValueTypes["entity_obj_rel_insert_input"] | undefined | null, + entityId?: ValueTypes["uuid"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + name?: string | undefined | null, + status?: string | undefined | null, + tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + uniqueRef?: string | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate max on columns */ ["unit_max_fields"]: AliasType<{ @@ -6277,15 +6277,15 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "unit" */ ["unit_max_order_by"]: { - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - entityId?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - name?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + entityId?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["unit_min_fields"]: AliasType<{ @@ -6302,15 +6302,15 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "unit" */ ["unit_min_order_by"]: { - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - entityId?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - name?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + entityId?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "unit" */ ["unit_mutation_response"]: AliasType<{ @@ -6322,56 +6322,56 @@ end). throws an error if top level container is not an array */ }>; /** input type for inserting object relation for remote table "unit" */ ["unit_obj_rel_insert_input"]: { - data:ValueTypes["unit_insert_input"], + data: ValueTypes["unit_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["unit_on_conflict"] | null + on_conflict?: ValueTypes["unit_on_conflict"] | undefined | null }; /** on conflict condition type for table "unit" */ ["unit_on_conflict"]: { - constraint:ValueTypes["unit_constraint"], - update_columns:ValueTypes["unit_update_column"][], - where?:ValueTypes["unit_bool_exp"] | null + constraint: ValueTypes["unit_constraint"], + update_columns: (ValueTypes["unit_update_column"])[] | undefined | null, + where?: ValueTypes["unit_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "unit". */ ["unit_order_by"]: { - bookings_aggregate?:ValueTypes["booking_aggregate_order_by"] | null, - connection?:ValueTypes["connection_order_by"] | null, - connectionId?:ValueTypes["order_by"] | null, - createdAt?:ValueTypes["order_by"] | null, - entity?:ValueTypes["entity_order_by"] | null, - entityId?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - metadata?:ValueTypes["order_by"] | null, - name?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - tags_aggregate?:ValueTypes["tag_aggregate_order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - uniqueRef?:ValueTypes["order_by"] | null, - updatedAt?:ValueTypes["order_by"] | null + bookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, + connection?: ValueTypes["connection_order_by"] | undefined | null, + connectionId?: ValueTypes["order_by"] | undefined | null, + createdAt?: ValueTypes["order_by"] | undefined | null, + entity?: ValueTypes["entity_order_by"] | undefined | null, + entityId?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + metadata?: ValueTypes["order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + uniqueRef?: ValueTypes["order_by"] | undefined | null, + updatedAt?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: unit */ ["unit_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["unit_prepend_input"]: { - metadata?:ValueTypes["jsonb"] | null + metadata?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "unit" */ ["unit_select_column"]:unit_select_column; /** input type for updating data in table "unit" */ ["unit_set_input"]: { - connectionId?:ValueTypes["uuid"] | null, - createdAt?:ValueTypes["timestamptz"] | null, - entityId?:ValueTypes["uuid"] | null, - id?:ValueTypes["uuid"] | null, - metadata?:ValueTypes["jsonb"] | null, - name?:string | null, - status?:string | null, - teamId?:ValueTypes["uuid"] | null, - uniqueRef?:string | null, - updatedAt?:ValueTypes["timestamptz"] | null + connectionId?: ValueTypes["uuid"] | undefined | null, + createdAt?: ValueTypes["timestamptz"] | undefined | null, + entityId?: ValueTypes["uuid"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + metadata?: ValueTypes["jsonb"] | undefined | null, + name?: string | undefined | null, + status?: string | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + uniqueRef?: string | undefined | null, + updatedAt?: ValueTypes["timestamptz"] | undefined | null }; /** update columns of table "unit" */ ["unit_update_column"]:unit_update_column; @@ -6382,17 +6382,17 @@ end). throws an error if top level container is not an array */ id?:boolean, isAdmin?:boolean, memberships?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["teamUser_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["teamUser_order_by"][], /** filter the rows returned */ - where?:ValueTypes["teamUser_bool_exp"] | null},ValueTypes["teamUser"]], + distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser"]], memberships_aggregate?: [{ /** distinct select on columns */ - distinct_on?:ValueTypes["teamUser_select_column"][], /** limit the number of rows returned */ - limit?:number | null, /** skip the first n rows. Use only with order_by */ - offset?:number | null, /** sort the rows by one or more columns */ - order_by?:ValueTypes["teamUser_order_by"][], /** filter the rows returned */ - where?:ValueTypes["teamUser_bool_exp"] | null},ValueTypes["teamUser_aggregate"]], + distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ + limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ + offset?: number | undefined | null, /** sort the rows by one or more columns */ + order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ + where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser_aggregate"]], name?:boolean, status?:boolean, sub?:boolean, @@ -6407,39 +6407,39 @@ memberships_aggregate?: [{ /** distinct select on columns */ }>; /** aggregate fields of "user" */ ["user_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["user_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["user_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["user_max_fields"], min?:ValueTypes["user_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "user". All fields are combined with a logical 'AND'. */ ["user_bool_exp"]: { - _and?:ValueTypes["user_bool_exp"][], - _not?:ValueTypes["user_bool_exp"] | null, - _or?:ValueTypes["user_bool_exp"][], - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - email?:ValueTypes["String_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - isAdmin?:ValueTypes["Boolean_comparison_exp"] | null, - memberships?:ValueTypes["teamUser_bool_exp"] | null, - name?:ValueTypes["String_comparison_exp"] | null, - status?:ValueTypes["user_status_enum_comparison_exp"] | null, - sub?:ValueTypes["String_comparison_exp"] | null, - trialExpiryAt?:ValueTypes["timestamptz_comparison_exp"] | null + _and?: (ValueTypes["user_bool_exp"])[], + _not?: ValueTypes["user_bool_exp"] | undefined | null, + _or?: (ValueTypes["user_bool_exp"])[], + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + email?: ValueTypes["String_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + isAdmin?: ValueTypes["Boolean_comparison_exp"] | undefined | null, + memberships?: ValueTypes["teamUser_bool_exp"] | undefined | null, + name?: ValueTypes["String_comparison_exp"] | undefined | null, + status?: ValueTypes["user_status_enum_comparison_exp"] | undefined | null, + sub?: ValueTypes["String_comparison_exp"] | undefined | null, + trialExpiryAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "user" */ ["user_constraint"]:user_constraint; /** input type for inserting data into table "user" */ ["user_insert_input"]: { - createdAt?:ValueTypes["timestamptz"] | null, - email?:string | null, - id?:ValueTypes["uuid"] | null, - isAdmin?:boolean | null, - memberships?:ValueTypes["teamUser_arr_rel_insert_input"] | null, - name?:string | null, - status?:ValueTypes["user_status_enum"] | null, - sub?:string | null, - trialExpiryAt?:ValueTypes["timestamptz"] | null + createdAt?: ValueTypes["timestamptz"] | undefined | null, + email?: string | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + isAdmin?: boolean | undefined | null, + memberships?: ValueTypes["teamUser_arr_rel_insert_input"] | undefined | null, + name?: string | undefined | null, + status?: ValueTypes["user_status_enum"] | undefined | null, + sub?: string | undefined | null, + trialExpiryAt?: ValueTypes["timestamptz"] | undefined | null }; /** aggregate max on columns */ ["user_max_fields"]: AliasType<{ @@ -6471,53 +6471,53 @@ count?: [{ columns?:ValueTypes["user_select_column"][], distinct?:boolean | null }>; /** input type for inserting object relation for remote table "user" */ ["user_obj_rel_insert_input"]: { - data:ValueTypes["user_insert_input"], + data: ValueTypes["user_insert_input"], /** on conflict condition */ - on_conflict?:ValueTypes["user_on_conflict"] | null + on_conflict?: ValueTypes["user_on_conflict"] | undefined | null }; /** on conflict condition type for table "user" */ ["user_on_conflict"]: { - constraint:ValueTypes["user_constraint"], - update_columns:ValueTypes["user_update_column"][], - where?:ValueTypes["user_bool_exp"] | null + constraint: ValueTypes["user_constraint"], + update_columns: (ValueTypes["user_update_column"])[] | undefined | null, + where?: ValueTypes["user_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "user". */ ["user_order_by"]: { - createdAt?:ValueTypes["order_by"] | null, - email?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - isAdmin?:ValueTypes["order_by"] | null, - memberships_aggregate?:ValueTypes["teamUser_aggregate_order_by"] | null, - name?:ValueTypes["order_by"] | null, - status?:ValueTypes["order_by"] | null, - sub?:ValueTypes["order_by"] | null, - trialExpiryAt?:ValueTypes["order_by"] | null + createdAt?: ValueTypes["order_by"] | undefined | null, + email?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + isAdmin?: ValueTypes["order_by"] | undefined | null, + memberships_aggregate?: ValueTypes["teamUser_aggregate_order_by"] | undefined | null, + name?: ValueTypes["order_by"] | undefined | null, + status?: ValueTypes["order_by"] | undefined | null, + sub?: ValueTypes["order_by"] | undefined | null, + trialExpiryAt?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: user */ ["user_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** select columns of table "user" */ ["user_select_column"]:user_select_column; /** input type for updating data in table "user" */ ["user_set_input"]: { - createdAt?:ValueTypes["timestamptz"] | null, - email?:string | null, - id?:ValueTypes["uuid"] | null, - isAdmin?:boolean | null, - name?:string | null, - status?:ValueTypes["user_status_enum"] | null, - sub?:string | null, - trialExpiryAt?:ValueTypes["timestamptz"] | null + createdAt?: ValueTypes["timestamptz"] | undefined | null, + email?: string | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + isAdmin?: boolean | undefined | null, + name?: string | undefined | null, + status?: ValueTypes["user_status_enum"] | undefined | null, + sub?: string | undefined | null, + trialExpiryAt?: ValueTypes["timestamptz"] | undefined | null }; ["user_status_enum"]:user_status_enum; /** Boolean expression to compare columns of type "user_status_enum". All fields are combined with logical 'AND'. */ ["user_status_enum_comparison_exp"]: { - _eq?:ValueTypes["user_status_enum"] | null, - _in?:ValueTypes["user_status_enum"][], - _is_null?:boolean | null, - _neq?:ValueTypes["user_status_enum"] | null, - _nin?:ValueTypes["user_status_enum"][] + _eq?: ValueTypes["user_status_enum"] | undefined | null, + _in?: (ValueTypes["user_status_enum"])[], + _is_null?: boolean | undefined | null, + _neq?: ValueTypes["user_status_enum"] | undefined | null, + _nin?: (ValueTypes["user_status_enum"])[] }; /** update columns of table "user" */ ["user_update_column"]:user_update_column; @@ -6534,23 +6534,23 @@ count?: [{ columns?:ValueTypes["user_select_column"][], distinct?:boolean | null }>; /** aggregate fields of "user_status" */ ["userStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["userStatus_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["userStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["userStatus_max_fields"], min?:ValueTypes["userStatus_min_fields"], __typename?: boolean }>; /** Boolean expression to filter rows from the table "user_status". All fields are combined with a logical 'AND'. */ ["userStatus_bool_exp"]: { - _and?:ValueTypes["userStatus_bool_exp"][], - _not?:ValueTypes["userStatus_bool_exp"] | null, - _or?:ValueTypes["userStatus_bool_exp"][], - name?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["userStatus_bool_exp"])[], + _not?: ValueTypes["userStatus_bool_exp"] | undefined | null, + _or?: (ValueTypes["userStatus_bool_exp"])[], + name?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "user_status" */ ["userStatus_constraint"]:userStatus_constraint; /** input type for inserting data into table "user_status" */ ["userStatus_insert_input"]: { - name?:string | null + name?: string | undefined | null }; /** aggregate max on columns */ ["userStatus_max_fields"]: AliasType<{ @@ -6572,50 +6572,50 @@ count?: [{ columns?:ValueTypes["userStatus_select_column"][], distinct?:boolean }>; /** on conflict condition type for table "user_status" */ ["userStatus_on_conflict"]: { - constraint:ValueTypes["userStatus_constraint"], - update_columns:ValueTypes["userStatus_update_column"][], - where?:ValueTypes["userStatus_bool_exp"] | null + constraint: ValueTypes["userStatus_constraint"], + update_columns: (ValueTypes["userStatus_update_column"])[] | undefined | null, + where?: ValueTypes["userStatus_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "user_status". */ ["userStatus_order_by"]: { - name?:ValueTypes["order_by"] | null + name?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: userStatus */ ["userStatus_pk_columns_input"]: { - name:string + name: string }; /** select columns of table "user_status" */ ["userStatus_select_column"]:userStatus_select_column; /** input type for updating data in table "user_status" */ ["userStatus_set_input"]: { - name?:string | null + name?: string | undefined | null }; /** update columns of table "user_status" */ ["userStatus_update_column"]:userStatus_update_column; ["uuid"]:unknown; /** Boolean expression to compare columns of type "uuid". All fields are combined with logical 'AND'. */ ["uuid_comparison_exp"]: { - _eq?:ValueTypes["uuid"] | null, - _gt?:ValueTypes["uuid"] | null, - _gte?:ValueTypes["uuid"] | null, - _in?:ValueTypes["uuid"][], - _is_null?:boolean | null, - _lt?:ValueTypes["uuid"] | null, - _lte?:ValueTypes["uuid"] | null, - _neq?:ValueTypes["uuid"] | null, - _nin?:ValueTypes["uuid"][] + _eq?: ValueTypes["uuid"] | undefined | null, + _gt?: ValueTypes["uuid"] | undefined | null, + _gte?: ValueTypes["uuid"] | undefined | null, + _in?: (ValueTypes["uuid"])[], + _is_null?: boolean | undefined | null, + _lt?: ValueTypes["uuid"] | undefined | null, + _lte?: ValueTypes["uuid"] | undefined | null, + _neq?: ValueTypes["uuid"] | undefined | null, + _nin?: (ValueTypes["uuid"])[] }; /** columns and relationships of "webhook" */ ["webhook"]: AliasType<{ createdAt?:boolean, headers?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], id?:boolean, /** An object relationship */ team?:ValueTypes["team"], teamId?:boolean, types?: [{ /** JSON select path */ - path?:string | null},boolean], + path?: string | undefined | null},boolean], types2?:boolean, url?:boolean, __typename?: boolean @@ -6628,70 +6628,70 @@ types?: [{ /** JSON select path */ }>; /** aggregate fields of "webhook" */ ["webhook_aggregate_fields"]: AliasType<{ -count?: [{ columns?:ValueTypes["webhook_select_column"][], distinct?:boolean | null},boolean], +count?: [{ columns?: (ValueTypes["webhook_select_column"])[], distinct?: boolean | undefined | null},boolean], max?:ValueTypes["webhook_max_fields"], min?:ValueTypes["webhook_min_fields"], __typename?: boolean }>; /** order by aggregate values of table "webhook" */ ["webhook_aggregate_order_by"]: { - count?:ValueTypes["order_by"] | null, - max?:ValueTypes["webhook_max_order_by"] | null, - min?:ValueTypes["webhook_min_order_by"] | null + count?: ValueTypes["order_by"] | undefined | null, + max?: ValueTypes["webhook_max_order_by"] | undefined | null, + min?: ValueTypes["webhook_min_order_by"] | undefined | null }; /** append existing jsonb value of filtered columns with new jsonb value */ ["webhook_append_input"]: { - headers?:ValueTypes["jsonb"] | null, - types?:ValueTypes["jsonb"] | null + headers?: ValueTypes["jsonb"] | undefined | null, + types?: ValueTypes["jsonb"] | undefined | null }; /** input type for inserting array relation for remote table "webhook" */ ["webhook_arr_rel_insert_input"]: { - data:ValueTypes["webhook_insert_input"][], + data: (ValueTypes["webhook_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?:ValueTypes["webhook_on_conflict"] | null + on_conflict?: ValueTypes["webhook_on_conflict"] | undefined | null }; /** Boolean expression to filter rows from the table "webhook". All fields are combined with a logical 'AND'. */ ["webhook_bool_exp"]: { - _and?:ValueTypes["webhook_bool_exp"][], - _not?:ValueTypes["webhook_bool_exp"] | null, - _or?:ValueTypes["webhook_bool_exp"][], - createdAt?:ValueTypes["timestamptz_comparison_exp"] | null, - headers?:ValueTypes["jsonb_comparison_exp"] | null, - id?:ValueTypes["uuid_comparison_exp"] | null, - team?:ValueTypes["team_bool_exp"] | null, - teamId?:ValueTypes["uuid_comparison_exp"] | null, - types?:ValueTypes["jsonb_comparison_exp"] | null, - types2?:ValueTypes["_text_comparison_exp"] | null, - url?:ValueTypes["String_comparison_exp"] | null + _and?: (ValueTypes["webhook_bool_exp"])[], + _not?: ValueTypes["webhook_bool_exp"] | undefined | null, + _or?: (ValueTypes["webhook_bool_exp"])[], + createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, + headers?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + id?: ValueTypes["uuid_comparison_exp"] | undefined | null, + team?: ValueTypes["team_bool_exp"] | undefined | null, + teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, + types?: ValueTypes["jsonb_comparison_exp"] | undefined | null, + types2?: ValueTypes["_text_comparison_exp"] | undefined | null, + url?: ValueTypes["String_comparison_exp"] | undefined | null }; /** unique or primary key constraints on table "webhook" */ ["webhook_constraint"]:webhook_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["webhook_delete_at_path_input"]: { - headers?:string[], - types?:string[] + headers?: (string)[], + types?: (string)[] }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["webhook_delete_elem_input"]: { - headers?:number | null, - types?:number | null + headers?: number | undefined | null, + types?: number | undefined | null }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["webhook_delete_key_input"]: { - headers?:string | null, - types?:string | null + headers?: string | undefined | null, + types?: string | undefined | null }; /** input type for inserting data into table "webhook" */ ["webhook_insert_input"]: { - createdAt?:ValueTypes["timestamptz"] | null, - headers?:ValueTypes["jsonb"] | null, - id?:ValueTypes["uuid"] | null, - team?:ValueTypes["team_obj_rel_insert_input"] | null, - teamId?:ValueTypes["uuid"] | null, - types?:ValueTypes["jsonb"] | null, - types2?:ValueTypes["_text"] | null, - url?:string | null + createdAt?: ValueTypes["timestamptz"] | undefined | null, + headers?: ValueTypes["jsonb"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + types?: ValueTypes["jsonb"] | undefined | null, + types2?: ValueTypes["_text"] | undefined | null, + url?: string | undefined | null }; /** aggregate max on columns */ ["webhook_max_fields"]: AliasType<{ @@ -6703,10 +6703,10 @@ end). throws an error if top level container is not an array */ }>; /** order by max() on columns of table "webhook" */ ["webhook_max_order_by"]: { - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - url?:ValueTypes["order_by"] | null + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + url?: ValueTypes["order_by"] | undefined | null }; /** aggregate min on columns */ ["webhook_min_fields"]: AliasType<{ @@ -6718,10 +6718,10 @@ end). throws an error if top level container is not an array */ }>; /** order by min() on columns of table "webhook" */ ["webhook_min_order_by"]: { - createdAt?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - url?:ValueTypes["order_by"] | null + createdAt?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + url?: ValueTypes["order_by"] | undefined | null }; /** response of any mutation on the table "webhook" */ ["webhook_mutation_response"]: AliasType<{ @@ -6733,41 +6733,41 @@ end). throws an error if top level container is not an array */ }>; /** on conflict condition type for table "webhook" */ ["webhook_on_conflict"]: { - constraint:ValueTypes["webhook_constraint"], - update_columns:ValueTypes["webhook_update_column"][], - where?:ValueTypes["webhook_bool_exp"] | null + constraint: ValueTypes["webhook_constraint"], + update_columns: (ValueTypes["webhook_update_column"])[] | undefined | null, + where?: ValueTypes["webhook_bool_exp"] | undefined | null }; /** Ordering options when selecting data from "webhook". */ ["webhook_order_by"]: { - createdAt?:ValueTypes["order_by"] | null, - headers?:ValueTypes["order_by"] | null, - id?:ValueTypes["order_by"] | null, - team?:ValueTypes["team_order_by"] | null, - teamId?:ValueTypes["order_by"] | null, - types?:ValueTypes["order_by"] | null, - types2?:ValueTypes["order_by"] | null, - url?:ValueTypes["order_by"] | null + createdAt?: ValueTypes["order_by"] | undefined | null, + headers?: ValueTypes["order_by"] | undefined | null, + id?: ValueTypes["order_by"] | undefined | null, + team?: ValueTypes["team_order_by"] | undefined | null, + teamId?: ValueTypes["order_by"] | undefined | null, + types?: ValueTypes["order_by"] | undefined | null, + types2?: ValueTypes["order_by"] | undefined | null, + url?: ValueTypes["order_by"] | undefined | null }; /** primary key columns input for table: webhook */ ["webhook_pk_columns_input"]: { - id:ValueTypes["uuid"] + id: ValueTypes["uuid"] }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["webhook_prepend_input"]: { - headers?:ValueTypes["jsonb"] | null, - types?:ValueTypes["jsonb"] | null + headers?: ValueTypes["jsonb"] | undefined | null, + types?: ValueTypes["jsonb"] | undefined | null }; /** select columns of table "webhook" */ ["webhook_select_column"]:webhook_select_column; /** input type for updating data in table "webhook" */ ["webhook_set_input"]: { - createdAt?:ValueTypes["timestamptz"] | null, - headers?:ValueTypes["jsonb"] | null, - id?:ValueTypes["uuid"] | null, - teamId?:ValueTypes["uuid"] | null, - types?:ValueTypes["jsonb"] | null, - types2?:ValueTypes["_text"] | null, - url?:string | null + createdAt?: ValueTypes["timestamptz"] | undefined | null, + headers?: ValueTypes["jsonb"] | undefined | null, + id?: ValueTypes["uuid"] | undefined | null, + teamId?: ValueTypes["uuid"] | undefined | null, + types?: ValueTypes["jsonb"] | undefined | null, + types2?: ValueTypes["_text"] | undefined | null, + url?: string | undefined | null }; /** update columns of table "webhook" */ ["webhook_update_column"]:webhook_update_column @@ -6779,69 +6779,69 @@ export type ModelTypes = { ["_text_comparison_exp"]: GraphQLTypes["_text_comparison_exp"]; /** columns and relationships of "booking" */ ["booking"]: { - bookedAt?:ModelTypes["timestamptz"], - bookerName?:string, - bookingChannel?:ModelTypes["booking_channel_enum"], - checkIn?:ModelTypes["timestamptz"], - checkOut?:ModelTypes["timestamptz"], - confirmationCode?:string, + bookedAt?:ModelTypes["timestamptz"] | undefined, + bookerName?:string | undefined, + bookingChannel?:ModelTypes["booking_channel_enum"] | undefined, + checkIn?:ModelTypes["timestamptz"] | undefined, + checkOut?:ModelTypes["timestamptz"] | undefined, + confirmationCode?:string | undefined, /** An object relationship */ - connection?:ModelTypes["connection"], - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - currency?:ModelTypes["currency_enum"], + connection?:ModelTypes["connection"] | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + currency?:ModelTypes["currency_enum"] | undefined, /** An object relationship */ - entity?:ModelTypes["entity"], - entityId?:ModelTypes["uuid"], - guestName?:string, - guests?:number, + entity?:ModelTypes["entity"] | undefined, + entityId?:ModelTypes["uuid"] | undefined, + guestName?:string | undefined, + guests?:number | undefined, id:ModelTypes["uuid"], - isOTA?:boolean, + isOTA?:boolean | undefined, /** An array relationship */ - lines:ModelTypes["line"][], + lines:Array | undefined, /** An aggregate relationship */ lines_aggregate:ModelTypes["line_aggregate"], - metadata?:ModelTypes["jsonb"], - nights?:number, + metadata?:ModelTypes["jsonb"] | undefined, + nights?:number | undefined, /** An object relationship */ - otaBooking?:ModelTypes["booking"], - otaBookingId?:ModelTypes["uuid"], + otaBooking?:ModelTypes["booking"] | undefined, + otaBookingId?:ModelTypes["uuid"] | undefined, /** An array relationship */ - relatedBookings:ModelTypes["booking"][], + relatedBookings:Array | undefined, /** An aggregate relationship */ relatedBookings_aggregate:ModelTypes["booking_aggregate"], - status?:ModelTypes["booking_status_enum"], + status?:ModelTypes["booking_status_enum"] | undefined, /** An array relationship */ - tags:ModelTypes["tag"][], + tags:Array | undefined, /** An aggregate relationship */ tags_aggregate:ModelTypes["tag_aggregate"], /** An object relationship */ - team?:ModelTypes["team"], - teamId?:ModelTypes["uuid"], - uniqueRef?:string, + team?:ModelTypes["team"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + uniqueRef?:string | undefined, /** An object relationship */ - unit?:ModelTypes["unit"], - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + unit?:ModelTypes["unit"] | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** aggregated selection of "booking" */ ["booking_aggregate"]: { - aggregate?:ModelTypes["booking_aggregate_fields"], - nodes:ModelTypes["booking"][] + aggregate?:ModelTypes["booking_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "booking" */ ["booking_aggregate_fields"]: { - avg?:ModelTypes["booking_avg_fields"], + avg?:ModelTypes["booking_avg_fields"] | undefined, count:number, - max?:ModelTypes["booking_max_fields"], - min?:ModelTypes["booking_min_fields"], - stddev?:ModelTypes["booking_stddev_fields"], - stddev_pop?:ModelTypes["booking_stddev_pop_fields"], - stddev_samp?:ModelTypes["booking_stddev_samp_fields"], - sum?:ModelTypes["booking_sum_fields"], - var_pop?:ModelTypes["booking_var_pop_fields"], - var_samp?:ModelTypes["booking_var_samp_fields"], - variance?:ModelTypes["booking_variance_fields"] + max?:ModelTypes["booking_max_fields"] | undefined, + min?:ModelTypes["booking_min_fields"] | undefined, + stddev?:ModelTypes["booking_stddev_fields"] | undefined, + stddev_pop?:ModelTypes["booking_stddev_pop_fields"] | undefined, + stddev_samp?:ModelTypes["booking_stddev_samp_fields"] | undefined, + sum?:ModelTypes["booking_sum_fields"] | undefined, + var_pop?:ModelTypes["booking_var_pop_fields"] | undefined, + var_samp?:ModelTypes["booking_var_samp_fields"] | undefined, + variance?:ModelTypes["booking_variance_fields"] | undefined }; /** order by aggregate values of table "booking" */ ["booking_aggregate_order_by"]: GraphQLTypes["booking_aggregate_order_by"]; @@ -6851,8 +6851,8 @@ export type ModelTypes = { ["booking_arr_rel_insert_input"]: GraphQLTypes["booking_arr_rel_insert_input"]; /** aggregate avg on columns */ ["booking_avg_fields"]: { - guests?:number, - nights?:number + guests?:number | undefined, + nights?:number | undefined }; /** order by avg() on columns of table "booking" */ ["booking_avg_order_by"]: GraphQLTypes["booking_avg_order_by"]; @@ -6864,14 +6864,14 @@ export type ModelTypes = { }; /** aggregated selection of "booking_channel" */ ["booking_channel_aggregate"]: { - aggregate?:ModelTypes["booking_channel_aggregate_fields"], - nodes:ModelTypes["booking_channel"][] + aggregate?:ModelTypes["booking_channel_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "booking_channel" */ ["booking_channel_aggregate_fields"]: { count:number, - max?:ModelTypes["booking_channel_max_fields"], - min?:ModelTypes["booking_channel_min_fields"] + max?:ModelTypes["booking_channel_max_fields"] | undefined, + min?:ModelTypes["booking_channel_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "booking_channel". All fields are combined with a logical 'AND'. */ ["booking_channel_bool_exp"]: GraphQLTypes["booking_channel_bool_exp"]; @@ -6884,18 +6884,18 @@ export type ModelTypes = { ["booking_channel_insert_input"]: GraphQLTypes["booking_channel_insert_input"]; /** aggregate max on columns */ ["booking_channel_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["booking_channel_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "booking_channel" */ ["booking_channel_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["booking_channel"][] + returning:Array | undefined }; /** on conflict condition type for table "booking_channel" */ ["booking_channel_on_conflict"]: GraphQLTypes["booking_channel_on_conflict"]; @@ -6924,45 +6924,45 @@ end). throws an error if top level container is not an array */ ["booking_insert_input"]: GraphQLTypes["booking_insert_input"]; /** aggregate max on columns */ ["booking_max_fields"]: { - bookedAt?:ModelTypes["timestamptz"], - bookerName?:string, - checkIn?:ModelTypes["timestamptz"], - checkOut?:ModelTypes["timestamptz"], - confirmationCode?:string, - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - entityId?:ModelTypes["uuid"], - guestName?:string, - guests?:number, - id?:ModelTypes["uuid"], - nights?:number, - otaBookingId?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - uniqueRef?:string, - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + bookedAt?:ModelTypes["timestamptz"] | undefined, + bookerName?:string | undefined, + checkIn?:ModelTypes["timestamptz"] | undefined, + checkOut?:ModelTypes["timestamptz"] | undefined, + confirmationCode?:string | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + entityId?:ModelTypes["uuid"] | undefined, + guestName?:string | undefined, + guests?:number | undefined, + id?:ModelTypes["uuid"] | undefined, + nights?:number | undefined, + otaBookingId?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by max() on columns of table "booking" */ ["booking_max_order_by"]: GraphQLTypes["booking_max_order_by"]; /** aggregate min on columns */ ["booking_min_fields"]: { - bookedAt?:ModelTypes["timestamptz"], - bookerName?:string, - checkIn?:ModelTypes["timestamptz"], - checkOut?:ModelTypes["timestamptz"], - confirmationCode?:string, - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - entityId?:ModelTypes["uuid"], - guestName?:string, - guests?:number, - id?:ModelTypes["uuid"], - nights?:number, - otaBookingId?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - uniqueRef?:string, - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + bookedAt?:ModelTypes["timestamptz"] | undefined, + bookerName?:string | undefined, + checkIn?:ModelTypes["timestamptz"] | undefined, + checkOut?:ModelTypes["timestamptz"] | undefined, + confirmationCode?:string | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + entityId?:ModelTypes["uuid"] | undefined, + guestName?:string | undefined, + guests?:number | undefined, + id?:ModelTypes["uuid"] | undefined, + nights?:number | undefined, + otaBookingId?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by min() on columns of table "booking" */ ["booking_min_order_by"]: GraphQLTypes["booking_min_order_by"]; @@ -6971,7 +6971,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["booking"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "booking" */ ["booking_obj_rel_insert_input"]: GraphQLTypes["booking_obj_rel_insert_input"]; @@ -6992,29 +6992,29 @@ end). throws an error if top level container is not an array */ ["booking_status_enum_comparison_exp"]: GraphQLTypes["booking_status_enum_comparison_exp"]; /** aggregate stddev on columns */ ["booking_stddev_fields"]: { - guests?:number, - nights?:number + guests?:number | undefined, + nights?:number | undefined }; /** order by stddev() on columns of table "booking" */ ["booking_stddev_order_by"]: GraphQLTypes["booking_stddev_order_by"]; /** aggregate stddev_pop on columns */ ["booking_stddev_pop_fields"]: { - guests?:number, - nights?:number + guests?:number | undefined, + nights?:number | undefined }; /** order by stddev_pop() on columns of table "booking" */ ["booking_stddev_pop_order_by"]: GraphQLTypes["booking_stddev_pop_order_by"]; /** aggregate stddev_samp on columns */ ["booking_stddev_samp_fields"]: { - guests?:number, - nights?:number + guests?:number | undefined, + nights?:number | undefined }; /** order by stddev_samp() on columns of table "booking" */ ["booking_stddev_samp_order_by"]: GraphQLTypes["booking_stddev_samp_order_by"]; /** aggregate sum on columns */ ["booking_sum_fields"]: { - guests?:number, - nights?:number + guests?:number | undefined, + nights?:number | undefined }; /** order by sum() on columns of table "booking" */ ["booking_sum_order_by"]: GraphQLTypes["booking_sum_order_by"]; @@ -7022,22 +7022,22 @@ end). throws an error if top level container is not an array */ ["booking_update_column"]: GraphQLTypes["booking_update_column"]; /** aggregate var_pop on columns */ ["booking_var_pop_fields"]: { - guests?:number, - nights?:number + guests?:number | undefined, + nights?:number | undefined }; /** order by var_pop() on columns of table "booking" */ ["booking_var_pop_order_by"]: GraphQLTypes["booking_var_pop_order_by"]; /** aggregate var_samp on columns */ ["booking_var_samp_fields"]: { - guests?:number, - nights?:number + guests?:number | undefined, + nights?:number | undefined }; /** order by var_samp() on columns of table "booking" */ ["booking_var_samp_order_by"]: GraphQLTypes["booking_var_samp_order_by"]; /** aggregate variance on columns */ ["booking_variance_fields"]: { - guests?:number, - nights?:number + guests?:number | undefined, + nights?:number | undefined }; /** order by variance() on columns of table "booking" */ ["booking_variance_order_by"]: GraphQLTypes["booking_variance_order_by"]; @@ -7047,14 +7047,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "booking_status" */ ["bookingStatus_aggregate"]: { - aggregate?:ModelTypes["bookingStatus_aggregate_fields"], - nodes:ModelTypes["bookingStatus"][] + aggregate?:ModelTypes["bookingStatus_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "booking_status" */ ["bookingStatus_aggregate_fields"]: { count:number, - max?:ModelTypes["bookingStatus_max_fields"], - min?:ModelTypes["bookingStatus_min_fields"] + max?:ModelTypes["bookingStatus_max_fields"] | undefined, + min?:ModelTypes["bookingStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "booking_status". All fields are combined with a logical 'AND'. */ ["bookingStatus_bool_exp"]: GraphQLTypes["bookingStatus_bool_exp"]; @@ -7064,18 +7064,18 @@ end). throws an error if top level container is not an array */ ["bookingStatus_insert_input"]: GraphQLTypes["bookingStatus_insert_input"]; /** aggregate max on columns */ ["bookingStatus_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["bookingStatus_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "booking_status" */ ["bookingStatus_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["bookingStatus"][] + returning:Array | undefined }; /** on conflict condition type for table "booking_status" */ ["bookingStatus_on_conflict"]: GraphQLTypes["bookingStatus_on_conflict"]; @@ -7097,14 +7097,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "classification" */ ["classification_aggregate"]: { - aggregate?:ModelTypes["classification_aggregate_fields"], - nodes:ModelTypes["classification"][] + aggregate?:ModelTypes["classification_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "classification" */ ["classification_aggregate_fields"]: { count:number, - max?:ModelTypes["classification_max_fields"], - min?:ModelTypes["classification_min_fields"] + max?:ModelTypes["classification_max_fields"] | undefined, + min?:ModelTypes["classification_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "classification". All fields are combined with a logical 'AND'. */ ["classification_bool_exp"]: GraphQLTypes["classification_bool_exp"]; @@ -7117,18 +7117,18 @@ end). throws an error if top level container is not an array */ ["classification_insert_input"]: GraphQLTypes["classification_insert_input"]; /** aggregate max on columns */ ["classification_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["classification_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "classification" */ ["classification_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["classification"][] + returning:Array | undefined }; /** on conflict condition type for table "classification" */ ["classification_on_conflict"]: GraphQLTypes["classification_on_conflict"]; @@ -7145,13 +7145,13 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "connection" */ ["connection"]: { /** An array relationship */ - bookings:ModelTypes["booking"][], + bookings:Array | undefined, /** An aggregate relationship */ bookings_aggregate:ModelTypes["booking_aggregate"], createdAt:ModelTypes["timestamptz"], - credentials?:ModelTypes["jsonb"], + credentials?:ModelTypes["jsonb"] | undefined, /** An array relationship */ - entities:ModelTypes["entity"][], + entities:Array | undefined, /** An aggregate relationship */ entities_aggregate:ModelTypes["entity_aggregate"], id:ModelTypes["uuid"], @@ -7159,47 +7159,47 @@ end). throws an error if top level container is not an array */ integration:ModelTypes["integration"], integrationId:ModelTypes["uuid"], /** An array relationship */ - jobs:ModelTypes["job"][], + jobs:Array | undefined, /** An aggregate relationship */ jobs_aggregate:ModelTypes["job_aggregate"], /** An array relationship */ - lines:ModelTypes["line"][], + lines:Array | undefined, /** An aggregate relationship */ lines_aggregate:ModelTypes["line_aggregate"], /** An array relationship */ - metrics:ModelTypes["metric"][], + metrics:Array | undefined, /** An aggregate relationship */ metrics_aggregate:ModelTypes["metric_aggregate"], name:string, /** An array relationship */ - payments:ModelTypes["payment"][], + payments:Array | undefined, /** An aggregate relationship */ payments_aggregate:ModelTypes["payment_aggregate"], - persistentState?:ModelTypes["jsonb"], - status?:string, + persistentState?:ModelTypes["jsonb"] | undefined, + status?:string | undefined, /** An array relationship */ - tags:ModelTypes["tag"][], + tags:Array | undefined, /** An aggregate relationship */ tags_aggregate:ModelTypes["tag_aggregate"], /** An object relationship */ team:ModelTypes["team"], teamId:ModelTypes["uuid"], /** An array relationship */ - units:ModelTypes["unit"][], + units:Array | undefined, /** An aggregate relationship */ units_aggregate:ModelTypes["unit_aggregate"], - webhookKey?:string + webhookKey?:string | undefined }; /** aggregated selection of "connection" */ ["connection_aggregate"]: { - aggregate?:ModelTypes["connection_aggregate_fields"], - nodes:ModelTypes["connection"][] + aggregate?:ModelTypes["connection_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "connection" */ ["connection_aggregate_fields"]: { count:number, - max?:ModelTypes["connection_max_fields"], - min?:ModelTypes["connection_min_fields"] + max?:ModelTypes["connection_max_fields"] | undefined, + min?:ModelTypes["connection_min_fields"] | undefined }; /** order by aggregate values of table "connection" */ ["connection_aggregate_order_by"]: GraphQLTypes["connection_aggregate_order_by"]; @@ -7222,25 +7222,25 @@ end). throws an error if top level container is not an array */ ["connection_insert_input"]: GraphQLTypes["connection_insert_input"]; /** aggregate max on columns */ ["connection_max_fields"]: { - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - integrationId?:ModelTypes["uuid"], - name?:string, - status?:string, - teamId?:ModelTypes["uuid"], - webhookKey?:string + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + integrationId?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + status?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + webhookKey?:string | undefined }; /** order by max() on columns of table "connection" */ ["connection_max_order_by"]: GraphQLTypes["connection_max_order_by"]; /** aggregate min on columns */ ["connection_min_fields"]: { - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - integrationId?:ModelTypes["uuid"], - name?:string, - status?:string, - teamId?:ModelTypes["uuid"], - webhookKey?:string + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + integrationId?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + status?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + webhookKey?:string | undefined }; /** order by min() on columns of table "connection" */ ["connection_min_order_by"]: GraphQLTypes["connection_min_order_by"]; @@ -7249,7 +7249,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["connection"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "connection" */ ["connection_obj_rel_insert_input"]: GraphQLTypes["connection_obj_rel_insert_input"]; @@ -7273,14 +7273,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "currency" */ ["currency_aggregate"]: { - aggregate?:ModelTypes["currency_aggregate_fields"], - nodes:ModelTypes["currency"][] + aggregate?:ModelTypes["currency_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "currency" */ ["currency_aggregate_fields"]: { count:number, - max?:ModelTypes["currency_max_fields"], - min?:ModelTypes["currency_min_fields"] + max?:ModelTypes["currency_max_fields"] | undefined, + min?:ModelTypes["currency_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "currency". All fields are combined with a logical 'AND'. */ ["currency_bool_exp"]: GraphQLTypes["currency_bool_exp"]; @@ -7293,18 +7293,18 @@ end). throws an error if top level container is not an array */ ["currency_insert_input"]: GraphQLTypes["currency_insert_input"]; /** aggregate max on columns */ ["currency_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["currency_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "currency" */ ["currency_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["currency"][] + returning:Array | undefined }; /** on conflict condition type for table "currency" */ ["currency_on_conflict"]: GraphQLTypes["currency_on_conflict"]; @@ -7321,7 +7321,7 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "entity" */ ["entity"]: { /** An array relationship */ - bookings:ModelTypes["booking"][], + bookings:Array | undefined, /** An aggregate relationship */ bookings_aggregate:ModelTypes["booking_aggregate"], /** An object relationship */ @@ -7329,50 +7329,50 @@ end). throws an error if top level container is not an array */ connectionId:ModelTypes["uuid"], createdAt:ModelTypes["timestamptz"], description:string, - diffJson?:ModelTypes["jsonb"], - hash?:string, + diffJson?:ModelTypes["jsonb"] | undefined, + hash?:string | undefined, id:ModelTypes["uuid"], /** An object relationship */ - job?:ModelTypes["job"], - jobId?:ModelTypes["uuid"], - json?:ModelTypes["jsonb"], - normalizedJson?:ModelTypes["jsonb"], - normalizedType?:ModelTypes["normalized_type_enum"], - parsedAt?:ModelTypes["timestamptz"], + job?:ModelTypes["job"] | undefined, + jobId?:ModelTypes["uuid"] | undefined, + json?:ModelTypes["jsonb"] | undefined, + normalizedJson?:ModelTypes["jsonb"] | undefined, + normalizedType?:ModelTypes["normalized_type_enum"] | undefined, + parsedAt?:ModelTypes["timestamptz"] | undefined, /** An array relationship */ - payments:ModelTypes["payment"][], + payments:Array | undefined, /** An aggregate relationship */ payments_aggregate:ModelTypes["payment_aggregate"], /** An object relationship */ - predecessorEntity?:ModelTypes["entity"], - predecessorEntityId?:ModelTypes["uuid"], + predecessorEntity?:ModelTypes["entity"] | undefined, + predecessorEntityId?:ModelTypes["uuid"] | undefined, status:ModelTypes["entity_status_enum"], - statusText?:string, + statusText?:string | undefined, /** An array relationship */ - successorEntities:ModelTypes["entity"][], + successorEntities:Array | undefined, /** An aggregate relationship */ successorEntities_aggregate:ModelTypes["entity_aggregate"], /** An object relationship */ - team?:ModelTypes["team"], - teamId?:ModelTypes["uuid"], + team?:ModelTypes["team"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, type:string, - uniqueRef?:string, + uniqueRef?:string | undefined, /** An array relationship */ - units:ModelTypes["unit"][], + units:Array | undefined, /** An aggregate relationship */ units_aggregate:ModelTypes["unit_aggregate"], updatedAt:ModelTypes["timestamptz"] }; /** aggregated selection of "entity" */ ["entity_aggregate"]: { - aggregate?:ModelTypes["entity_aggregate_fields"], - nodes:ModelTypes["entity"][] + aggregate?:ModelTypes["entity_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "entity" */ ["entity_aggregate_fields"]: { count:number, - max?:ModelTypes["entity_max_fields"], - min?:ModelTypes["entity_min_fields"] + max?:ModelTypes["entity_max_fields"] | undefined, + min?:ModelTypes["entity_min_fields"] | undefined }; /** order by aggregate values of table "entity" */ ["entity_aggregate_order_by"]: GraphQLTypes["entity_aggregate_order_by"]; @@ -7395,37 +7395,37 @@ end). throws an error if top level container is not an array */ ["entity_insert_input"]: GraphQLTypes["entity_insert_input"]; /** aggregate max on columns */ ["entity_max_fields"]: { - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - description?:string, - hash?:string, - id?:ModelTypes["uuid"], - jobId?:ModelTypes["uuid"], - parsedAt?:ModelTypes["timestamptz"], - predecessorEntityId?:ModelTypes["uuid"], - statusText?:string, - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - updatedAt?:ModelTypes["timestamptz"] + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + description?:string | undefined, + hash?:string | undefined, + id?:ModelTypes["uuid"] | undefined, + jobId?:ModelTypes["uuid"] | undefined, + parsedAt?:ModelTypes["timestamptz"] | undefined, + predecessorEntityId?:ModelTypes["uuid"] | undefined, + statusText?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by max() on columns of table "entity" */ ["entity_max_order_by"]: GraphQLTypes["entity_max_order_by"]; /** aggregate min on columns */ ["entity_min_fields"]: { - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - description?:string, - hash?:string, - id?:ModelTypes["uuid"], - jobId?:ModelTypes["uuid"], - parsedAt?:ModelTypes["timestamptz"], - predecessorEntityId?:ModelTypes["uuid"], - statusText?:string, - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - updatedAt?:ModelTypes["timestamptz"] + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + description?:string | undefined, + hash?:string | undefined, + id?:ModelTypes["uuid"] | undefined, + jobId?:ModelTypes["uuid"] | undefined, + parsedAt?:ModelTypes["timestamptz"] | undefined, + predecessorEntityId?:ModelTypes["uuid"] | undefined, + statusText?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by min() on columns of table "entity" */ ["entity_min_order_by"]: GraphQLTypes["entity_min_order_by"]; @@ -7434,7 +7434,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["entity"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "entity" */ ["entity_obj_rel_insert_input"]: GraphQLTypes["entity_obj_rel_insert_input"]; @@ -7461,14 +7461,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "entity_status" */ ["entityStatus_aggregate"]: { - aggregate?:ModelTypes["entityStatus_aggregate_fields"], - nodes:ModelTypes["entityStatus"][] + aggregate?:ModelTypes["entityStatus_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "entity_status" */ ["entityStatus_aggregate_fields"]: { count:number, - max?:ModelTypes["entityStatus_max_fields"], - min?:ModelTypes["entityStatus_min_fields"] + max?:ModelTypes["entityStatus_max_fields"] | undefined, + min?:ModelTypes["entityStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "entity_status". All fields are combined with a logical 'AND'. */ ["entityStatus_bool_exp"]: GraphQLTypes["entityStatus_bool_exp"]; @@ -7478,18 +7478,18 @@ end). throws an error if top level container is not an array */ ["entityStatus_insert_input"]: GraphQLTypes["entityStatus_insert_input"]; /** aggregate max on columns */ ["entityStatus_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["entityStatus_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "entity_status" */ ["entityStatus_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["entityStatus"][] + returning:Array | undefined }; /** on conflict condition type for table "entity_status" */ ["entityStatus_on_conflict"]: GraphQLTypes["entityStatus_on_conflict"]; @@ -7510,37 +7510,37 @@ end). throws an error if top level container is not an array */ ["Int_comparison_exp"]: GraphQLTypes["Int_comparison_exp"]; /** columns and relationships of "integration" */ ["integration"]: { - apiDevUrl?:string, + apiDevUrl?:string | undefined, apiUrl:string, /** An array relationship */ - connections:ModelTypes["connection"][], + connections:Array | undefined, /** An aggregate relationship */ connections_aggregate:ModelTypes["connection_aggregate"], - icon?:string, + icon?:string | undefined, id:ModelTypes["uuid"], - isApproved?:boolean, + isApproved?:boolean | undefined, isPrivate:boolean, /** An array relationship */ - jobs:ModelTypes["job"][], + jobs:Array | undefined, /** An aggregate relationship */ jobs_aggregate:ModelTypes["job_aggregate"], name:string, /** An object relationship */ - team?:ModelTypes["team"], - teamId?:ModelTypes["uuid"], + team?:ModelTypes["team"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, type:ModelTypes["integration_type_enum"], uniqueRef:string }; /** aggregated selection of "integration" */ ["integration_aggregate"]: { - aggregate?:ModelTypes["integration_aggregate_fields"], - nodes:ModelTypes["integration"][] + aggregate?:ModelTypes["integration_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "integration" */ ["integration_aggregate_fields"]: { count:number, - max?:ModelTypes["integration_max_fields"], - min?:ModelTypes["integration_min_fields"] + max?:ModelTypes["integration_max_fields"] | undefined, + min?:ModelTypes["integration_min_fields"] | undefined }; /** order by aggregate values of table "integration" */ ["integration_aggregate_order_by"]: GraphQLTypes["integration_aggregate_order_by"]; @@ -7554,25 +7554,25 @@ end). throws an error if top level container is not an array */ ["integration_insert_input"]: GraphQLTypes["integration_insert_input"]; /** aggregate max on columns */ ["integration_max_fields"]: { - apiDevUrl?:string, - apiUrl?:string, - icon?:string, - id?:ModelTypes["uuid"], - name?:string, - teamId?:ModelTypes["uuid"], - uniqueRef?:string + apiDevUrl?:string | undefined, + apiUrl?:string | undefined, + icon?:string | undefined, + id?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + uniqueRef?:string | undefined }; /** order by max() on columns of table "integration" */ ["integration_max_order_by"]: GraphQLTypes["integration_max_order_by"]; /** aggregate min on columns */ ["integration_min_fields"]: { - apiDevUrl?:string, - apiUrl?:string, - icon?:string, - id?:ModelTypes["uuid"], - name?:string, - teamId?:ModelTypes["uuid"], - uniqueRef?:string + apiDevUrl?:string | undefined, + apiUrl?:string | undefined, + icon?:string | undefined, + id?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + uniqueRef?:string | undefined }; /** order by min() on columns of table "integration" */ ["integration_min_order_by"]: GraphQLTypes["integration_min_order_by"]; @@ -7581,7 +7581,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["integration"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "integration" */ ["integration_obj_rel_insert_input"]: GraphQLTypes["integration_obj_rel_insert_input"]; @@ -7606,14 +7606,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "integration_type" */ ["integrationType_aggregate"]: { - aggregate?:ModelTypes["integrationType_aggregate_fields"], - nodes:ModelTypes["integrationType"][] + aggregate?:ModelTypes["integrationType_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "integration_type" */ ["integrationType_aggregate_fields"]: { count:number, - max?:ModelTypes["integrationType_max_fields"], - min?:ModelTypes["integrationType_min_fields"] + max?:ModelTypes["integrationType_max_fields"] | undefined, + min?:ModelTypes["integrationType_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "integration_type". All fields are combined with a logical 'AND'. */ ["integrationType_bool_exp"]: GraphQLTypes["integrationType_bool_exp"]; @@ -7623,18 +7623,18 @@ end). throws an error if top level container is not an array */ ["integrationType_insert_input"]: GraphQLTypes["integrationType_insert_input"]; /** aggregate max on columns */ ["integrationType_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["integrationType_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "integration_type" */ ["integrationType_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["integrationType"][] + returning:Array | undefined }; /** on conflict condition type for table "integration_type" */ ["integrationType_on_conflict"]: GraphQLTypes["integrationType_on_conflict"]; @@ -7650,33 +7650,33 @@ end). throws an error if top level container is not an array */ ["integrationType_update_column"]: GraphQLTypes["integrationType_update_column"]; /** columns and relationships of "issue" */ ["issue"]: { - code?:string, + code?:string | undefined, createdAt:ModelTypes["timestamptz"], id:ModelTypes["uuid"], - isPublic?:boolean, - isResolved?:boolean, + isPublic?:boolean | undefined, + isResolved?:boolean | undefined, /** An object relationship */ job:ModelTypes["job"], jobId:ModelTypes["uuid"], - message?:string, - requestParams?:ModelTypes["jsonb"], - resolveParams?:ModelTypes["jsonb"], + message?:string | undefined, + requestParams?:ModelTypes["jsonb"] | undefined, + resolveParams?:ModelTypes["jsonb"] | undefined, /** An object relationship */ team:ModelTypes["team"], teamId:ModelTypes["uuid"], - type?:string, + type?:string | undefined, updatedAt:ModelTypes["timestamptz"] }; /** aggregated selection of "issue" */ ["issue_aggregate"]: { - aggregate?:ModelTypes["issue_aggregate_fields"], - nodes:ModelTypes["issue"][] + aggregate?:ModelTypes["issue_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "issue" */ ["issue_aggregate_fields"]: { count:number, - max?:ModelTypes["issue_max_fields"], - min?:ModelTypes["issue_min_fields"] + max?:ModelTypes["issue_max_fields"] | undefined, + min?:ModelTypes["issue_min_fields"] | undefined }; /** order by aggregate values of table "issue" */ ["issue_aggregate_order_by"]: GraphQLTypes["issue_aggregate_order_by"]; @@ -7699,27 +7699,27 @@ end). throws an error if top level container is not an array */ ["issue_insert_input"]: GraphQLTypes["issue_insert_input"]; /** aggregate max on columns */ ["issue_max_fields"]: { - code?:string, - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - jobId?:ModelTypes["uuid"], - message?:string, - teamId?:ModelTypes["uuid"], - type?:string, - updatedAt?:ModelTypes["timestamptz"] + code?:string | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + jobId?:ModelTypes["uuid"] | undefined, + message?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by max() on columns of table "issue" */ ["issue_max_order_by"]: GraphQLTypes["issue_max_order_by"]; /** aggregate min on columns */ ["issue_min_fields"]: { - code?:string, - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - jobId?:ModelTypes["uuid"], - message?:string, - teamId?:ModelTypes["uuid"], - type?:string, - updatedAt?:ModelTypes["timestamptz"] + code?:string | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + jobId?:ModelTypes["uuid"] | undefined, + message?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by min() on columns of table "issue" */ ["issue_min_order_by"]: GraphQLTypes["issue_min_order_by"]; @@ -7728,7 +7728,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["issue"][] + returning:Array | undefined }; /** on conflict condition type for table "issue" */ ["issue_on_conflict"]: GraphQLTypes["issue_on_conflict"]; @@ -7746,51 +7746,51 @@ end). throws an error if top level container is not an array */ ["issue_update_column"]: GraphQLTypes["issue_update_column"]; /** columns and relationships of "job" */ ["job"]: { - apiVersion?:string, + apiVersion?:string | undefined, /** An object relationship */ - connection?:ModelTypes["connection"], - connectionId?:ModelTypes["uuid"], + connection?:ModelTypes["connection"] | undefined, + connectionId?:ModelTypes["uuid"] | undefined, createdAt:ModelTypes["timestamptz"], - endedAt?:ModelTypes["timestamptz"], + endedAt?:ModelTypes["timestamptz"] | undefined, /** An array relationship */ - entities:ModelTypes["entity"][], + entities:Array | undefined, /** An aggregate relationship */ entities_aggregate:ModelTypes["entity_aggregate"], id:ModelTypes["uuid"], /** An object relationship */ - integration?:ModelTypes["integration"], - integrationId?:ModelTypes["uuid"], - integrationSdkVersion?:string, - integrationVersion?:string, + integration?:ModelTypes["integration"] | undefined, + integrationId?:ModelTypes["uuid"] | undefined, + integrationSdkVersion?:string | undefined, + integrationVersion?:string | undefined, /** An array relationship */ - issues:ModelTypes["issue"][], + issues:Array | undefined, /** An aggregate relationship */ issues_aggregate:ModelTypes["issue_aggregate"], - logFile?:string, - logLink?:string, - logs?:ModelTypes["jsonb"], - method?:ModelTypes["job_method_enum"], - params?:ModelTypes["jsonb"], - requestId?:string, - response?:ModelTypes["jsonb"], - sdkVersion?:string, - startedAt?:ModelTypes["timestamptz"], - status?:ModelTypes["job_status_enum"], + logFile?:string | undefined, + logLink?:string | undefined, + logs?:ModelTypes["jsonb"] | undefined, + method?:ModelTypes["job_method_enum"] | undefined, + params?:ModelTypes["jsonb"] | undefined, + requestId?:string | undefined, + response?:ModelTypes["jsonb"] | undefined, + sdkVersion?:string | undefined, + startedAt?:ModelTypes["timestamptz"] | undefined, + status?:ModelTypes["job_status_enum"] | undefined, /** An object relationship */ - team?:ModelTypes["team"], - teamId?:ModelTypes["uuid"], + team?:ModelTypes["team"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, updatedAt:ModelTypes["timestamptz"] }; /** aggregated selection of "job" */ ["job_aggregate"]: { - aggregate?:ModelTypes["job_aggregate_fields"], - nodes:ModelTypes["job"][] + aggregate?:ModelTypes["job_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "job" */ ["job_aggregate_fields"]: { count:number, - max?:ModelTypes["job_max_fields"], - min?:ModelTypes["job_min_fields"] + max?:ModelTypes["job_max_fields"] | undefined, + min?:ModelTypes["job_min_fields"] | undefined }; /** order by aggregate values of table "job" */ ["job_aggregate_order_by"]: GraphQLTypes["job_aggregate_order_by"]; @@ -7813,21 +7813,21 @@ end). throws an error if top level container is not an array */ ["job_insert_input"]: GraphQLTypes["job_insert_input"]; /** aggregate max on columns */ ["job_max_fields"]: { - apiVersion?:string, - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - endedAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - integrationId?:ModelTypes["uuid"], - integrationSdkVersion?:string, - integrationVersion?:string, - logFile?:string, - logLink?:string, - requestId?:string, - sdkVersion?:string, - startedAt?:ModelTypes["timestamptz"], - teamId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + apiVersion?:string | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + endedAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + integrationId?:ModelTypes["uuid"] | undefined, + integrationSdkVersion?:string | undefined, + integrationVersion?:string | undefined, + logFile?:string | undefined, + logLink?:string | undefined, + requestId?:string | undefined, + sdkVersion?:string | undefined, + startedAt?:ModelTypes["timestamptz"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by max() on columns of table "job" */ ["job_max_order_by"]: GraphQLTypes["job_max_order_by"]; @@ -7836,21 +7836,21 @@ end). throws an error if top level container is not an array */ ["job_method_enum_comparison_exp"]: GraphQLTypes["job_method_enum_comparison_exp"]; /** aggregate min on columns */ ["job_min_fields"]: { - apiVersion?:string, - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - endedAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - integrationId?:ModelTypes["uuid"], - integrationSdkVersion?:string, - integrationVersion?:string, - logFile?:string, - logLink?:string, - requestId?:string, - sdkVersion?:string, - startedAt?:ModelTypes["timestamptz"], - teamId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + apiVersion?:string | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + endedAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + integrationId?:ModelTypes["uuid"] | undefined, + integrationSdkVersion?:string | undefined, + integrationVersion?:string | undefined, + logFile?:string | undefined, + logLink?:string | undefined, + requestId?:string | undefined, + sdkVersion?:string | undefined, + startedAt?:ModelTypes["timestamptz"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by min() on columns of table "job" */ ["job_min_order_by"]: GraphQLTypes["job_min_order_by"]; @@ -7859,7 +7859,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["job"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "job" */ ["job_obj_rel_insert_input"]: GraphQLTypes["job_obj_rel_insert_input"]; @@ -7886,14 +7886,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "job_method" */ ["jobMethod_aggregate"]: { - aggregate?:ModelTypes["jobMethod_aggregate_fields"], - nodes:ModelTypes["jobMethod"][] + aggregate?:ModelTypes["jobMethod_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "job_method" */ ["jobMethod_aggregate_fields"]: { count:number, - max?:ModelTypes["jobMethod_max_fields"], - min?:ModelTypes["jobMethod_min_fields"] + max?:ModelTypes["jobMethod_max_fields"] | undefined, + min?:ModelTypes["jobMethod_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "job_method". All fields are combined with a logical 'AND'. */ ["jobMethod_bool_exp"]: GraphQLTypes["jobMethod_bool_exp"]; @@ -7903,18 +7903,18 @@ end). throws an error if top level container is not an array */ ["jobMethod_insert_input"]: GraphQLTypes["jobMethod_insert_input"]; /** aggregate max on columns */ ["jobMethod_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["jobMethod_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "job_method" */ ["jobMethod_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["jobMethod"][] + returning:Array | undefined }; /** on conflict condition type for table "job_method" */ ["jobMethod_on_conflict"]: GraphQLTypes["jobMethod_on_conflict"]; @@ -7934,14 +7934,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "job_status" */ ["jobStatus_aggregate"]: { - aggregate?:ModelTypes["jobStatus_aggregate_fields"], - nodes:ModelTypes["jobStatus"][] + aggregate?:ModelTypes["jobStatus_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "job_status" */ ["jobStatus_aggregate_fields"]: { count:number, - max?:ModelTypes["jobStatus_max_fields"], - min?:ModelTypes["jobStatus_min_fields"] + max?:ModelTypes["jobStatus_max_fields"] | undefined, + min?:ModelTypes["jobStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "job_status". All fields are combined with a logical 'AND'. */ ["jobStatus_bool_exp"]: GraphQLTypes["jobStatus_bool_exp"]; @@ -7951,18 +7951,18 @@ end). throws an error if top level container is not an array */ ["jobStatus_insert_input"]: GraphQLTypes["jobStatus_insert_input"]; /** aggregate max on columns */ ["jobStatus_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["jobStatus_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "job_status" */ ["jobStatus_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["jobStatus"][] + returning:Array | undefined }; /** on conflict condition type for table "job_status" */ ["jobStatus_on_conflict"]: GraphQLTypes["jobStatus_on_conflict"]; @@ -7982,59 +7982,59 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "line" */ ["line"]: { /** An object relationship */ - booking?:ModelTypes["booking"], - bookingId?:ModelTypes["uuid"], - centTotal?:number, - classification?:ModelTypes["classification_enum"], + booking?:ModelTypes["booking"] | undefined, + bookingId?:ModelTypes["uuid"] | undefined, + centTotal?:number | undefined, + classification?:ModelTypes["classification_enum"] | undefined, /** An object relationship */ - connection?:ModelTypes["connection"], - connectionId?:ModelTypes["uuid"], + connection?:ModelTypes["connection"] | undefined, + connectionId?:ModelTypes["uuid"] | undefined, createdAt:ModelTypes["timestamptz"], - description?:string, + description?:string | undefined, /** An array relationship */ - enhancementLines:ModelTypes["line"][], + enhancementLines:Array | undefined, /** An aggregate relationship */ enhancementLines_aggregate:ModelTypes["line_aggregate"], /** An object relationship */ - enhancingLine?:ModelTypes["line"], - enhancingLineId?:ModelTypes["uuid"], + enhancingLine?:ModelTypes["line"] | undefined, + enhancingLineId?:ModelTypes["uuid"] | undefined, id:ModelTypes["uuid"], - invoiceStatus?:string, - isEnhanced?:boolean, - metadata?:ModelTypes["jsonb"], - originCentTotal?:number, - originCurrency?:string, - originExchangeRate?:ModelTypes["numeric"], + invoiceStatus?:string | undefined, + isEnhanced?:boolean | undefined, + metadata?:ModelTypes["jsonb"] | undefined, + originCentTotal?:number | undefined, + originCurrency?:string | undefined, + originExchangeRate?:ModelTypes["numeric"] | undefined, /** An object relationship */ - payment?:ModelTypes["payment"], - paymentId?:ModelTypes["uuid"], - subclassification?:ModelTypes["subclassification_enum"], + payment?:ModelTypes["payment"] | undefined, + paymentId?:ModelTypes["uuid"] | undefined, + subclassification?:ModelTypes["subclassification_enum"] | undefined, /** An object relationship */ - team?:ModelTypes["team"], - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + team?:ModelTypes["team"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** aggregated selection of "line" */ ["line_aggregate"]: { - aggregate?:ModelTypes["line_aggregate_fields"], - nodes:ModelTypes["line"][] + aggregate?:ModelTypes["line_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "line" */ ["line_aggregate_fields"]: { - avg?:ModelTypes["line_avg_fields"], + avg?:ModelTypes["line_avg_fields"] | undefined, count:number, - max?:ModelTypes["line_max_fields"], - min?:ModelTypes["line_min_fields"], - stddev?:ModelTypes["line_stddev_fields"], - stddev_pop?:ModelTypes["line_stddev_pop_fields"], - stddev_samp?:ModelTypes["line_stddev_samp_fields"], - sum?:ModelTypes["line_sum_fields"], - var_pop?:ModelTypes["line_var_pop_fields"], - var_samp?:ModelTypes["line_var_samp_fields"], - variance?:ModelTypes["line_variance_fields"] + max?:ModelTypes["line_max_fields"] | undefined, + min?:ModelTypes["line_min_fields"] | undefined, + stddev?:ModelTypes["line_stddev_fields"] | undefined, + stddev_pop?:ModelTypes["line_stddev_pop_fields"] | undefined, + stddev_samp?:ModelTypes["line_stddev_samp_fields"] | undefined, + sum?:ModelTypes["line_sum_fields"] | undefined, + var_pop?:ModelTypes["line_var_pop_fields"] | undefined, + var_samp?:ModelTypes["line_var_samp_fields"] | undefined, + variance?:ModelTypes["line_variance_fields"] | undefined }; /** order by aggregate values of table "line" */ ["line_aggregate_order_by"]: GraphQLTypes["line_aggregate_order_by"]; @@ -8044,9 +8044,9 @@ end). throws an error if top level container is not an array */ ["line_arr_rel_insert_input"]: GraphQLTypes["line_arr_rel_insert_input"]; /** aggregate avg on columns */ ["line_avg_fields"]: { - centTotal?:number, - originCentTotal?:number, - originExchangeRate?:number + centTotal?:number | undefined, + originCentTotal?:number | undefined, + originExchangeRate?:number | undefined }; /** order by avg() on columns of table "line" */ ["line_avg_order_by"]: GraphQLTypes["line_avg_order_by"]; @@ -8067,45 +8067,45 @@ end). throws an error if top level container is not an array */ ["line_insert_input"]: GraphQLTypes["line_insert_input"]; /** aggregate max on columns */ ["line_max_fields"]: { - bookingId?:ModelTypes["uuid"], - centTotal?:number, - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - description?:string, - enhancingLineId?:ModelTypes["uuid"], - id?:ModelTypes["uuid"], - invoiceStatus?:string, - originCentTotal?:number, - originCurrency?:string, - originExchangeRate?:ModelTypes["numeric"], - paymentId?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + bookingId?:ModelTypes["uuid"] | undefined, + centTotal?:number | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + description?:string | undefined, + enhancingLineId?:ModelTypes["uuid"] | undefined, + id?:ModelTypes["uuid"] | undefined, + invoiceStatus?:string | undefined, + originCentTotal?:number | undefined, + originCurrency?:string | undefined, + originExchangeRate?:ModelTypes["numeric"] | undefined, + paymentId?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by max() on columns of table "line" */ ["line_max_order_by"]: GraphQLTypes["line_max_order_by"]; /** aggregate min on columns */ ["line_min_fields"]: { - bookingId?:ModelTypes["uuid"], - centTotal?:number, - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - description?:string, - enhancingLineId?:ModelTypes["uuid"], - id?:ModelTypes["uuid"], - invoiceStatus?:string, - originCentTotal?:number, - originCurrency?:string, - originExchangeRate?:ModelTypes["numeric"], - paymentId?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + bookingId?:ModelTypes["uuid"] | undefined, + centTotal?:number | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + description?:string | undefined, + enhancingLineId?:ModelTypes["uuid"] | undefined, + id?:ModelTypes["uuid"] | undefined, + invoiceStatus?:string | undefined, + originCentTotal?:number | undefined, + originCurrency?:string | undefined, + originExchangeRate?:ModelTypes["numeric"] | undefined, + paymentId?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by min() on columns of table "line" */ ["line_min_order_by"]: GraphQLTypes["line_min_order_by"]; @@ -8114,7 +8114,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["line"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "line" */ ["line_obj_rel_insert_input"]: GraphQLTypes["line_obj_rel_insert_input"]; @@ -8132,33 +8132,33 @@ end). throws an error if top level container is not an array */ ["line_set_input"]: GraphQLTypes["line_set_input"]; /** aggregate stddev on columns */ ["line_stddev_fields"]: { - centTotal?:number, - originCentTotal?:number, - originExchangeRate?:number + centTotal?:number | undefined, + originCentTotal?:number | undefined, + originExchangeRate?:number | undefined }; /** order by stddev() on columns of table "line" */ ["line_stddev_order_by"]: GraphQLTypes["line_stddev_order_by"]; /** aggregate stddev_pop on columns */ ["line_stddev_pop_fields"]: { - centTotal?:number, - originCentTotal?:number, - originExchangeRate?:number + centTotal?:number | undefined, + originCentTotal?:number | undefined, + originExchangeRate?:number | undefined }; /** order by stddev_pop() on columns of table "line" */ ["line_stddev_pop_order_by"]: GraphQLTypes["line_stddev_pop_order_by"]; /** aggregate stddev_samp on columns */ ["line_stddev_samp_fields"]: { - centTotal?:number, - originCentTotal?:number, - originExchangeRate?:number + centTotal?:number | undefined, + originCentTotal?:number | undefined, + originExchangeRate?:number | undefined }; /** order by stddev_samp() on columns of table "line" */ ["line_stddev_samp_order_by"]: GraphQLTypes["line_stddev_samp_order_by"]; /** aggregate sum on columns */ ["line_sum_fields"]: { - centTotal?:number, - originCentTotal?:number, - originExchangeRate?:ModelTypes["numeric"] + centTotal?:number | undefined, + originCentTotal?:number | undefined, + originExchangeRate?:ModelTypes["numeric"] | undefined }; /** order by sum() on columns of table "line" */ ["line_sum_order_by"]: GraphQLTypes["line_sum_order_by"]; @@ -8166,25 +8166,25 @@ end). throws an error if top level container is not an array */ ["line_update_column"]: GraphQLTypes["line_update_column"]; /** aggregate var_pop on columns */ ["line_var_pop_fields"]: { - centTotal?:number, - originCentTotal?:number, - originExchangeRate?:number + centTotal?:number | undefined, + originCentTotal?:number | undefined, + originExchangeRate?:number | undefined }; /** order by var_pop() on columns of table "line" */ ["line_var_pop_order_by"]: GraphQLTypes["line_var_pop_order_by"]; /** aggregate var_samp on columns */ ["line_var_samp_fields"]: { - centTotal?:number, - originCentTotal?:number, - originExchangeRate?:number + centTotal?:number | undefined, + originCentTotal?:number | undefined, + originExchangeRate?:number | undefined }; /** order by var_samp() on columns of table "line" */ ["line_var_samp_order_by"]: GraphQLTypes["line_var_samp_order_by"]; /** aggregate variance on columns */ ["line_variance_fields"]: { - centTotal?:number, - originCentTotal?:number, - originExchangeRate?:number + centTotal?:number | undefined, + originCentTotal?:number | undefined, + originExchangeRate?:number | undefined }; /** order by variance() on columns of table "line" */ ["line_variance_order_by"]: GraphQLTypes["line_variance_order_by"]; @@ -8200,31 +8200,31 @@ end). throws an error if top level container is not an array */ /** An object relationship */ team:ModelTypes["team"], teamId:ModelTypes["uuid"], - text?:string, + text?:string | undefined, type:string, - uniqueRef?:string, - unitId?:ModelTypes["uuid"], + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, updatedAt:ModelTypes["timestamptz"], - value?:ModelTypes["float8"] + value?:ModelTypes["float8"] | undefined }; /** aggregated selection of "metric" */ ["metric_aggregate"]: { - aggregate?:ModelTypes["metric_aggregate_fields"], - nodes:ModelTypes["metric"][] + aggregate?:ModelTypes["metric_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "metric" */ ["metric_aggregate_fields"]: { - avg?:ModelTypes["metric_avg_fields"], + avg?:ModelTypes["metric_avg_fields"] | undefined, count:number, - max?:ModelTypes["metric_max_fields"], - min?:ModelTypes["metric_min_fields"], - stddev?:ModelTypes["metric_stddev_fields"], - stddev_pop?:ModelTypes["metric_stddev_pop_fields"], - stddev_samp?:ModelTypes["metric_stddev_samp_fields"], - sum?:ModelTypes["metric_sum_fields"], - var_pop?:ModelTypes["metric_var_pop_fields"], - var_samp?:ModelTypes["metric_var_samp_fields"], - variance?:ModelTypes["metric_variance_fields"] + max?:ModelTypes["metric_max_fields"] | undefined, + min?:ModelTypes["metric_min_fields"] | undefined, + stddev?:ModelTypes["metric_stddev_fields"] | undefined, + stddev_pop?:ModelTypes["metric_stddev_pop_fields"] | undefined, + stddev_samp?:ModelTypes["metric_stddev_samp_fields"] | undefined, + sum?:ModelTypes["metric_sum_fields"] | undefined, + var_pop?:ModelTypes["metric_var_pop_fields"] | undefined, + var_samp?:ModelTypes["metric_var_samp_fields"] | undefined, + variance?:ModelTypes["metric_variance_fields"] | undefined }; /** order by aggregate values of table "metric" */ ["metric_aggregate_order_by"]: GraphQLTypes["metric_aggregate_order_by"]; @@ -8234,7 +8234,7 @@ end). throws an error if top level container is not an array */ ["metric_arr_rel_insert_input"]: GraphQLTypes["metric_arr_rel_insert_input"]; /** aggregate avg on columns */ ["metric_avg_fields"]: { - value?:number + value?:number | undefined }; /** order by avg() on columns of table "metric" */ ["metric_avg_order_by"]: GraphQLTypes["metric_avg_order_by"]; @@ -8255,33 +8255,33 @@ end). throws an error if top level container is not an array */ ["metric_insert_input"]: GraphQLTypes["metric_insert_input"]; /** aggregate max on columns */ ["metric_max_fields"]: { - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - ensuedAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - text?:string, - type?:string, - uniqueRef?:string, - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"], - value?:ModelTypes["float8"] + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + ensuedAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + text?:string | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined, + value?:ModelTypes["float8"] | undefined }; /** order by max() on columns of table "metric" */ ["metric_max_order_by"]: GraphQLTypes["metric_max_order_by"]; /** aggregate min on columns */ ["metric_min_fields"]: { - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - ensuedAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - text?:string, - type?:string, - uniqueRef?:string, - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"], - value?:ModelTypes["float8"] + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + ensuedAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + text?:string | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined, + value?:ModelTypes["float8"] | undefined }; /** order by min() on columns of table "metric" */ ["metric_min_order_by"]: GraphQLTypes["metric_min_order_by"]; @@ -8290,7 +8290,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["metric"][] + returning:Array | undefined }; /** on conflict condition type for table "metric" */ ["metric_on_conflict"]: GraphQLTypes["metric_on_conflict"]; @@ -8306,25 +8306,25 @@ end). throws an error if top level container is not an array */ ["metric_set_input"]: GraphQLTypes["metric_set_input"]; /** aggregate stddev on columns */ ["metric_stddev_fields"]: { - value?:number + value?:number | undefined }; /** order by stddev() on columns of table "metric" */ ["metric_stddev_order_by"]: GraphQLTypes["metric_stddev_order_by"]; /** aggregate stddev_pop on columns */ ["metric_stddev_pop_fields"]: { - value?:number + value?:number | undefined }; /** order by stddev_pop() on columns of table "metric" */ ["metric_stddev_pop_order_by"]: GraphQLTypes["metric_stddev_pop_order_by"]; /** aggregate stddev_samp on columns */ ["metric_stddev_samp_fields"]: { - value?:number + value?:number | undefined }; /** order by stddev_samp() on columns of table "metric" */ ["metric_stddev_samp_order_by"]: GraphQLTypes["metric_stddev_samp_order_by"]; /** aggregate sum on columns */ ["metric_sum_fields"]: { - value?:ModelTypes["float8"] + value?:ModelTypes["float8"] | undefined }; /** order by sum() on columns of table "metric" */ ["metric_sum_order_by"]: GraphQLTypes["metric_sum_order_by"]; @@ -8332,360 +8332,360 @@ end). throws an error if top level container is not an array */ ["metric_update_column"]: GraphQLTypes["metric_update_column"]; /** aggregate var_pop on columns */ ["metric_var_pop_fields"]: { - value?:number + value?:number | undefined }; /** order by var_pop() on columns of table "metric" */ ["metric_var_pop_order_by"]: GraphQLTypes["metric_var_pop_order_by"]; /** aggregate var_samp on columns */ ["metric_var_samp_fields"]: { - value?:number + value?:number | undefined }; /** order by var_samp() on columns of table "metric" */ ["metric_var_samp_order_by"]: GraphQLTypes["metric_var_samp_order_by"]; /** aggregate variance on columns */ ["metric_variance_fields"]: { - value?:number + value?:number | undefined }; /** order by variance() on columns of table "metric" */ ["metric_variance_order_by"]: GraphQLTypes["metric_variance_order_by"]; /** mutation root */ ["mutation_root"]: { /** delete single row from the table: "booking" */ - deleteBooking?:ModelTypes["booking"], + deleteBooking?:ModelTypes["booking"] | undefined, /** delete single row from the table: "booking_status" */ - deleteBookingStatus?:ModelTypes["bookingStatus"], + deleteBookingStatus?:ModelTypes["bookingStatus"] | undefined, /** delete data from the table: "booking_status" */ - deleteBookingStatuses?:ModelTypes["bookingStatus_mutation_response"], + deleteBookingStatuses?:ModelTypes["bookingStatus_mutation_response"] | undefined, /** delete data from the table: "booking" */ - deleteBookings?:ModelTypes["booking_mutation_response"], + deleteBookings?:ModelTypes["booking_mutation_response"] | undefined, /** delete single row from the table: "classification" */ - deleteClassification?:ModelTypes["classification"], + deleteClassification?:ModelTypes["classification"] | undefined, /** delete data from the table: "classification" */ - deleteClassifications?:ModelTypes["classification_mutation_response"], + deleteClassifications?:ModelTypes["classification_mutation_response"] | undefined, /** delete single row from the table: "connection" */ - deleteConnection?:ModelTypes["connection"], + deleteConnection?:ModelTypes["connection"] | undefined, /** delete data from the table: "connection" */ - deleteConnections?:ModelTypes["connection_mutation_response"], + deleteConnections?:ModelTypes["connection_mutation_response"] | undefined, /** delete data from the table: "currency" */ - deleteCurrencies?:ModelTypes["currency_mutation_response"], + deleteCurrencies?:ModelTypes["currency_mutation_response"] | undefined, /** delete single row from the table: "currency" */ - deleteCurrency?:ModelTypes["currency"], + deleteCurrency?:ModelTypes["currency"] | undefined, /** delete data from the table: "entity" */ - deleteEntities?:ModelTypes["entity_mutation_response"], + deleteEntities?:ModelTypes["entity_mutation_response"] | undefined, /** delete single row from the table: "entity" */ - deleteEntity?:ModelTypes["entity"], + deleteEntity?:ModelTypes["entity"] | undefined, /** delete single row from the table: "entity_status" */ - deleteEntityStatus?:ModelTypes["entityStatus"], + deleteEntityStatus?:ModelTypes["entityStatus"] | undefined, /** delete data from the table: "entity_status" */ - deleteEntityStatuses?:ModelTypes["entityStatus_mutation_response"], + deleteEntityStatuses?:ModelTypes["entityStatus_mutation_response"] | undefined, /** delete single row from the table: "integration" */ - deleteIntegration?:ModelTypes["integration"], + deleteIntegration?:ModelTypes["integration"] | undefined, /** delete single row from the table: "integration_type" */ - deleteIntegrationType?:ModelTypes["integrationType"], + deleteIntegrationType?:ModelTypes["integrationType"] | undefined, /** delete data from the table: "integration_type" */ - deleteIntegrationTypes?:ModelTypes["integrationType_mutation_response"], + deleteIntegrationTypes?:ModelTypes["integrationType_mutation_response"] | undefined, /** delete data from the table: "integration" */ - deleteIntegrations?:ModelTypes["integration_mutation_response"], + deleteIntegrations?:ModelTypes["integration_mutation_response"] | undefined, /** delete single row from the table: "issue" */ - deleteIssue?:ModelTypes["issue"], + deleteIssue?:ModelTypes["issue"] | undefined, /** delete data from the table: "issue" */ - deleteIssues?:ModelTypes["issue_mutation_response"], + deleteIssues?:ModelTypes["issue_mutation_response"] | undefined, /** delete single row from the table: "job" */ - deleteJob?:ModelTypes["job"], + deleteJob?:ModelTypes["job"] | undefined, /** delete single row from the table: "job_method" */ - deleteJobMethod?:ModelTypes["jobMethod"], + deleteJobMethod?:ModelTypes["jobMethod"] | undefined, /** delete data from the table: "job_method" */ - deleteJobMethods?:ModelTypes["jobMethod_mutation_response"], + deleteJobMethods?:ModelTypes["jobMethod_mutation_response"] | undefined, /** delete single row from the table: "job_status" */ - deleteJobStatus?:ModelTypes["jobStatus"], + deleteJobStatus?:ModelTypes["jobStatus"] | undefined, /** delete data from the table: "job_status" */ - deleteJobStatuses?:ModelTypes["jobStatus_mutation_response"], + deleteJobStatuses?:ModelTypes["jobStatus_mutation_response"] | undefined, /** delete data from the table: "job" */ - deleteJobs?:ModelTypes["job_mutation_response"], + deleteJobs?:ModelTypes["job_mutation_response"] | undefined, /** delete single row from the table: "line" */ - deleteLine?:ModelTypes["line"], + deleteLine?:ModelTypes["line"] | undefined, /** delete data from the table: "line" */ - deleteLines?:ModelTypes["line_mutation_response"], + deleteLines?:ModelTypes["line_mutation_response"] | undefined, /** delete single row from the table: "metric" */ - deleteMetric?:ModelTypes["metric"], + deleteMetric?:ModelTypes["metric"] | undefined, /** delete data from the table: "metric" */ - deleteMetrics?:ModelTypes["metric_mutation_response"], + deleteMetrics?:ModelTypes["metric_mutation_response"] | undefined, /** delete single row from the table: "normalized_type" */ - deleteNormalizedType?:ModelTypes["normalizedType"], + deleteNormalizedType?:ModelTypes["normalizedType"] | undefined, /** delete data from the table: "normalized_type" */ - deleteNormalizedTypes?:ModelTypes["normalizedType_mutation_response"], + deleteNormalizedTypes?:ModelTypes["normalizedType_mutation_response"] | undefined, /** delete single row from the table: "payment" */ - deletePayment?:ModelTypes["payment"], + deletePayment?:ModelTypes["payment"] | undefined, /** delete single row from the table: "payment_status" */ - deletePaymentStatus?:ModelTypes["paymentStatus"], + deletePaymentStatus?:ModelTypes["paymentStatus"] | undefined, /** delete data from the table: "payment_status" */ - deletePaymentStatuses?:ModelTypes["paymentStatus_mutation_response"], + deletePaymentStatuses?:ModelTypes["paymentStatus_mutation_response"] | undefined, /** delete single row from the table: "payment_type" */ - deletePaymentType?:ModelTypes["paymentType"], + deletePaymentType?:ModelTypes["paymentType"] | undefined, /** delete data from the table: "payment_type" */ - deletePaymentTypes?:ModelTypes["paymentType_mutation_response"], + deletePaymentTypes?:ModelTypes["paymentType_mutation_response"] | undefined, /** delete data from the table: "payment" */ - deletePayments?:ModelTypes["payment_mutation_response"], + deletePayments?:ModelTypes["payment_mutation_response"] | undefined, /** delete single row from the table: "subclassification" */ - deleteSubclassification?:ModelTypes["subclassification"], + deleteSubclassification?:ModelTypes["subclassification"] | undefined, /** delete data from the table: "subclassification" */ - deleteSubclassifications?:ModelTypes["subclassification_mutation_response"], + deleteSubclassifications?:ModelTypes["subclassification_mutation_response"] | undefined, /** delete single row from the table: "tag" */ - deleteTag?:ModelTypes["tag"], + deleteTag?:ModelTypes["tag"] | undefined, /** delete data from the table: "tag" */ - deleteTags?:ModelTypes["tag_mutation_response"], + deleteTags?:ModelTypes["tag_mutation_response"] | undefined, /** delete single row from the table: "team" */ - deleteTeam?:ModelTypes["team"], + deleteTeam?:ModelTypes["team"] | undefined, /** delete single row from the table: "team_user" */ - deleteTeamUser?:ModelTypes["teamUser"], + deleteTeamUser?:ModelTypes["teamUser"] | undefined, /** delete data from the table: "team_user" */ - deleteTeamUsers?:ModelTypes["teamUser_mutation_response"], + deleteTeamUsers?:ModelTypes["teamUser_mutation_response"] | undefined, /** delete data from the table: "team" */ - deleteTeams?:ModelTypes["team_mutation_response"], + deleteTeams?:ModelTypes["team_mutation_response"] | undefined, /** delete single row from the table: "unit" */ - deleteUnit?:ModelTypes["unit"], + deleteUnit?:ModelTypes["unit"] | undefined, /** delete data from the table: "unit" */ - deleteUnits?:ModelTypes["unit_mutation_response"], + deleteUnits?:ModelTypes["unit_mutation_response"] | undefined, /** delete single row from the table: "user" */ - deleteUser?:ModelTypes["user"], + deleteUser?:ModelTypes["user"] | undefined, /** delete single row from the table: "user_status" */ - deleteUserStatus?:ModelTypes["userStatus"], + deleteUserStatus?:ModelTypes["userStatus"] | undefined, /** delete data from the table: "user_status" */ - deleteUserStatuses?:ModelTypes["userStatus_mutation_response"], + deleteUserStatuses?:ModelTypes["userStatus_mutation_response"] | undefined, /** delete data from the table: "user" */ - deleteUsers?:ModelTypes["user_mutation_response"], + deleteUsers?:ModelTypes["user_mutation_response"] | undefined, /** delete single row from the table: "webhook" */ - deleteWebhook?:ModelTypes["webhook"], + deleteWebhook?:ModelTypes["webhook"] | undefined, /** delete data from the table: "webhook" */ - deleteWebhooks?:ModelTypes["webhook_mutation_response"], + deleteWebhooks?:ModelTypes["webhook_mutation_response"] | undefined, /** delete data from the table: "booking_channel" */ - delete_booking_channel?:ModelTypes["booking_channel_mutation_response"], + delete_booking_channel?:ModelTypes["booking_channel_mutation_response"] | undefined, /** delete single row from the table: "booking_channel" */ - delete_booking_channel_by_pk?:ModelTypes["booking_channel"], + delete_booking_channel_by_pk?:ModelTypes["booking_channel"] | undefined, /** insert a single row into the table: "booking" */ - insertBooking?:ModelTypes["booking"], + insertBooking?:ModelTypes["booking"] | undefined, /** insert a single row into the table: "booking_status" */ - insertBookingStatus?:ModelTypes["bookingStatus"], + insertBookingStatus?:ModelTypes["bookingStatus"] | undefined, /** insert data into the table: "booking_status" */ - insertBookingStatuses?:ModelTypes["bookingStatus_mutation_response"], + insertBookingStatuses?:ModelTypes["bookingStatus_mutation_response"] | undefined, /** insert data into the table: "booking" */ - insertBookings?:ModelTypes["booking_mutation_response"], + insertBookings?:ModelTypes["booking_mutation_response"] | undefined, /** insert a single row into the table: "classification" */ - insertClassification?:ModelTypes["classification"], + insertClassification?:ModelTypes["classification"] | undefined, /** insert data into the table: "classification" */ - insertClassifications?:ModelTypes["classification_mutation_response"], + insertClassifications?:ModelTypes["classification_mutation_response"] | undefined, /** insert a single row into the table: "connection" */ - insertConnection?:ModelTypes["connection"], + insertConnection?:ModelTypes["connection"] | undefined, /** insert data into the table: "connection" */ - insertConnections?:ModelTypes["connection_mutation_response"], + insertConnections?:ModelTypes["connection_mutation_response"] | undefined, /** insert data into the table: "currency" */ - insertCurrencies?:ModelTypes["currency_mutation_response"], + insertCurrencies?:ModelTypes["currency_mutation_response"] | undefined, /** insert a single row into the table: "currency" */ - insertCurrency?:ModelTypes["currency"], + insertCurrency?:ModelTypes["currency"] | undefined, /** insert data into the table: "entity" */ - insertEntities?:ModelTypes["entity_mutation_response"], + insertEntities?:ModelTypes["entity_mutation_response"] | undefined, /** insert a single row into the table: "entity" */ - insertEntity?:ModelTypes["entity"], + insertEntity?:ModelTypes["entity"] | undefined, /** insert a single row into the table: "entity_status" */ - insertEntityStatus?:ModelTypes["entityStatus"], + insertEntityStatus?:ModelTypes["entityStatus"] | undefined, /** insert data into the table: "entity_status" */ - insertEntityStatuses?:ModelTypes["entityStatus_mutation_response"], + insertEntityStatuses?:ModelTypes["entityStatus_mutation_response"] | undefined, /** insert a single row into the table: "integration" */ - insertIntegration?:ModelTypes["integration"], + insertIntegration?:ModelTypes["integration"] | undefined, /** insert a single row into the table: "integration_type" */ - insertIntegrationType?:ModelTypes["integrationType"], + insertIntegrationType?:ModelTypes["integrationType"] | undefined, /** insert data into the table: "integration_type" */ - insertIntegrationTypes?:ModelTypes["integrationType_mutation_response"], + insertIntegrationTypes?:ModelTypes["integrationType_mutation_response"] | undefined, /** insert data into the table: "integration" */ - insertIntegrations?:ModelTypes["integration_mutation_response"], + insertIntegrations?:ModelTypes["integration_mutation_response"] | undefined, /** insert a single row into the table: "issue" */ - insertIssue?:ModelTypes["issue"], + insertIssue?:ModelTypes["issue"] | undefined, /** insert data into the table: "issue" */ - insertIssues?:ModelTypes["issue_mutation_response"], + insertIssues?:ModelTypes["issue_mutation_response"] | undefined, /** insert a single row into the table: "job" */ - insertJob?:ModelTypes["job"], + insertJob?:ModelTypes["job"] | undefined, /** insert a single row into the table: "job_method" */ - insertJobMethod?:ModelTypes["jobMethod"], + insertJobMethod?:ModelTypes["jobMethod"] | undefined, /** insert data into the table: "job_method" */ - insertJobMethods?:ModelTypes["jobMethod_mutation_response"], + insertJobMethods?:ModelTypes["jobMethod_mutation_response"] | undefined, /** insert a single row into the table: "job_status" */ - insertJobStatus?:ModelTypes["jobStatus"], + insertJobStatus?:ModelTypes["jobStatus"] | undefined, /** insert data into the table: "job_status" */ - insertJobStatuses?:ModelTypes["jobStatus_mutation_response"], + insertJobStatuses?:ModelTypes["jobStatus_mutation_response"] | undefined, /** insert data into the table: "job" */ - insertJobs?:ModelTypes["job_mutation_response"], + insertJobs?:ModelTypes["job_mutation_response"] | undefined, /** insert a single row into the table: "line" */ - insertLine?:ModelTypes["line"], + insertLine?:ModelTypes["line"] | undefined, /** insert data into the table: "line" */ - insertLines?:ModelTypes["line_mutation_response"], + insertLines?:ModelTypes["line_mutation_response"] | undefined, /** insert a single row into the table: "metric" */ - insertMetric?:ModelTypes["metric"], + insertMetric?:ModelTypes["metric"] | undefined, /** insert data into the table: "metric" */ - insertMetrics?:ModelTypes["metric_mutation_response"], + insertMetrics?:ModelTypes["metric_mutation_response"] | undefined, /** insert a single row into the table: "normalized_type" */ - insertNormalizedType?:ModelTypes["normalizedType"], + insertNormalizedType?:ModelTypes["normalizedType"] | undefined, /** insert data into the table: "normalized_type" */ - insertNormalizedTypes?:ModelTypes["normalizedType_mutation_response"], + insertNormalizedTypes?:ModelTypes["normalizedType_mutation_response"] | undefined, /** insert a single row into the table: "payment" */ - insertPayment?:ModelTypes["payment"], + insertPayment?:ModelTypes["payment"] | undefined, /** insert a single row into the table: "payment_status" */ - insertPaymentStatus?:ModelTypes["paymentStatus"], + insertPaymentStatus?:ModelTypes["paymentStatus"] | undefined, /** insert data into the table: "payment_status" */ - insertPaymentStatuses?:ModelTypes["paymentStatus_mutation_response"], + insertPaymentStatuses?:ModelTypes["paymentStatus_mutation_response"] | undefined, /** insert a single row into the table: "payment_type" */ - insertPaymentType?:ModelTypes["paymentType"], + insertPaymentType?:ModelTypes["paymentType"] | undefined, /** insert data into the table: "payment_type" */ - insertPaymentTypes?:ModelTypes["paymentType_mutation_response"], + insertPaymentTypes?:ModelTypes["paymentType_mutation_response"] | undefined, /** insert data into the table: "payment" */ - insertPayments?:ModelTypes["payment_mutation_response"], + insertPayments?:ModelTypes["payment_mutation_response"] | undefined, /** insert a single row into the table: "subclassification" */ - insertSubclassification?:ModelTypes["subclassification"], + insertSubclassification?:ModelTypes["subclassification"] | undefined, /** insert data into the table: "subclassification" */ - insertSubclassifications?:ModelTypes["subclassification_mutation_response"], + insertSubclassifications?:ModelTypes["subclassification_mutation_response"] | undefined, /** insert a single row into the table: "tag" */ - insertTag?:ModelTypes["tag"], + insertTag?:ModelTypes["tag"] | undefined, /** insert data into the table: "tag" */ - insertTags?:ModelTypes["tag_mutation_response"], + insertTags?:ModelTypes["tag_mutation_response"] | undefined, /** insert a single row into the table: "team" */ - insertTeam?:ModelTypes["team"], + insertTeam?:ModelTypes["team"] | undefined, /** insert a single row into the table: "team_user" */ - insertTeamUser?:ModelTypes["teamUser"], + insertTeamUser?:ModelTypes["teamUser"] | undefined, /** insert data into the table: "team_user" */ - insertTeamUsers?:ModelTypes["teamUser_mutation_response"], + insertTeamUsers?:ModelTypes["teamUser_mutation_response"] | undefined, /** insert data into the table: "team" */ - insertTeams?:ModelTypes["team_mutation_response"], + insertTeams?:ModelTypes["team_mutation_response"] | undefined, /** insert a single row into the table: "unit" */ - insertUnit?:ModelTypes["unit"], + insertUnit?:ModelTypes["unit"] | undefined, /** insert data into the table: "unit" */ - insertUnits?:ModelTypes["unit_mutation_response"], + insertUnits?:ModelTypes["unit_mutation_response"] | undefined, /** insert a single row into the table: "user" */ - insertUser?:ModelTypes["user"], + insertUser?:ModelTypes["user"] | undefined, /** insert a single row into the table: "user_status" */ - insertUserStatus?:ModelTypes["userStatus"], + insertUserStatus?:ModelTypes["userStatus"] | undefined, /** insert data into the table: "user_status" */ - insertUserStatuses?:ModelTypes["userStatus_mutation_response"], + insertUserStatuses?:ModelTypes["userStatus_mutation_response"] | undefined, /** insert data into the table: "user" */ - insertUsers?:ModelTypes["user_mutation_response"], + insertUsers?:ModelTypes["user_mutation_response"] | undefined, /** insert a single row into the table: "webhook" */ - insertWebhook?:ModelTypes["webhook"], + insertWebhook?:ModelTypes["webhook"] | undefined, /** insert data into the table: "webhook" */ - insertWebhooks?:ModelTypes["webhook_mutation_response"], + insertWebhooks?:ModelTypes["webhook_mutation_response"] | undefined, /** insert data into the table: "booking_channel" */ - insert_booking_channel?:ModelTypes["booking_channel_mutation_response"], + insert_booking_channel?:ModelTypes["booking_channel_mutation_response"] | undefined, /** insert a single row into the table: "booking_channel" */ - insert_booking_channel_one?:ModelTypes["booking_channel"], + insert_booking_channel_one?:ModelTypes["booking_channel"] | undefined, /** update single row of the table: "booking" */ - updateBooking?:ModelTypes["booking"], + updateBooking?:ModelTypes["booking"] | undefined, /** update single row of the table: "booking_status" */ - updateBookingStatus?:ModelTypes["bookingStatus"], + updateBookingStatus?:ModelTypes["bookingStatus"] | undefined, /** update data of the table: "booking_status" */ - updateBookingStatuses?:ModelTypes["bookingStatus_mutation_response"], + updateBookingStatuses?:ModelTypes["bookingStatus_mutation_response"] | undefined, /** update data of the table: "booking" */ - updateBookings?:ModelTypes["booking_mutation_response"], + updateBookings?:ModelTypes["booking_mutation_response"] | undefined, /** update single row of the table: "classification" */ - updateClassification?:ModelTypes["classification"], + updateClassification?:ModelTypes["classification"] | undefined, /** update data of the table: "classification" */ - updateClassifications?:ModelTypes["classification_mutation_response"], + updateClassifications?:ModelTypes["classification_mutation_response"] | undefined, /** update single row of the table: "connection" */ - updateConnection?:ModelTypes["connection"], + updateConnection?:ModelTypes["connection"] | undefined, /** update data of the table: "connection" */ - updateConnections?:ModelTypes["connection_mutation_response"], + updateConnections?:ModelTypes["connection_mutation_response"] | undefined, /** update data of the table: "currency" */ - updateCurrencies?:ModelTypes["currency_mutation_response"], + updateCurrencies?:ModelTypes["currency_mutation_response"] | undefined, /** update single row of the table: "currency" */ - updateCurrency?:ModelTypes["currency"], + updateCurrency?:ModelTypes["currency"] | undefined, /** update data of the table: "entity" */ - updateEntities?:ModelTypes["entity_mutation_response"], + updateEntities?:ModelTypes["entity_mutation_response"] | undefined, /** update single row of the table: "entity" */ - updateEntity?:ModelTypes["entity"], + updateEntity?:ModelTypes["entity"] | undefined, /** update single row of the table: "entity_status" */ - updateEntityStatus?:ModelTypes["entityStatus"], + updateEntityStatus?:ModelTypes["entityStatus"] | undefined, /** update data of the table: "entity_status" */ - updateEntityStatuses?:ModelTypes["entityStatus_mutation_response"], + updateEntityStatuses?:ModelTypes["entityStatus_mutation_response"] | undefined, /** update single row of the table: "integration" */ - updateIntegration?:ModelTypes["integration"], + updateIntegration?:ModelTypes["integration"] | undefined, /** update single row of the table: "integration_type" */ - updateIntegrationType?:ModelTypes["integrationType"], + updateIntegrationType?:ModelTypes["integrationType"] | undefined, /** update data of the table: "integration_type" */ - updateIntegrationTypes?:ModelTypes["integrationType_mutation_response"], + updateIntegrationTypes?:ModelTypes["integrationType_mutation_response"] | undefined, /** update data of the table: "integration" */ - updateIntegrations?:ModelTypes["integration_mutation_response"], + updateIntegrations?:ModelTypes["integration_mutation_response"] | undefined, /** update single row of the table: "issue" */ - updateIssue?:ModelTypes["issue"], + updateIssue?:ModelTypes["issue"] | undefined, /** update data of the table: "issue" */ - updateIssues?:ModelTypes["issue_mutation_response"], + updateIssues?:ModelTypes["issue_mutation_response"] | undefined, /** update single row of the table: "job" */ - updateJob?:ModelTypes["job"], + updateJob?:ModelTypes["job"] | undefined, /** update single row of the table: "job_method" */ - updateJobMethod?:ModelTypes["jobMethod"], + updateJobMethod?:ModelTypes["jobMethod"] | undefined, /** update data of the table: "job_method" */ - updateJobMethods?:ModelTypes["jobMethod_mutation_response"], + updateJobMethods?:ModelTypes["jobMethod_mutation_response"] | undefined, /** update single row of the table: "job_status" */ - updateJobStatus?:ModelTypes["jobStatus"], + updateJobStatus?:ModelTypes["jobStatus"] | undefined, /** update data of the table: "job_status" */ - updateJobStatuses?:ModelTypes["jobStatus_mutation_response"], + updateJobStatuses?:ModelTypes["jobStatus_mutation_response"] | undefined, /** update data of the table: "job" */ - updateJobs?:ModelTypes["job_mutation_response"], + updateJobs?:ModelTypes["job_mutation_response"] | undefined, /** update single row of the table: "line" */ - updateLine?:ModelTypes["line"], + updateLine?:ModelTypes["line"] | undefined, /** update data of the table: "line" */ - updateLines?:ModelTypes["line_mutation_response"], + updateLines?:ModelTypes["line_mutation_response"] | undefined, /** update single row of the table: "metric" */ - updateMetric?:ModelTypes["metric"], + updateMetric?:ModelTypes["metric"] | undefined, /** update data of the table: "metric" */ - updateMetrics?:ModelTypes["metric_mutation_response"], + updateMetrics?:ModelTypes["metric_mutation_response"] | undefined, /** update single row of the table: "normalized_type" */ - updateNormalizedType?:ModelTypes["normalizedType"], + updateNormalizedType?:ModelTypes["normalizedType"] | undefined, /** update data of the table: "normalized_type" */ - updateNormalizedTypes?:ModelTypes["normalizedType_mutation_response"], + updateNormalizedTypes?:ModelTypes["normalizedType_mutation_response"] | undefined, /** update single row of the table: "payment" */ - updatePayment?:ModelTypes["payment"], + updatePayment?:ModelTypes["payment"] | undefined, /** update single row of the table: "payment_status" */ - updatePaymentStatus?:ModelTypes["paymentStatus"], + updatePaymentStatus?:ModelTypes["paymentStatus"] | undefined, /** update data of the table: "payment_status" */ - updatePaymentStatuses?:ModelTypes["paymentStatus_mutation_response"], + updatePaymentStatuses?:ModelTypes["paymentStatus_mutation_response"] | undefined, /** update single row of the table: "payment_type" */ - updatePaymentType?:ModelTypes["paymentType"], + updatePaymentType?:ModelTypes["paymentType"] | undefined, /** update data of the table: "payment_type" */ - updatePaymentTypes?:ModelTypes["paymentType_mutation_response"], + updatePaymentTypes?:ModelTypes["paymentType_mutation_response"] | undefined, /** update data of the table: "payment" */ - updatePayments?:ModelTypes["payment_mutation_response"], + updatePayments?:ModelTypes["payment_mutation_response"] | undefined, /** update single row of the table: "subclassification" */ - updateSubclassification?:ModelTypes["subclassification"], + updateSubclassification?:ModelTypes["subclassification"] | undefined, /** update data of the table: "subclassification" */ - updateSubclassifications?:ModelTypes["subclassification_mutation_response"], + updateSubclassifications?:ModelTypes["subclassification_mutation_response"] | undefined, /** update single row of the table: "tag" */ - updateTag?:ModelTypes["tag"], + updateTag?:ModelTypes["tag"] | undefined, /** update data of the table: "tag" */ - updateTags?:ModelTypes["tag_mutation_response"], + updateTags?:ModelTypes["tag_mutation_response"] | undefined, /** update single row of the table: "team" */ - updateTeam?:ModelTypes["team"], + updateTeam?:ModelTypes["team"] | undefined, /** update single row of the table: "team_user" */ - updateTeamUser?:ModelTypes["teamUser"], + updateTeamUser?:ModelTypes["teamUser"] | undefined, /** update data of the table: "team_user" */ - updateTeamUsers?:ModelTypes["teamUser_mutation_response"], + updateTeamUsers?:ModelTypes["teamUser_mutation_response"] | undefined, /** update data of the table: "team" */ - updateTeams?:ModelTypes["team_mutation_response"], + updateTeams?:ModelTypes["team_mutation_response"] | undefined, /** update single row of the table: "unit" */ - updateUnit?:ModelTypes["unit"], + updateUnit?:ModelTypes["unit"] | undefined, /** update data of the table: "unit" */ - updateUnits?:ModelTypes["unit_mutation_response"], + updateUnits?:ModelTypes["unit_mutation_response"] | undefined, /** update single row of the table: "user" */ - updateUser?:ModelTypes["user"], + updateUser?:ModelTypes["user"] | undefined, /** update single row of the table: "user_status" */ - updateUserStatus?:ModelTypes["userStatus"], + updateUserStatus?:ModelTypes["userStatus"] | undefined, /** update data of the table: "user_status" */ - updateUserStatuses?:ModelTypes["userStatus_mutation_response"], + updateUserStatuses?:ModelTypes["userStatus_mutation_response"] | undefined, /** update data of the table: "user" */ - updateUsers?:ModelTypes["user_mutation_response"], + updateUsers?:ModelTypes["user_mutation_response"] | undefined, /** update single row of the table: "webhook" */ - updateWebhook?:ModelTypes["webhook"], + updateWebhook?:ModelTypes["webhook"] | undefined, /** update data of the table: "webhook" */ - updateWebhooks?:ModelTypes["webhook_mutation_response"], + updateWebhooks?:ModelTypes["webhook_mutation_response"] | undefined, /** update data of the table: "booking_channel" */ - update_booking_channel?:ModelTypes["booking_channel_mutation_response"], + update_booking_channel?:ModelTypes["booking_channel_mutation_response"] | undefined, /** update single row of the table: "booking_channel" */ - update_booking_channel_by_pk?:ModelTypes["booking_channel"] + update_booking_channel_by_pk?:ModelTypes["booking_channel"] | undefined }; ["normalized_type_enum"]: GraphQLTypes["normalized_type_enum"]; /** Boolean expression to compare columns of type "normalized_type_enum". All fields are combined with logical 'AND'. */ @@ -8696,14 +8696,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "normalized_type" */ ["normalizedType_aggregate"]: { - aggregate?:ModelTypes["normalizedType_aggregate_fields"], - nodes:ModelTypes["normalizedType"][] + aggregate?:ModelTypes["normalizedType_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "normalized_type" */ ["normalizedType_aggregate_fields"]: { count:number, - max?:ModelTypes["normalizedType_max_fields"], - min?:ModelTypes["normalizedType_min_fields"] + max?:ModelTypes["normalizedType_max_fields"] | undefined, + min?:ModelTypes["normalizedType_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "normalized_type". All fields are combined with a logical 'AND'. */ ["normalizedType_bool_exp"]: GraphQLTypes["normalizedType_bool_exp"]; @@ -8713,18 +8713,18 @@ end). throws an error if top level container is not an array */ ["normalizedType_insert_input"]: GraphQLTypes["normalizedType_insert_input"]; /** aggregate max on columns */ ["normalizedType_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["normalizedType_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "normalized_type" */ ["normalizedType_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["normalizedType"][] + returning:Array | undefined }; /** on conflict condition type for table "normalized_type" */ ["normalizedType_on_conflict"]: GraphQLTypes["normalizedType_on_conflict"]; @@ -8745,54 +8745,54 @@ end). throws an error if top level container is not an array */ ["order_by"]: GraphQLTypes["order_by"]; /** columns and relationships of "payment" */ ["payment"]: { - arrivesAt?:ModelTypes["timestamptz"], - centTotal?:number, + arrivesAt?:ModelTypes["timestamptz"] | undefined, + centTotal?:number | undefined, /** An object relationship */ - connection?:ModelTypes["connection"], - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - currency?:ModelTypes["currency_enum"], - description?:string, + connection?:ModelTypes["connection"] | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + currency?:ModelTypes["currency_enum"] | undefined, + description?:string | undefined, /** An object relationship */ - entity?:ModelTypes["entity"], - entityId?:ModelTypes["uuid"], + entity?:ModelTypes["entity"] | undefined, + entityId?:ModelTypes["uuid"] | undefined, id:ModelTypes["uuid"], /** An array relationship */ - lines:ModelTypes["line"][], + lines:Array | undefined, /** An aggregate relationship */ lines_aggregate:ModelTypes["line_aggregate"], - metadata?:ModelTypes["jsonb"], - paidAt?:ModelTypes["timestamptz"], - status?:ModelTypes["payment_status_enum"], + metadata?:ModelTypes["jsonb"] | undefined, + paidAt?:ModelTypes["timestamptz"] | undefined, + status?:ModelTypes["payment_status_enum"] | undefined, /** An array relationship */ - tags:ModelTypes["tag"][], + tags:Array | undefined, /** An aggregate relationship */ tags_aggregate:ModelTypes["tag_aggregate"], /** An object relationship */ - team?:ModelTypes["team"], - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - updatedAt?:ModelTypes["timestamptz"] + team?:ModelTypes["team"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** aggregated selection of "payment" */ ["payment_aggregate"]: { - aggregate?:ModelTypes["payment_aggregate_fields"], - nodes:ModelTypes["payment"][] + aggregate?:ModelTypes["payment_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "payment" */ ["payment_aggregate_fields"]: { - avg?:ModelTypes["payment_avg_fields"], + avg?:ModelTypes["payment_avg_fields"] | undefined, count:number, - max?:ModelTypes["payment_max_fields"], - min?:ModelTypes["payment_min_fields"], - stddev?:ModelTypes["payment_stddev_fields"], - stddev_pop?:ModelTypes["payment_stddev_pop_fields"], - stddev_samp?:ModelTypes["payment_stddev_samp_fields"], - sum?:ModelTypes["payment_sum_fields"], - var_pop?:ModelTypes["payment_var_pop_fields"], - var_samp?:ModelTypes["payment_var_samp_fields"], - variance?:ModelTypes["payment_variance_fields"] + max?:ModelTypes["payment_max_fields"] | undefined, + min?:ModelTypes["payment_min_fields"] | undefined, + stddev?:ModelTypes["payment_stddev_fields"] | undefined, + stddev_pop?:ModelTypes["payment_stddev_pop_fields"] | undefined, + stddev_samp?:ModelTypes["payment_stddev_samp_fields"] | undefined, + sum?:ModelTypes["payment_sum_fields"] | undefined, + var_pop?:ModelTypes["payment_var_pop_fields"] | undefined, + var_samp?:ModelTypes["payment_var_samp_fields"] | undefined, + variance?:ModelTypes["payment_variance_fields"] | undefined }; /** order by aggregate values of table "payment" */ ["payment_aggregate_order_by"]: GraphQLTypes["payment_aggregate_order_by"]; @@ -8802,7 +8802,7 @@ end). throws an error if top level container is not an array */ ["payment_arr_rel_insert_input"]: GraphQLTypes["payment_arr_rel_insert_input"]; /** aggregate avg on columns */ ["payment_avg_fields"]: { - centTotal?:number + centTotal?:number | undefined }; /** order by avg() on columns of table "payment" */ ["payment_avg_order_by"]: GraphQLTypes["payment_avg_order_by"]; @@ -8823,35 +8823,35 @@ end). throws an error if top level container is not an array */ ["payment_insert_input"]: GraphQLTypes["payment_insert_input"]; /** aggregate max on columns */ ["payment_max_fields"]: { - arrivesAt?:ModelTypes["timestamptz"], - centTotal?:number, - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - description?:string, - entityId?:ModelTypes["uuid"], - id?:ModelTypes["uuid"], - paidAt?:ModelTypes["timestamptz"], - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - updatedAt?:ModelTypes["timestamptz"] + arrivesAt?:ModelTypes["timestamptz"] | undefined, + centTotal?:number | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + description?:string | undefined, + entityId?:ModelTypes["uuid"] | undefined, + id?:ModelTypes["uuid"] | undefined, + paidAt?:ModelTypes["timestamptz"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by max() on columns of table "payment" */ ["payment_max_order_by"]: GraphQLTypes["payment_max_order_by"]; /** aggregate min on columns */ ["payment_min_fields"]: { - arrivesAt?:ModelTypes["timestamptz"], - centTotal?:number, - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - description?:string, - entityId?:ModelTypes["uuid"], - id?:ModelTypes["uuid"], - paidAt?:ModelTypes["timestamptz"], - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - updatedAt?:ModelTypes["timestamptz"] + arrivesAt?:ModelTypes["timestamptz"] | undefined, + centTotal?:number | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + description?:string | undefined, + entityId?:ModelTypes["uuid"] | undefined, + id?:ModelTypes["uuid"] | undefined, + paidAt?:ModelTypes["timestamptz"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by min() on columns of table "payment" */ ["payment_min_order_by"]: GraphQLTypes["payment_min_order_by"]; @@ -8860,7 +8860,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["payment"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "payment" */ ["payment_obj_rel_insert_input"]: GraphQLTypes["payment_obj_rel_insert_input"]; @@ -8881,25 +8881,25 @@ end). throws an error if top level container is not an array */ ["payment_status_enum_comparison_exp"]: GraphQLTypes["payment_status_enum_comparison_exp"]; /** aggregate stddev on columns */ ["payment_stddev_fields"]: { - centTotal?:number + centTotal?:number | undefined }; /** order by stddev() on columns of table "payment" */ ["payment_stddev_order_by"]: GraphQLTypes["payment_stddev_order_by"]; /** aggregate stddev_pop on columns */ ["payment_stddev_pop_fields"]: { - centTotal?:number + centTotal?:number | undefined }; /** order by stddev_pop() on columns of table "payment" */ ["payment_stddev_pop_order_by"]: GraphQLTypes["payment_stddev_pop_order_by"]; /** aggregate stddev_samp on columns */ ["payment_stddev_samp_fields"]: { - centTotal?:number + centTotal?:number | undefined }; /** order by stddev_samp() on columns of table "payment" */ ["payment_stddev_samp_order_by"]: GraphQLTypes["payment_stddev_samp_order_by"]; /** aggregate sum on columns */ ["payment_sum_fields"]: { - centTotal?:number + centTotal?:number | undefined }; /** order by sum() on columns of table "payment" */ ["payment_sum_order_by"]: GraphQLTypes["payment_sum_order_by"]; @@ -8907,19 +8907,19 @@ end). throws an error if top level container is not an array */ ["payment_update_column"]: GraphQLTypes["payment_update_column"]; /** aggregate var_pop on columns */ ["payment_var_pop_fields"]: { - centTotal?:number + centTotal?:number | undefined }; /** order by var_pop() on columns of table "payment" */ ["payment_var_pop_order_by"]: GraphQLTypes["payment_var_pop_order_by"]; /** aggregate var_samp on columns */ ["payment_var_samp_fields"]: { - centTotal?:number + centTotal?:number | undefined }; /** order by var_samp() on columns of table "payment" */ ["payment_var_samp_order_by"]: GraphQLTypes["payment_var_samp_order_by"]; /** aggregate variance on columns */ ["payment_variance_fields"]: { - centTotal?:number + centTotal?:number | undefined }; /** order by variance() on columns of table "payment" */ ["payment_variance_order_by"]: GraphQLTypes["payment_variance_order_by"]; @@ -8929,14 +8929,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "payment_status" */ ["paymentStatus_aggregate"]: { - aggregate?:ModelTypes["paymentStatus_aggregate_fields"], - nodes:ModelTypes["paymentStatus"][] + aggregate?:ModelTypes["paymentStatus_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "payment_status" */ ["paymentStatus_aggregate_fields"]: { count:number, - max?:ModelTypes["paymentStatus_max_fields"], - min?:ModelTypes["paymentStatus_min_fields"] + max?:ModelTypes["paymentStatus_max_fields"] | undefined, + min?:ModelTypes["paymentStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "payment_status". All fields are combined with a logical 'AND'. */ ["paymentStatus_bool_exp"]: GraphQLTypes["paymentStatus_bool_exp"]; @@ -8946,18 +8946,18 @@ end). throws an error if top level container is not an array */ ["paymentStatus_insert_input"]: GraphQLTypes["paymentStatus_insert_input"]; /** aggregate max on columns */ ["paymentStatus_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["paymentStatus_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "payment_status" */ ["paymentStatus_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["paymentStatus"][] + returning:Array | undefined }; /** on conflict condition type for table "payment_status" */ ["paymentStatus_on_conflict"]: GraphQLTypes["paymentStatus_on_conflict"]; @@ -8977,14 +8977,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "payment_type" */ ["paymentType_aggregate"]: { - aggregate?:ModelTypes["paymentType_aggregate_fields"], - nodes:ModelTypes["paymentType"][] + aggregate?:ModelTypes["paymentType_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "payment_type" */ ["paymentType_aggregate_fields"]: { count:number, - max?:ModelTypes["paymentType_max_fields"], - min?:ModelTypes["paymentType_min_fields"] + max?:ModelTypes["paymentType_max_fields"] | undefined, + min?:ModelTypes["paymentType_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "payment_type". All fields are combined with a logical 'AND'. */ ["paymentType_bool_exp"]: GraphQLTypes["paymentType_bool_exp"]; @@ -8994,18 +8994,18 @@ end). throws an error if top level container is not an array */ ["paymentType_insert_input"]: GraphQLTypes["paymentType_insert_input"]; /** aggregate max on columns */ ["paymentType_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["paymentType_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "payment_type" */ ["paymentType_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["paymentType"][] + returning:Array | undefined }; /** on conflict condition type for table "payment_type" */ ["paymentType_on_conflict"]: GraphQLTypes["paymentType_on_conflict"]; @@ -9075,119 +9075,119 @@ end). throws an error if top level container is not an array */ /** fetch aggregated fields from the table: "webhook" */ aggregateWebhooks:ModelTypes["webhook_aggregate"], /** fetch data from the table: "booking" using primary key columns */ - booking?:ModelTypes["booking"], + booking?:ModelTypes["booking"] | undefined, /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?:ModelTypes["bookingStatus"], + bookingStatus?:ModelTypes["bookingStatus"] | undefined, /** fetch data from the table: "booking_status" */ - bookingStatuses:ModelTypes["bookingStatus"][], + bookingStatuses:Array | undefined, /** fetch data from the table: "booking_channel" */ - booking_channel:ModelTypes["booking_channel"][], + booking_channel:Array | undefined, /** fetch aggregated fields from the table: "booking_channel" */ booking_channel_aggregate:ModelTypes["booking_channel_aggregate"], /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?:ModelTypes["booking_channel"], + booking_channel_by_pk?:ModelTypes["booking_channel"] | undefined, /** An array relationship */ - bookings:ModelTypes["booking"][], + bookings:Array | undefined, /** fetch data from the table: "classification" using primary key columns */ - classification?:ModelTypes["classification"], + classification?:ModelTypes["classification"] | undefined, /** fetch data from the table: "classification" */ - classifications:ModelTypes["classification"][], + classifications:Array | undefined, /** fetch data from the table: "connection" using primary key columns */ - connection?:ModelTypes["connection"], + connection?:ModelTypes["connection"] | undefined, /** An array relationship */ - connections:ModelTypes["connection"][], + connections:Array | undefined, /** fetch data from the table: "currency" */ - currencies:ModelTypes["currency"][], + currencies:Array | undefined, /** fetch data from the table: "currency" using primary key columns */ - currency?:ModelTypes["currency"], + currency?:ModelTypes["currency"] | undefined, /** An array relationship */ - entities:ModelTypes["entity"][], + entities:Array | undefined, /** fetch data from the table: "entity" using primary key columns */ - entity?:ModelTypes["entity"], + entity?:ModelTypes["entity"] | undefined, /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?:ModelTypes["entityStatus"], + entityStatus?:ModelTypes["entityStatus"] | undefined, /** fetch data from the table: "entity_status" */ - entityStatuses:ModelTypes["entityStatus"][], + entityStatuses:Array | undefined, /** fetch data from the table: "integration" using primary key columns */ - integration?:ModelTypes["integration"], + integration?:ModelTypes["integration"] | undefined, /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?:ModelTypes["integrationType"], + integrationType?:ModelTypes["integrationType"] | undefined, /** fetch data from the table: "integration_type" */ - integrationTypes:ModelTypes["integrationType"][], + integrationTypes:Array | undefined, /** An array relationship */ - integrations:ModelTypes["integration"][], + integrations:Array | undefined, /** fetch data from the table: "issue" using primary key columns */ - issue?:ModelTypes["issue"], + issue?:ModelTypes["issue"] | undefined, /** An array relationship */ - issues:ModelTypes["issue"][], + issues:Array | undefined, /** fetch data from the table: "job" using primary key columns */ - job?:ModelTypes["job"], + job?:ModelTypes["job"] | undefined, /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?:ModelTypes["jobMethod"], + jobMethod?:ModelTypes["jobMethod"] | undefined, /** fetch data from the table: "job_method" */ - jobMethods:ModelTypes["jobMethod"][], + jobMethods:Array | undefined, /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?:ModelTypes["jobStatus"], + jobStatus?:ModelTypes["jobStatus"] | undefined, /** fetch data from the table: "job_status" */ - jobStatuses:ModelTypes["jobStatus"][], + jobStatuses:Array | undefined, /** An array relationship */ - jobs:ModelTypes["job"][], + jobs:Array | undefined, /** fetch data from the table: "line" using primary key columns */ - line?:ModelTypes["line"], + line?:ModelTypes["line"] | undefined, /** An array relationship */ - lines:ModelTypes["line"][], + lines:Array | undefined, /** fetch data from the table: "metric" using primary key columns */ - metric?:ModelTypes["metric"], + metric?:ModelTypes["metric"] | undefined, /** An array relationship */ - metrics:ModelTypes["metric"][], + metrics:Array | undefined, /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?:ModelTypes["normalizedType"], + normalizedType?:ModelTypes["normalizedType"] | undefined, /** fetch data from the table: "normalized_type" */ - normalizedTypes:ModelTypes["normalizedType"][], + normalizedTypes:Array | undefined, /** fetch data from the table: "payment" using primary key columns */ - payment?:ModelTypes["payment"], + payment?:ModelTypes["payment"] | undefined, /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?:ModelTypes["paymentStatus"], + paymentStatus?:ModelTypes["paymentStatus"] | undefined, /** fetch data from the table: "payment_status" */ - paymentStatuses:ModelTypes["paymentStatus"][], + paymentStatuses:Array | undefined, /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?:ModelTypes["paymentType"], + paymentType?:ModelTypes["paymentType"] | undefined, /** fetch data from the table: "payment_type" */ - paymentTypes:ModelTypes["paymentType"][], + paymentTypes:Array | undefined, /** An array relationship */ - payments:ModelTypes["payment"][], + payments:Array | undefined, /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?:ModelTypes["subclassification"], + subclassification?:ModelTypes["subclassification"] | undefined, /** fetch data from the table: "subclassification" */ - subclassifications:ModelTypes["subclassification"][], + subclassifications:Array | undefined, /** fetch data from the table: "tag" using primary key columns */ - tag?:ModelTypes["tag"], + tag?:ModelTypes["tag"] | undefined, /** An array relationship */ - tags:ModelTypes["tag"][], + tags:Array | undefined, /** fetch data from the table: "team" using primary key columns */ - team?:ModelTypes["team"], + team?:ModelTypes["team"] | undefined, /** fetch data from the table: "team_user" using primary key columns */ - teamUser?:ModelTypes["teamUser"], + teamUser?:ModelTypes["teamUser"] | undefined, /** fetch data from the table: "team_user" */ - teamUsers:ModelTypes["teamUser"][], + teamUsers:Array | undefined, /** fetch data from the table: "team" */ - teams:ModelTypes["team"][], + teams:Array | undefined, /** fetch data from the table: "unit" using primary key columns */ - unit?:ModelTypes["unit"], + unit?:ModelTypes["unit"] | undefined, /** An array relationship */ - units:ModelTypes["unit"][], + units:Array | undefined, /** fetch data from the table: "user" using primary key columns */ - user?:ModelTypes["user"], + user?:ModelTypes["user"] | undefined, /** fetch data from the table: "user_status" using primary key columns */ - userStatus?:ModelTypes["userStatus"], + userStatus?:ModelTypes["userStatus"] | undefined, /** fetch data from the table: "user_status" */ - userStatuses:ModelTypes["userStatus"][], + userStatuses:Array | undefined, /** fetch data from the table: "user" */ - users:ModelTypes["user"][], + users:Array | undefined, /** fetch data from the table: "webhook" using primary key columns */ - webhook?:ModelTypes["webhook"], + webhook?:ModelTypes["webhook"] | undefined, /** An array relationship */ - webhooks:ModelTypes["webhook"][] + webhooks:Array | undefined }; /** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ ["String_comparison_exp"]: GraphQLTypes["String_comparison_exp"]; @@ -9197,14 +9197,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "subclassification" */ ["subclassification_aggregate"]: { - aggregate?:ModelTypes["subclassification_aggregate_fields"], - nodes:ModelTypes["subclassification"][] + aggregate?:ModelTypes["subclassification_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "subclassification" */ ["subclassification_aggregate_fields"]: { count:number, - max?:ModelTypes["subclassification_max_fields"], - min?:ModelTypes["subclassification_min_fields"] + max?:ModelTypes["subclassification_max_fields"] | undefined, + min?:ModelTypes["subclassification_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "subclassification". All fields are combined with a logical 'AND'. */ ["subclassification_bool_exp"]: GraphQLTypes["subclassification_bool_exp"]; @@ -9217,18 +9217,18 @@ end). throws an error if top level container is not an array */ ["subclassification_insert_input"]: GraphQLTypes["subclassification_insert_input"]; /** aggregate max on columns */ ["subclassification_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["subclassification_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "subclassification" */ ["subclassification_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["subclassification"][] + returning:Array | undefined }; /** on conflict condition type for table "subclassification" */ ["subclassification_on_conflict"]: GraphQLTypes["subclassification_on_conflict"]; @@ -9298,119 +9298,119 @@ end). throws an error if top level container is not an array */ /** fetch aggregated fields from the table: "webhook" */ aggregateWebhooks:ModelTypes["webhook_aggregate"], /** fetch data from the table: "booking" using primary key columns */ - booking?:ModelTypes["booking"], + booking?:ModelTypes["booking"] | undefined, /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?:ModelTypes["bookingStatus"], + bookingStatus?:ModelTypes["bookingStatus"] | undefined, /** fetch data from the table: "booking_status" */ - bookingStatuses:ModelTypes["bookingStatus"][], + bookingStatuses:Array | undefined, /** fetch data from the table: "booking_channel" */ - booking_channel:ModelTypes["booking_channel"][], + booking_channel:Array | undefined, /** fetch aggregated fields from the table: "booking_channel" */ booking_channel_aggregate:ModelTypes["booking_channel_aggregate"], /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?:ModelTypes["booking_channel"], + booking_channel_by_pk?:ModelTypes["booking_channel"] | undefined, /** An array relationship */ - bookings:ModelTypes["booking"][], + bookings:Array | undefined, /** fetch data from the table: "classification" using primary key columns */ - classification?:ModelTypes["classification"], + classification?:ModelTypes["classification"] | undefined, /** fetch data from the table: "classification" */ - classifications:ModelTypes["classification"][], + classifications:Array | undefined, /** fetch data from the table: "connection" using primary key columns */ - connection?:ModelTypes["connection"], + connection?:ModelTypes["connection"] | undefined, /** An array relationship */ - connections:ModelTypes["connection"][], + connections:Array | undefined, /** fetch data from the table: "currency" */ - currencies:ModelTypes["currency"][], + currencies:Array | undefined, /** fetch data from the table: "currency" using primary key columns */ - currency?:ModelTypes["currency"], + currency?:ModelTypes["currency"] | undefined, /** An array relationship */ - entities:ModelTypes["entity"][], + entities:Array | undefined, /** fetch data from the table: "entity" using primary key columns */ - entity?:ModelTypes["entity"], + entity?:ModelTypes["entity"] | undefined, /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?:ModelTypes["entityStatus"], + entityStatus?:ModelTypes["entityStatus"] | undefined, /** fetch data from the table: "entity_status" */ - entityStatuses:ModelTypes["entityStatus"][], + entityStatuses:Array | undefined, /** fetch data from the table: "integration" using primary key columns */ - integration?:ModelTypes["integration"], + integration?:ModelTypes["integration"] | undefined, /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?:ModelTypes["integrationType"], + integrationType?:ModelTypes["integrationType"] | undefined, /** fetch data from the table: "integration_type" */ - integrationTypes:ModelTypes["integrationType"][], + integrationTypes:Array | undefined, /** An array relationship */ - integrations:ModelTypes["integration"][], + integrations:Array | undefined, /** fetch data from the table: "issue" using primary key columns */ - issue?:ModelTypes["issue"], + issue?:ModelTypes["issue"] | undefined, /** An array relationship */ - issues:ModelTypes["issue"][], + issues:Array | undefined, /** fetch data from the table: "job" using primary key columns */ - job?:ModelTypes["job"], + job?:ModelTypes["job"] | undefined, /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?:ModelTypes["jobMethod"], + jobMethod?:ModelTypes["jobMethod"] | undefined, /** fetch data from the table: "job_method" */ - jobMethods:ModelTypes["jobMethod"][], + jobMethods:Array | undefined, /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?:ModelTypes["jobStatus"], + jobStatus?:ModelTypes["jobStatus"] | undefined, /** fetch data from the table: "job_status" */ - jobStatuses:ModelTypes["jobStatus"][], + jobStatuses:Array | undefined, /** An array relationship */ - jobs:ModelTypes["job"][], + jobs:Array | undefined, /** fetch data from the table: "line" using primary key columns */ - line?:ModelTypes["line"], + line?:ModelTypes["line"] | undefined, /** An array relationship */ - lines:ModelTypes["line"][], + lines:Array | undefined, /** fetch data from the table: "metric" using primary key columns */ - metric?:ModelTypes["metric"], + metric?:ModelTypes["metric"] | undefined, /** An array relationship */ - metrics:ModelTypes["metric"][], + metrics:Array | undefined, /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?:ModelTypes["normalizedType"], + normalizedType?:ModelTypes["normalizedType"] | undefined, /** fetch data from the table: "normalized_type" */ - normalizedTypes:ModelTypes["normalizedType"][], + normalizedTypes:Array | undefined, /** fetch data from the table: "payment" using primary key columns */ - payment?:ModelTypes["payment"], + payment?:ModelTypes["payment"] | undefined, /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?:ModelTypes["paymentStatus"], + paymentStatus?:ModelTypes["paymentStatus"] | undefined, /** fetch data from the table: "payment_status" */ - paymentStatuses:ModelTypes["paymentStatus"][], + paymentStatuses:Array | undefined, /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?:ModelTypes["paymentType"], + paymentType?:ModelTypes["paymentType"] | undefined, /** fetch data from the table: "payment_type" */ - paymentTypes:ModelTypes["paymentType"][], + paymentTypes:Array | undefined, /** An array relationship */ - payments:ModelTypes["payment"][], + payments:Array | undefined, /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?:ModelTypes["subclassification"], + subclassification?:ModelTypes["subclassification"] | undefined, /** fetch data from the table: "subclassification" */ - subclassifications:ModelTypes["subclassification"][], + subclassifications:Array | undefined, /** fetch data from the table: "tag" using primary key columns */ - tag?:ModelTypes["tag"], + tag?:ModelTypes["tag"] | undefined, /** An array relationship */ - tags:ModelTypes["tag"][], + tags:Array | undefined, /** fetch data from the table: "team" using primary key columns */ - team?:ModelTypes["team"], + team?:ModelTypes["team"] | undefined, /** fetch data from the table: "team_user" using primary key columns */ - teamUser?:ModelTypes["teamUser"], + teamUser?:ModelTypes["teamUser"] | undefined, /** fetch data from the table: "team_user" */ - teamUsers:ModelTypes["teamUser"][], + teamUsers:Array | undefined, /** fetch data from the table: "team" */ - teams:ModelTypes["team"][], + teams:Array | undefined, /** fetch data from the table: "unit" using primary key columns */ - unit?:ModelTypes["unit"], + unit?:ModelTypes["unit"] | undefined, /** An array relationship */ - units:ModelTypes["unit"][], + units:Array | undefined, /** fetch data from the table: "user" using primary key columns */ - user?:ModelTypes["user"], + user?:ModelTypes["user"] | undefined, /** fetch data from the table: "user_status" using primary key columns */ - userStatus?:ModelTypes["userStatus"], + userStatus?:ModelTypes["userStatus"] | undefined, /** fetch data from the table: "user_status" */ - userStatuses:ModelTypes["userStatus"][], + userStatuses:Array | undefined, /** fetch data from the table: "user" */ - users:ModelTypes["user"][], + users:Array | undefined, /** fetch data from the table: "webhook" using primary key columns */ - webhook?:ModelTypes["webhook"], + webhook?:ModelTypes["webhook"] | undefined, /** An array relationship */ - webhooks:ModelTypes["webhook"][] + webhooks:Array | undefined }; /** columns and relationships of "tag" */ ["tag"]: { @@ -9420,7 +9420,7 @@ end). throws an error if top level container is not an array */ /** An object relationship */ connection:ModelTypes["connection"], connectionId:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], + createdAt?:ModelTypes["timestamptz"] | undefined, id:ModelTypes["uuid"], json:ModelTypes["jsonb"], /** An object relationship */ @@ -9434,18 +9434,18 @@ end). throws an error if top level container is not an array */ /** An object relationship */ unit:ModelTypes["unit"], unitId:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** aggregated selection of "tag" */ ["tag_aggregate"]: { - aggregate?:ModelTypes["tag_aggregate_fields"], - nodes:ModelTypes["tag"][] + aggregate?:ModelTypes["tag_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "tag" */ ["tag_aggregate_fields"]: { count:number, - max?:ModelTypes["tag_max_fields"], - min?:ModelTypes["tag_min_fields"] + max?:ModelTypes["tag_max_fields"] | undefined, + min?:ModelTypes["tag_min_fields"] | undefined }; /** order by aggregate values of table "tag" */ ["tag_aggregate_order_by"]: GraphQLTypes["tag_aggregate_order_by"]; @@ -9468,31 +9468,31 @@ end). throws an error if top level container is not an array */ ["tag_insert_input"]: GraphQLTypes["tag_insert_input"]; /** aggregate max on columns */ ["tag_max_fields"]: { - bookingId?:ModelTypes["uuid"], - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - paymentId?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + bookingId?:ModelTypes["uuid"] | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + paymentId?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by max() on columns of table "tag" */ ["tag_max_order_by"]: GraphQLTypes["tag_max_order_by"]; /** aggregate min on columns */ ["tag_min_fields"]: { - bookingId?:ModelTypes["uuid"], - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - paymentId?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - type?:string, - uniqueRef?:string, - unitId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] + bookingId?:ModelTypes["uuid"] | undefined, + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + paymentId?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + type?:string | undefined, + uniqueRef?:string | undefined, + unitId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by min() on columns of table "tag" */ ["tag_min_order_by"]: GraphQLTypes["tag_min_order_by"]; @@ -9501,7 +9501,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["tag"][] + returning:Array | undefined }; /** on conflict condition type for table "tag" */ ["tag_on_conflict"]: GraphQLTypes["tag_on_conflict"]; @@ -9519,94 +9519,94 @@ end). throws an error if top level container is not an array */ ["tag_update_column"]: GraphQLTypes["tag_update_column"]; /** columns and relationships of "team" */ ["team"]: { - address?:string, + address?:string | undefined, /** An array relationship */ - bookings:ModelTypes["booking"][], + bookings:Array | undefined, /** An aggregate relationship */ bookings_aggregate:ModelTypes["booking_aggregate"], - commissionPercentage?:ModelTypes["numeric"], + commissionPercentage?:ModelTypes["numeric"] | undefined, /** An array relationship */ - connections:ModelTypes["connection"][], + connections:Array | undefined, /** An aggregate relationship */ connections_aggregate:ModelTypes["connection_aggregate"], createdAt:ModelTypes["timestamptz"], - email?:string, + email?:string | undefined, /** An array relationship */ - entities:ModelTypes["entity"][], + entities:Array | undefined, /** An aggregate relationship */ entities_aggregate:ModelTypes["entity_aggregate"], id:ModelTypes["uuid"], /** An array relationship */ - integrations:ModelTypes["integration"][], + integrations:Array | undefined, /** An aggregate relationship */ integrations_aggregate:ModelTypes["integration_aggregate"], - isActive?:boolean, - isTest?:boolean, + isActive?:boolean | undefined, + isTest?:boolean | undefined, /** An array relationship */ - issues:ModelTypes["issue"][], + issues:Array | undefined, /** An aggregate relationship */ issues_aggregate:ModelTypes["issue_aggregate"], /** An array relationship */ - jobs:ModelTypes["job"][], + jobs:Array | undefined, /** An aggregate relationship */ jobs_aggregate:ModelTypes["job_aggregate"], /** An array relationship */ - lines:ModelTypes["line"][], + lines:Array | undefined, /** An aggregate relationship */ lines_aggregate:ModelTypes["line_aggregate"], /** An array relationship */ - members:ModelTypes["teamUser"][], + members:Array | undefined, /** An aggregate relationship */ members_aggregate:ModelTypes["teamUser_aggregate"], /** An array relationship */ - metrics:ModelTypes["metric"][], + metrics:Array | undefined, /** An aggregate relationship */ metrics_aggregate:ModelTypes["metric_aggregate"], name:string, /** An array relationship */ - payments:ModelTypes["payment"][], + payments:Array | undefined, /** An aggregate relationship */ payments_aggregate:ModelTypes["payment_aggregate"], - stripeId?:string, - stripeSubscriptionItemId?:string, - supportEmail?:string, - supportPhone?:string, + stripeId?:string | undefined, + stripeSubscriptionItemId?:string | undefined, + supportEmail?:string | undefined, + supportPhone?:string | undefined, /** An array relationship */ - tags:ModelTypes["tag"][], + tags:Array | undefined, /** An aggregate relationship */ tags_aggregate:ModelTypes["tag_aggregate"], /** An array relationship */ - units:ModelTypes["unit"][], + units:Array | undefined, /** An aggregate relationship */ units_aggregate:ModelTypes["unit_aggregate"], /** An array relationship */ - webhooks:ModelTypes["webhook"][], + webhooks:Array | undefined, /** An aggregate relationship */ webhooks_aggregate:ModelTypes["webhook_aggregate"], - website?:string + website?:string | undefined }; /** aggregated selection of "team" */ ["team_aggregate"]: { - aggregate?:ModelTypes["team_aggregate_fields"], - nodes:ModelTypes["team"][] + aggregate?:ModelTypes["team_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "team" */ ["team_aggregate_fields"]: { - avg?:ModelTypes["team_avg_fields"], + avg?:ModelTypes["team_avg_fields"] | undefined, count:number, - max?:ModelTypes["team_max_fields"], - min?:ModelTypes["team_min_fields"], - stddev?:ModelTypes["team_stddev_fields"], - stddev_pop?:ModelTypes["team_stddev_pop_fields"], - stddev_samp?:ModelTypes["team_stddev_samp_fields"], - sum?:ModelTypes["team_sum_fields"], - var_pop?:ModelTypes["team_var_pop_fields"], - var_samp?:ModelTypes["team_var_samp_fields"], - variance?:ModelTypes["team_variance_fields"] + max?:ModelTypes["team_max_fields"] | undefined, + min?:ModelTypes["team_min_fields"] | undefined, + stddev?:ModelTypes["team_stddev_fields"] | undefined, + stddev_pop?:ModelTypes["team_stddev_pop_fields"] | undefined, + stddev_samp?:ModelTypes["team_stddev_samp_fields"] | undefined, + sum?:ModelTypes["team_sum_fields"] | undefined, + var_pop?:ModelTypes["team_var_pop_fields"] | undefined, + var_samp?:ModelTypes["team_var_samp_fields"] | undefined, + variance?:ModelTypes["team_variance_fields"] | undefined }; /** aggregate avg on columns */ ["team_avg_fields"]: { - commissionPercentage?:number + commissionPercentage?:number | undefined }; /** Boolean expression to filter rows from the table "team". All fields are combined with a logical 'AND'. */ ["team_bool_exp"]: GraphQLTypes["team_bool_exp"]; @@ -9618,38 +9618,38 @@ end). throws an error if top level container is not an array */ ["team_insert_input"]: GraphQLTypes["team_insert_input"]; /** aggregate max on columns */ ["team_max_fields"]: { - address?:string, - commissionPercentage?:ModelTypes["numeric"], - createdAt?:ModelTypes["timestamptz"], - email?:string, - id?:ModelTypes["uuid"], - name?:string, - stripeId?:string, - stripeSubscriptionItemId?:string, - supportEmail?:string, - supportPhone?:string, - website?:string + address?:string | undefined, + commissionPercentage?:ModelTypes["numeric"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + email?:string | undefined, + id?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + stripeId?:string | undefined, + stripeSubscriptionItemId?:string | undefined, + supportEmail?:string | undefined, + supportPhone?:string | undefined, + website?:string | undefined }; /** aggregate min on columns */ ["team_min_fields"]: { - address?:string, - commissionPercentage?:ModelTypes["numeric"], - createdAt?:ModelTypes["timestamptz"], - email?:string, - id?:ModelTypes["uuid"], - name?:string, - stripeId?:string, - stripeSubscriptionItemId?:string, - supportEmail?:string, - supportPhone?:string, - website?:string + address?:string | undefined, + commissionPercentage?:ModelTypes["numeric"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + email?:string | undefined, + id?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + stripeId?:string | undefined, + stripeSubscriptionItemId?:string | undefined, + supportEmail?:string | undefined, + supportPhone?:string | undefined, + website?:string | undefined }; /** response of any mutation on the table "team" */ ["team_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["team"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "team" */ ["team_obj_rel_insert_input"]: GraphQLTypes["team_obj_rel_insert_input"]; @@ -9665,57 +9665,57 @@ end). throws an error if top level container is not an array */ ["team_set_input"]: GraphQLTypes["team_set_input"]; /** aggregate stddev on columns */ ["team_stddev_fields"]: { - commissionPercentage?:number + commissionPercentage?:number | undefined }; /** aggregate stddev_pop on columns */ ["team_stddev_pop_fields"]: { - commissionPercentage?:number + commissionPercentage?:number | undefined }; /** aggregate stddev_samp on columns */ ["team_stddev_samp_fields"]: { - commissionPercentage?:number + commissionPercentage?:number | undefined }; /** aggregate sum on columns */ ["team_sum_fields"]: { - commissionPercentage?:ModelTypes["numeric"] + commissionPercentage?:ModelTypes["numeric"] | undefined }; /** update columns of table "team" */ ["team_update_column"]: GraphQLTypes["team_update_column"]; /** aggregate var_pop on columns */ ["team_var_pop_fields"]: { - commissionPercentage?:number + commissionPercentage?:number | undefined }; /** aggregate var_samp on columns */ ["team_var_samp_fields"]: { - commissionPercentage?:number + commissionPercentage?:number | undefined }; /** aggregate variance on columns */ ["team_variance_fields"]: { - commissionPercentage?:number + commissionPercentage?:number | undefined }; /** columns and relationships of "team_user" */ ["teamUser"]: { - createdAt?:ModelTypes["timestamptz"], + createdAt?:ModelTypes["timestamptz"] | undefined, id:ModelTypes["uuid"], - role?:string, + role?:string | undefined, /** An object relationship */ team:ModelTypes["team"], teamId:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"], + updatedAt?:ModelTypes["timestamptz"] | undefined, /** An object relationship */ user:ModelTypes["user"], userId:ModelTypes["uuid"] }; /** aggregated selection of "team_user" */ ["teamUser_aggregate"]: { - aggregate?:ModelTypes["teamUser_aggregate_fields"], - nodes:ModelTypes["teamUser"][] + aggregate?:ModelTypes["teamUser_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "team_user" */ ["teamUser_aggregate_fields"]: { count:number, - max?:ModelTypes["teamUser_max_fields"], - min?:ModelTypes["teamUser_min_fields"] + max?:ModelTypes["teamUser_max_fields"] | undefined, + min?:ModelTypes["teamUser_min_fields"] | undefined }; /** order by aggregate values of table "team_user" */ ["teamUser_aggregate_order_by"]: GraphQLTypes["teamUser_aggregate_order_by"]; @@ -9729,23 +9729,23 @@ end). throws an error if top level container is not an array */ ["teamUser_insert_input"]: GraphQLTypes["teamUser_insert_input"]; /** aggregate max on columns */ ["teamUser_max_fields"]: { - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - role?:string, - teamId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"], - userId?:ModelTypes["uuid"] + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + role?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined, + userId?:ModelTypes["uuid"] | undefined }; /** order by max() on columns of table "team_user" */ ["teamUser_max_order_by"]: GraphQLTypes["teamUser_max_order_by"]; /** aggregate min on columns */ ["teamUser_min_fields"]: { - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - role?:string, - teamId?:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"], - userId?:ModelTypes["uuid"] + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + role?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined, + userId?:ModelTypes["uuid"] | undefined }; /** order by min() on columns of table "team_user" */ ["teamUser_min_order_by"]: GraphQLTypes["teamUser_min_order_by"]; @@ -9754,7 +9754,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["teamUser"][] + returning:Array | undefined }; /** on conflict condition type for table "team_user" */ ["teamUser_on_conflict"]: GraphQLTypes["teamUser_on_conflict"]; @@ -9774,40 +9774,40 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "unit" */ ["unit"]: { /** An array relationship */ - bookings:ModelTypes["booking"][], + bookings:Array | undefined, /** An aggregate relationship */ bookings_aggregate:ModelTypes["booking_aggregate"], /** An object relationship */ - connection?:ModelTypes["connection"], - connectionId?:ModelTypes["uuid"], + connection?:ModelTypes["connection"] | undefined, + connectionId?:ModelTypes["uuid"] | undefined, createdAt:ModelTypes["timestamptz"], /** An object relationship */ - entity?:ModelTypes["entity"], - entityId?:ModelTypes["uuid"], + entity?:ModelTypes["entity"] | undefined, + entityId?:ModelTypes["uuid"] | undefined, id:ModelTypes["uuid"], - metadata?:ModelTypes["jsonb"], - name?:string, - status?:string, + metadata?:ModelTypes["jsonb"] | undefined, + name?:string | undefined, + status?:string | undefined, /** An array relationship */ - tags:ModelTypes["tag"][], + tags:Array | undefined, /** An aggregate relationship */ tags_aggregate:ModelTypes["tag_aggregate"], /** An object relationship */ - team?:ModelTypes["team"], - teamId?:ModelTypes["uuid"], - uniqueRef?:string, + team?:ModelTypes["team"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + uniqueRef?:string | undefined, updatedAt:ModelTypes["timestamptz"] }; /** aggregated selection of "unit" */ ["unit_aggregate"]: { - aggregate?:ModelTypes["unit_aggregate_fields"], - nodes:ModelTypes["unit"][] + aggregate?:ModelTypes["unit_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "unit" */ ["unit_aggregate_fields"]: { count:number, - max?:ModelTypes["unit_max_fields"], - min?:ModelTypes["unit_min_fields"] + max?:ModelTypes["unit_max_fields"] | undefined, + min?:ModelTypes["unit_min_fields"] | undefined }; /** order by aggregate values of table "unit" */ ["unit_aggregate_order_by"]: GraphQLTypes["unit_aggregate_order_by"]; @@ -9830,29 +9830,29 @@ end). throws an error if top level container is not an array */ ["unit_insert_input"]: GraphQLTypes["unit_insert_input"]; /** aggregate max on columns */ ["unit_max_fields"]: { - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - entityId?:ModelTypes["uuid"], - id?:ModelTypes["uuid"], - name?:string, - status?:string, - teamId?:ModelTypes["uuid"], - uniqueRef?:string, - updatedAt?:ModelTypes["timestamptz"] + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + entityId?:ModelTypes["uuid"] | undefined, + id?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + status?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + uniqueRef?:string | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by max() on columns of table "unit" */ ["unit_max_order_by"]: GraphQLTypes["unit_max_order_by"]; /** aggregate min on columns */ ["unit_min_fields"]: { - connectionId?:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"], - entityId?:ModelTypes["uuid"], - id?:ModelTypes["uuid"], - name?:string, - status?:string, - teamId?:ModelTypes["uuid"], - uniqueRef?:string, - updatedAt?:ModelTypes["timestamptz"] + connectionId?:ModelTypes["uuid"] | undefined, + createdAt?:ModelTypes["timestamptz"] | undefined, + entityId?:ModelTypes["uuid"] | undefined, + id?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + status?:string | undefined, + teamId?:ModelTypes["uuid"] | undefined, + uniqueRef?:string | undefined, + updatedAt?:ModelTypes["timestamptz"] | undefined }; /** order by min() on columns of table "unit" */ ["unit_min_order_by"]: GraphQLTypes["unit_min_order_by"]; @@ -9861,7 +9861,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["unit"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "unit" */ ["unit_obj_rel_insert_input"]: GraphQLTypes["unit_obj_rel_insert_input"]; @@ -9881,29 +9881,29 @@ end). throws an error if top level container is not an array */ ["unit_update_column"]: GraphQLTypes["unit_update_column"]; /** columns and relationships of "user" */ ["user"]: { - createdAt?:ModelTypes["timestamptz"], + createdAt?:ModelTypes["timestamptz"] | undefined, email:string, id:ModelTypes["uuid"], isAdmin:boolean, /** An array relationship */ - memberships:ModelTypes["teamUser"][], + memberships:Array | undefined, /** An aggregate relationship */ memberships_aggregate:ModelTypes["teamUser_aggregate"], - name?:string, - status?:ModelTypes["user_status_enum"], - sub?:string, - trialExpiryAt?:ModelTypes["timestamptz"] + name?:string | undefined, + status?:ModelTypes["user_status_enum"] | undefined, + sub?:string | undefined, + trialExpiryAt?:ModelTypes["timestamptz"] | undefined }; /** aggregated selection of "user" */ ["user_aggregate"]: { - aggregate?:ModelTypes["user_aggregate_fields"], - nodes:ModelTypes["user"][] + aggregate?:ModelTypes["user_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "user" */ ["user_aggregate_fields"]: { count:number, - max?:ModelTypes["user_max_fields"], - min?:ModelTypes["user_min_fields"] + max?:ModelTypes["user_max_fields"] | undefined, + min?:ModelTypes["user_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "user". All fields are combined with a logical 'AND'. */ ["user_bool_exp"]: GraphQLTypes["user_bool_exp"]; @@ -9913,28 +9913,28 @@ end). throws an error if top level container is not an array */ ["user_insert_input"]: GraphQLTypes["user_insert_input"]; /** aggregate max on columns */ ["user_max_fields"]: { - createdAt?:ModelTypes["timestamptz"], - email?:string, - id?:ModelTypes["uuid"], - name?:string, - sub?:string, - trialExpiryAt?:ModelTypes["timestamptz"] + createdAt?:ModelTypes["timestamptz"] | undefined, + email?:string | undefined, + id?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + sub?:string | undefined, + trialExpiryAt?:ModelTypes["timestamptz"] | undefined }; /** aggregate min on columns */ ["user_min_fields"]: { - createdAt?:ModelTypes["timestamptz"], - email?:string, - id?:ModelTypes["uuid"], - name?:string, - sub?:string, - trialExpiryAt?:ModelTypes["timestamptz"] + createdAt?:ModelTypes["timestamptz"] | undefined, + email?:string | undefined, + id?:ModelTypes["uuid"] | undefined, + name?:string | undefined, + sub?:string | undefined, + trialExpiryAt?:ModelTypes["timestamptz"] | undefined }; /** response of any mutation on the table "user" */ ["user_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["user"][] + returning:Array | undefined }; /** input type for inserting object relation for remote table "user" */ ["user_obj_rel_insert_input"]: GraphQLTypes["user_obj_rel_insert_input"]; @@ -9959,14 +9959,14 @@ end). throws an error if top level container is not an array */ }; /** aggregated selection of "user_status" */ ["userStatus_aggregate"]: { - aggregate?:ModelTypes["userStatus_aggregate_fields"], - nodes:ModelTypes["userStatus"][] + aggregate?:ModelTypes["userStatus_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "user_status" */ ["userStatus_aggregate_fields"]: { count:number, - max?:ModelTypes["userStatus_max_fields"], - min?:ModelTypes["userStatus_min_fields"] + max?:ModelTypes["userStatus_max_fields"] | undefined, + min?:ModelTypes["userStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "user_status". All fields are combined with a logical 'AND'. */ ["userStatus_bool_exp"]: GraphQLTypes["userStatus_bool_exp"]; @@ -9976,18 +9976,18 @@ end). throws an error if top level container is not an array */ ["userStatus_insert_input"]: GraphQLTypes["userStatus_insert_input"]; /** aggregate max on columns */ ["userStatus_max_fields"]: { - name?:string + name?:string | undefined }; /** aggregate min on columns */ ["userStatus_min_fields"]: { - name?:string + name?:string | undefined }; /** response of any mutation on the table "user_status" */ ["userStatus_mutation_response"]: { /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["userStatus"][] + returning:Array | undefined }; /** on conflict condition type for table "user_status" */ ["userStatus_on_conflict"]: GraphQLTypes["userStatus_on_conflict"]; @@ -10007,25 +10007,25 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "webhook" */ ["webhook"]: { createdAt:ModelTypes["timestamptz"], - headers?:ModelTypes["jsonb"], + headers?:ModelTypes["jsonb"] | undefined, id:ModelTypes["uuid"], /** An object relationship */ team:ModelTypes["team"], teamId:ModelTypes["uuid"], types:ModelTypes["jsonb"], - types2?:ModelTypes["_text"], + types2?:ModelTypes["_text"] | undefined, url:string }; /** aggregated selection of "webhook" */ ["webhook_aggregate"]: { - aggregate?:ModelTypes["webhook_aggregate_fields"], - nodes:ModelTypes["webhook"][] + aggregate?:ModelTypes["webhook_aggregate_fields"] | undefined, + nodes:Array | undefined }; /** aggregate fields of "webhook" */ ["webhook_aggregate_fields"]: { count:number, - max?:ModelTypes["webhook_max_fields"], - min?:ModelTypes["webhook_min_fields"] + max?:ModelTypes["webhook_max_fields"] | undefined, + min?:ModelTypes["webhook_min_fields"] | undefined }; /** order by aggregate values of table "webhook" */ ["webhook_aggregate_order_by"]: GraphQLTypes["webhook_aggregate_order_by"]; @@ -10048,19 +10048,19 @@ end). throws an error if top level container is not an array */ ["webhook_insert_input"]: GraphQLTypes["webhook_insert_input"]; /** aggregate max on columns */ ["webhook_max_fields"]: { - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - url?:string + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + url?:string | undefined }; /** order by max() on columns of table "webhook" */ ["webhook_max_order_by"]: GraphQLTypes["webhook_max_order_by"]; /** aggregate min on columns */ ["webhook_min_fields"]: { - createdAt?:ModelTypes["timestamptz"], - id?:ModelTypes["uuid"], - teamId?:ModelTypes["uuid"], - url?:string + createdAt?:ModelTypes["timestamptz"] | undefined, + id?:ModelTypes["uuid"] | undefined, + teamId?:ModelTypes["uuid"] | undefined, + url?:string | undefined }; /** order by min() on columns of table "webhook" */ ["webhook_min_order_by"]: GraphQLTypes["webhook_min_order_by"]; @@ -10069,7 +10069,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows:number, /** data from the rows affected by the mutation */ - returning:ModelTypes["webhook"][] + returning:Array | undefined }; /** on conflict condition type for table "webhook" */ ["webhook_on_conflict"]: GraphQLTypes["webhook_on_conflict"]; @@ -10091,155 +10091,155 @@ export type GraphQLTypes = { ["_text"]:any; /** Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. */ ["_text_comparison_exp"]: { - _eq?: GraphQLTypes["_text"], - _gt?: GraphQLTypes["_text"], - _gte?: GraphQLTypes["_text"], + _eq?: GraphQLTypes["_text"] | undefined, + _gt?: GraphQLTypes["_text"] | undefined, + _gte?: GraphQLTypes["_text"] | undefined, _in?: Array, - _is_null?: boolean, - _lt?: GraphQLTypes["_text"], - _lte?: GraphQLTypes["_text"], - _neq?: GraphQLTypes["_text"], + _is_null?: boolean | undefined, + _lt?: GraphQLTypes["_text"] | undefined, + _lte?: GraphQLTypes["_text"] | undefined, + _neq?: GraphQLTypes["_text"] | undefined, _nin?: Array }; /** columns and relationships of "booking" */ ["booking"]: { __typename: "booking", - bookedAt?: GraphQLTypes["timestamptz"], - bookerName?: string, - bookingChannel?: GraphQLTypes["booking_channel_enum"], - checkIn?: GraphQLTypes["timestamptz"], - checkOut?: GraphQLTypes["timestamptz"], - confirmationCode?: string, + bookedAt?: GraphQLTypes["timestamptz"] | undefined, + bookerName?: string | undefined, + bookingChannel?: GraphQLTypes["booking_channel_enum"] | undefined, + checkIn?: GraphQLTypes["timestamptz"] | undefined, + checkOut?: GraphQLTypes["timestamptz"] | undefined, + confirmationCode?: string | undefined, /** An object relationship */ - connection?: GraphQLTypes["connection"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - currency?: GraphQLTypes["currency_enum"], + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + currency?: GraphQLTypes["currency_enum"] | undefined, /** An object relationship */ - entity?: GraphQLTypes["entity"], - entityId?: GraphQLTypes["uuid"], - guestName?: string, - guests?: number, + entity?: GraphQLTypes["entity"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + guestName?: string | undefined, + guests?: number | undefined, id: GraphQLTypes["uuid"], - isOTA?: boolean, + isOTA?: boolean | undefined, /** An array relationship */ - lines: Array, + lines: Array | undefined, /** An aggregate relationship */ lines_aggregate: GraphQLTypes["line_aggregate"], - metadata?: GraphQLTypes["jsonb"], - nights?: number, + metadata?: GraphQLTypes["jsonb"] | undefined, + nights?: number | undefined, /** An object relationship */ - otaBooking?: GraphQLTypes["booking"], - otaBookingId?: GraphQLTypes["uuid"], + otaBooking?: GraphQLTypes["booking"] | undefined, + otaBookingId?: GraphQLTypes["uuid"] | undefined, /** An array relationship */ - relatedBookings: Array, + relatedBookings: Array | undefined, /** An aggregate relationship */ relatedBookings_aggregate: GraphQLTypes["booking_aggregate"], - status?: GraphQLTypes["booking_status_enum"], + status?: GraphQLTypes["booking_status_enum"] | undefined, /** An array relationship */ - tags: Array, + tags: Array | undefined, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ - team?: GraphQLTypes["team"], - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, /** An object relationship */ - unit?: GraphQLTypes["unit"], - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + unit?: GraphQLTypes["unit"] | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "booking" */ ["booking_aggregate"]: { __typename: "booking_aggregate", - aggregate?: GraphQLTypes["booking_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["booking_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "booking" */ ["booking_aggregate_fields"]: { __typename: "booking_aggregate_fields", - avg?: GraphQLTypes["booking_avg_fields"], + avg?: GraphQLTypes["booking_avg_fields"] | undefined, count: number, - max?: GraphQLTypes["booking_max_fields"], - min?: GraphQLTypes["booking_min_fields"], - stddev?: GraphQLTypes["booking_stddev_fields"], - stddev_pop?: GraphQLTypes["booking_stddev_pop_fields"], - stddev_samp?: GraphQLTypes["booking_stddev_samp_fields"], - sum?: GraphQLTypes["booking_sum_fields"], - var_pop?: GraphQLTypes["booking_var_pop_fields"], - var_samp?: GraphQLTypes["booking_var_samp_fields"], - variance?: GraphQLTypes["booking_variance_fields"] + max?: GraphQLTypes["booking_max_fields"] | undefined, + min?: GraphQLTypes["booking_min_fields"] | undefined, + stddev?: GraphQLTypes["booking_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["booking_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["booking_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["booking_sum_fields"] | undefined, + var_pop?: GraphQLTypes["booking_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["booking_var_samp_fields"] | undefined, + variance?: GraphQLTypes["booking_variance_fields"] | undefined }; /** order by aggregate values of table "booking" */ ["booking_aggregate_order_by"]: { - avg?: GraphQLTypes["booking_avg_order_by"], - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["booking_max_order_by"], - min?: GraphQLTypes["booking_min_order_by"], - stddev?: GraphQLTypes["booking_stddev_order_by"], - stddev_pop?: GraphQLTypes["booking_stddev_pop_order_by"], - stddev_samp?: GraphQLTypes["booking_stddev_samp_order_by"], - sum?: GraphQLTypes["booking_sum_order_by"], - var_pop?: GraphQLTypes["booking_var_pop_order_by"], - var_samp?: GraphQLTypes["booking_var_samp_order_by"], - variance?: GraphQLTypes["booking_variance_order_by"] + avg?: GraphQLTypes["booking_avg_order_by"] | undefined, + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["booking_max_order_by"] | undefined, + min?: GraphQLTypes["booking_min_order_by"] | undefined, + stddev?: GraphQLTypes["booking_stddev_order_by"] | undefined, + stddev_pop?: GraphQLTypes["booking_stddev_pop_order_by"] | undefined, + stddev_samp?: GraphQLTypes["booking_stddev_samp_order_by"] | undefined, + sum?: GraphQLTypes["booking_sum_order_by"] | undefined, + var_pop?: GraphQLTypes["booking_var_pop_order_by"] | undefined, + var_samp?: GraphQLTypes["booking_var_samp_order_by"] | undefined, + variance?: GraphQLTypes["booking_variance_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["booking_append_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "booking" */ ["booking_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["booking_on_conflict"] + on_conflict?: GraphQLTypes["booking_on_conflict"] | undefined }; /** aggregate avg on columns */ ["booking_avg_fields"]: { __typename: "booking_avg_fields", - guests?: number, - nights?: number + guests?: number | undefined, + nights?: number | undefined }; /** order by avg() on columns of table "booking" */ ["booking_avg_order_by"]: { - guests?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"] + guests?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined }; /** Boolean expression to filter rows from the table "booking". All fields are combined with a logical 'AND'. */ ["booking_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["booking_bool_exp"], + _not?: GraphQLTypes["booking_bool_exp"] | undefined, _or?: Array, - bookedAt?: GraphQLTypes["timestamptz_comparison_exp"], - bookerName?: GraphQLTypes["String_comparison_exp"], - bookingChannel?: GraphQLTypes["booking_channel_enum_comparison_exp"], - checkIn?: GraphQLTypes["timestamptz_comparison_exp"], - checkOut?: GraphQLTypes["timestamptz_comparison_exp"], - confirmationCode?: GraphQLTypes["String_comparison_exp"], - connection?: GraphQLTypes["connection_bool_exp"], - connectionId?: GraphQLTypes["uuid_comparison_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - currency?: GraphQLTypes["currency_enum_comparison_exp"], - entity?: GraphQLTypes["entity_bool_exp"], - entityId?: GraphQLTypes["uuid_comparison_exp"], - guestName?: GraphQLTypes["String_comparison_exp"], - guests?: GraphQLTypes["Int_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - isOTA?: GraphQLTypes["Boolean_comparison_exp"], - lines?: GraphQLTypes["line_bool_exp"], - metadata?: GraphQLTypes["jsonb_comparison_exp"], - nights?: GraphQLTypes["Int_comparison_exp"], - otaBooking?: GraphQLTypes["booking_bool_exp"], - otaBookingId?: GraphQLTypes["uuid_comparison_exp"], - relatedBookings?: GraphQLTypes["booking_bool_exp"], - status?: GraphQLTypes["booking_status_enum_comparison_exp"], - tags?: GraphQLTypes["tag_bool_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - uniqueRef?: GraphQLTypes["String_comparison_exp"], - unit?: GraphQLTypes["unit_bool_exp"], - unitId?: GraphQLTypes["uuid_comparison_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] + bookedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + bookerName?: GraphQLTypes["String_comparison_exp"] | undefined, + bookingChannel?: GraphQLTypes["booking_channel_enum_comparison_exp"] | undefined, + checkIn?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + checkOut?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + confirmationCode?: GraphQLTypes["String_comparison_exp"] | undefined, + connection?: GraphQLTypes["connection_bool_exp"] | undefined, + connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + currency?: GraphQLTypes["currency_enum_comparison_exp"] | undefined, + entity?: GraphQLTypes["entity_bool_exp"] | undefined, + entityId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + guestName?: GraphQLTypes["String_comparison_exp"] | undefined, + guests?: GraphQLTypes["Int_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + isOTA?: GraphQLTypes["Boolean_comparison_exp"] | undefined, + lines?: GraphQLTypes["line_bool_exp"] | undefined, + metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + nights?: GraphQLTypes["Int_comparison_exp"] | undefined, + otaBooking?: GraphQLTypes["booking_bool_exp"] | undefined, + otaBookingId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + relatedBookings?: GraphQLTypes["booking_bool_exp"] | undefined, + status?: GraphQLTypes["booking_status_enum_comparison_exp"] | undefined, + tags?: GraphQLTypes["tag_bool_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, + unit?: GraphQLTypes["unit_bool_exp"] | undefined, + unitId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined }; /** columns and relationships of "booking_channel" */ ["booking_channel"]: { @@ -10249,47 +10249,47 @@ export type GraphQLTypes = { /** aggregated selection of "booking_channel" */ ["booking_channel_aggregate"]: { __typename: "booking_channel_aggregate", - aggregate?: GraphQLTypes["booking_channel_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["booking_channel_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "booking_channel" */ ["booking_channel_aggregate_fields"]: { __typename: "booking_channel_aggregate_fields", count: number, - max?: GraphQLTypes["booking_channel_max_fields"], - min?: GraphQLTypes["booking_channel_min_fields"] + max?: GraphQLTypes["booking_channel_max_fields"] | undefined, + min?: GraphQLTypes["booking_channel_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "booking_channel". All fields are combined with a logical 'AND'. */ ["booking_channel_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["booking_channel_bool_exp"], + _not?: GraphQLTypes["booking_channel_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "booking_channel" */ ["booking_channel_constraint"]: booking_channel_constraint; ["booking_channel_enum"]: booking_channel_enum; /** Boolean expression to compare columns of type "booking_channel_enum". All fields are combined with logical 'AND'. */ ["booking_channel_enum_comparison_exp"]: { - _eq?: GraphQLTypes["booking_channel_enum"], + _eq?: GraphQLTypes["booking_channel_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["booking_channel_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["booking_channel_enum"] | undefined, _nin?: Array }; /** input type for inserting data into table "booking_channel" */ ["booking_channel_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["booking_channel_max_fields"]: { __typename: "booking_channel_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["booking_channel_min_fields"]: { __typename: "booking_channel_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "booking_channel" */ ["booking_channel_mutation_response"]: { @@ -10297,17 +10297,17 @@ export type GraphQLTypes = { /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "booking_channel" */ ["booking_channel_on_conflict"]: { constraint: GraphQLTypes["booking_channel_constraint"], - update_columns: Array, - where?: GraphQLTypes["booking_channel_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["booking_channel_bool_exp"] | undefined }; /** Ordering options when selecting data from "booking_channel". */ ["booking_channel_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: booking_channel */ ["booking_channel_pk_columns_input"]: { @@ -10317,7 +10317,7 @@ export type GraphQLTypes = { ["booking_channel_select_column"]: booking_channel_select_column; /** input type for updating data in table "booking_channel" */ ["booking_channel_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "booking_channel" */ ["booking_channel_update_column"]: booking_channel_update_column; @@ -10330,131 +10330,131 @@ export type GraphQLTypes = { /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["booking_delete_elem_input"]: { - metadata?: number + metadata?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["booking_delete_key_input"]: { - metadata?: string + metadata?: string | undefined }; /** input type for incrementing numeric columns in table "booking" */ ["booking_inc_input"]: { - guests?: number, - nights?: number + guests?: number | undefined, + nights?: number | undefined }; /** input type for inserting data into table "booking" */ ["booking_insert_input"]: { - bookedAt?: GraphQLTypes["timestamptz"], - bookerName?: string, - bookingChannel?: GraphQLTypes["booking_channel_enum"], - checkIn?: GraphQLTypes["timestamptz"], - checkOut?: GraphQLTypes["timestamptz"], - confirmationCode?: string, - connection?: GraphQLTypes["connection_obj_rel_insert_input"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - currency?: GraphQLTypes["currency_enum"], - entity?: GraphQLTypes["entity_obj_rel_insert_input"], - entityId?: GraphQLTypes["uuid"], - guestName?: string, - guests?: number, - id?: GraphQLTypes["uuid"], - isOTA?: boolean, - lines?: GraphQLTypes["line_arr_rel_insert_input"], - metadata?: GraphQLTypes["jsonb"], - nights?: number, - otaBooking?: GraphQLTypes["booking_obj_rel_insert_input"], - otaBookingId?: GraphQLTypes["uuid"], - relatedBookings?: GraphQLTypes["booking_arr_rel_insert_input"], - status?: GraphQLTypes["booking_status_enum"], - tags?: GraphQLTypes["tag_arr_rel_insert_input"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, - unit?: GraphQLTypes["unit_obj_rel_insert_input"], - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookedAt?: GraphQLTypes["timestamptz"] | undefined, + bookerName?: string | undefined, + bookingChannel?: GraphQLTypes["booking_channel_enum"] | undefined, + checkIn?: GraphQLTypes["timestamptz"] | undefined, + checkOut?: GraphQLTypes["timestamptz"] | undefined, + confirmationCode?: string | undefined, + connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + currency?: GraphQLTypes["currency_enum"] | undefined, + entity?: GraphQLTypes["entity_obj_rel_insert_input"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + guestName?: string | undefined, + guests?: number | undefined, + id?: GraphQLTypes["uuid"] | undefined, + isOTA?: boolean | undefined, + lines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + nights?: number | undefined, + otaBooking?: GraphQLTypes["booking_obj_rel_insert_input"] | undefined, + otaBookingId?: GraphQLTypes["uuid"] | undefined, + relatedBookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, + status?: GraphQLTypes["booking_status_enum"] | undefined, + tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + unit?: GraphQLTypes["unit_obj_rel_insert_input"] | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate max on columns */ ["booking_max_fields"]: { __typename: "booking_max_fields", - bookedAt?: GraphQLTypes["timestamptz"], - bookerName?: string, - checkIn?: GraphQLTypes["timestamptz"], - checkOut?: GraphQLTypes["timestamptz"], - confirmationCode?: string, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - entityId?: GraphQLTypes["uuid"], - guestName?: string, - guests?: number, - id?: GraphQLTypes["uuid"], - nights?: number, - otaBookingId?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookedAt?: GraphQLTypes["timestamptz"] | undefined, + bookerName?: string | undefined, + checkIn?: GraphQLTypes["timestamptz"] | undefined, + checkOut?: GraphQLTypes["timestamptz"] | undefined, + confirmationCode?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + guestName?: string | undefined, + guests?: number | undefined, + id?: GraphQLTypes["uuid"] | undefined, + nights?: number | undefined, + otaBookingId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "booking" */ ["booking_max_order_by"]: { - bookedAt?: GraphQLTypes["order_by"], - bookerName?: GraphQLTypes["order_by"], - checkIn?: GraphQLTypes["order_by"], - checkOut?: GraphQLTypes["order_by"], - confirmationCode?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - entityId?: GraphQLTypes["order_by"], - guestName?: GraphQLTypes["order_by"], - guests?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"], - otaBookingId?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + bookedAt?: GraphQLTypes["order_by"] | undefined, + bookerName?: GraphQLTypes["order_by"] | undefined, + checkIn?: GraphQLTypes["order_by"] | undefined, + checkOut?: GraphQLTypes["order_by"] | undefined, + confirmationCode?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + entityId?: GraphQLTypes["order_by"] | undefined, + guestName?: GraphQLTypes["order_by"] | undefined, + guests?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined, + otaBookingId?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["booking_min_fields"]: { __typename: "booking_min_fields", - bookedAt?: GraphQLTypes["timestamptz"], - bookerName?: string, - checkIn?: GraphQLTypes["timestamptz"], - checkOut?: GraphQLTypes["timestamptz"], - confirmationCode?: string, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - entityId?: GraphQLTypes["uuid"], - guestName?: string, - guests?: number, - id?: GraphQLTypes["uuid"], - nights?: number, - otaBookingId?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookedAt?: GraphQLTypes["timestamptz"] | undefined, + bookerName?: string | undefined, + checkIn?: GraphQLTypes["timestamptz"] | undefined, + checkOut?: GraphQLTypes["timestamptz"] | undefined, + confirmationCode?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + guestName?: string | undefined, + guests?: number | undefined, + id?: GraphQLTypes["uuid"] | undefined, + nights?: number | undefined, + otaBookingId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "booking" */ ["booking_min_order_by"]: { - bookedAt?: GraphQLTypes["order_by"], - bookerName?: GraphQLTypes["order_by"], - checkIn?: GraphQLTypes["order_by"], - checkOut?: GraphQLTypes["order_by"], - confirmationCode?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - entityId?: GraphQLTypes["order_by"], - guestName?: GraphQLTypes["order_by"], - guests?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"], - otaBookingId?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + bookedAt?: GraphQLTypes["order_by"] | undefined, + bookerName?: GraphQLTypes["order_by"] | undefined, + checkIn?: GraphQLTypes["order_by"] | undefined, + checkOut?: GraphQLTypes["order_by"] | undefined, + confirmationCode?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + entityId?: GraphQLTypes["order_by"] | undefined, + guestName?: GraphQLTypes["order_by"] | undefined, + guests?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined, + otaBookingId?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "booking" */ ["booking_mutation_response"]: { @@ -10462,52 +10462,52 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "booking" */ ["booking_obj_rel_insert_input"]: { data: GraphQLTypes["booking_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["booking_on_conflict"] + on_conflict?: GraphQLTypes["booking_on_conflict"] | undefined }; /** on conflict condition type for table "booking" */ ["booking_on_conflict"]: { constraint: GraphQLTypes["booking_constraint"], - update_columns: Array, - where?: GraphQLTypes["booking_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["booking_bool_exp"] | undefined }; /** Ordering options when selecting data from "booking". */ ["booking_order_by"]: { - bookedAt?: GraphQLTypes["order_by"], - bookerName?: GraphQLTypes["order_by"], - bookingChannel?: GraphQLTypes["order_by"], - checkIn?: GraphQLTypes["order_by"], - checkOut?: GraphQLTypes["order_by"], - confirmationCode?: GraphQLTypes["order_by"], - connection?: GraphQLTypes["connection_order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - currency?: GraphQLTypes["order_by"], - entity?: GraphQLTypes["entity_order_by"], - entityId?: GraphQLTypes["order_by"], - guestName?: GraphQLTypes["order_by"], - guests?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - isOTA?: GraphQLTypes["order_by"], - lines_aggregate?: GraphQLTypes["line_aggregate_order_by"], - metadata?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"], - otaBooking?: GraphQLTypes["booking_order_by"], - otaBookingId?: GraphQLTypes["order_by"], - relatedBookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"], - status?: GraphQLTypes["order_by"], - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unit?: GraphQLTypes["unit_order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + bookedAt?: GraphQLTypes["order_by"] | undefined, + bookerName?: GraphQLTypes["order_by"] | undefined, + bookingChannel?: GraphQLTypes["order_by"] | undefined, + checkIn?: GraphQLTypes["order_by"] | undefined, + checkOut?: GraphQLTypes["order_by"] | undefined, + confirmationCode?: GraphQLTypes["order_by"] | undefined, + connection?: GraphQLTypes["connection_order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + currency?: GraphQLTypes["order_by"] | undefined, + entity?: GraphQLTypes["entity_order_by"] | undefined, + entityId?: GraphQLTypes["order_by"] | undefined, + guestName?: GraphQLTypes["order_by"] | undefined, + guests?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + isOTA?: GraphQLTypes["order_by"] | undefined, + lines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, + metadata?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined, + otaBooking?: GraphQLTypes["booking_order_by"] | undefined, + otaBookingId?: GraphQLTypes["order_by"] | undefined, + relatedBookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unit?: GraphQLTypes["unit_order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: booking */ ["booking_pk_columns_input"]: { @@ -10515,122 +10515,122 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["booking_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "booking" */ ["booking_select_column"]: booking_select_column; /** input type for updating data in table "booking" */ ["booking_set_input"]: { - bookedAt?: GraphQLTypes["timestamptz"], - bookerName?: string, - bookingChannel?: GraphQLTypes["booking_channel_enum"], - checkIn?: GraphQLTypes["timestamptz"], - checkOut?: GraphQLTypes["timestamptz"], - confirmationCode?: string, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - currency?: GraphQLTypes["currency_enum"], - entityId?: GraphQLTypes["uuid"], - guestName?: string, - guests?: number, - id?: GraphQLTypes["uuid"], - isOTA?: boolean, - metadata?: GraphQLTypes["jsonb"], - nights?: number, - otaBookingId?: GraphQLTypes["uuid"], - status?: GraphQLTypes["booking_status_enum"], - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookedAt?: GraphQLTypes["timestamptz"] | undefined, + bookerName?: string | undefined, + bookingChannel?: GraphQLTypes["booking_channel_enum"] | undefined, + checkIn?: GraphQLTypes["timestamptz"] | undefined, + checkOut?: GraphQLTypes["timestamptz"] | undefined, + confirmationCode?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + currency?: GraphQLTypes["currency_enum"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + guestName?: string | undefined, + guests?: number | undefined, + id?: GraphQLTypes["uuid"] | undefined, + isOTA?: boolean | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + nights?: number | undefined, + otaBookingId?: GraphQLTypes["uuid"] | undefined, + status?: GraphQLTypes["booking_status_enum"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; ["booking_status_enum"]: booking_status_enum; /** Boolean expression to compare columns of type "booking_status_enum". All fields are combined with logical 'AND'. */ ["booking_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["booking_status_enum"], + _eq?: GraphQLTypes["booking_status_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["booking_status_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["booking_status_enum"] | undefined, _nin?: Array }; /** aggregate stddev on columns */ ["booking_stddev_fields"]: { __typename: "booking_stddev_fields", - guests?: number, - nights?: number + guests?: number | undefined, + nights?: number | undefined }; /** order by stddev() on columns of table "booking" */ ["booking_stddev_order_by"]: { - guests?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"] + guests?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined }; /** aggregate stddev_pop on columns */ ["booking_stddev_pop_fields"]: { __typename: "booking_stddev_pop_fields", - guests?: number, - nights?: number + guests?: number | undefined, + nights?: number | undefined }; /** order by stddev_pop() on columns of table "booking" */ ["booking_stddev_pop_order_by"]: { - guests?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"] + guests?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined }; /** aggregate stddev_samp on columns */ ["booking_stddev_samp_fields"]: { __typename: "booking_stddev_samp_fields", - guests?: number, - nights?: number + guests?: number | undefined, + nights?: number | undefined }; /** order by stddev_samp() on columns of table "booking" */ ["booking_stddev_samp_order_by"]: { - guests?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"] + guests?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined }; /** aggregate sum on columns */ ["booking_sum_fields"]: { __typename: "booking_sum_fields", - guests?: number, - nights?: number + guests?: number | undefined, + nights?: number | undefined }; /** order by sum() on columns of table "booking" */ ["booking_sum_order_by"]: { - guests?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"] + guests?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined }; /** update columns of table "booking" */ ["booking_update_column"]: booking_update_column; /** aggregate var_pop on columns */ ["booking_var_pop_fields"]: { __typename: "booking_var_pop_fields", - guests?: number, - nights?: number + guests?: number | undefined, + nights?: number | undefined }; /** order by var_pop() on columns of table "booking" */ ["booking_var_pop_order_by"]: { - guests?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"] + guests?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined }; /** aggregate var_samp on columns */ ["booking_var_samp_fields"]: { __typename: "booking_var_samp_fields", - guests?: number, - nights?: number + guests?: number | undefined, + nights?: number | undefined }; /** order by var_samp() on columns of table "booking" */ ["booking_var_samp_order_by"]: { - guests?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"] + guests?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined }; /** aggregate variance on columns */ ["booking_variance_fields"]: { __typename: "booking_variance_fields", - guests?: number, - nights?: number + guests?: number | undefined, + nights?: number | undefined }; /** order by variance() on columns of table "booking" */ ["booking_variance_order_by"]: { - guests?: GraphQLTypes["order_by"], - nights?: GraphQLTypes["order_by"] + guests?: GraphQLTypes["order_by"] | undefined, + nights?: GraphQLTypes["order_by"] | undefined }; /** columns and relationships of "booking_status" */ ["bookingStatus"]: { @@ -10640,38 +10640,38 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "booking_status" */ ["bookingStatus_aggregate"]: { __typename: "bookingStatus_aggregate", - aggregate?: GraphQLTypes["bookingStatus_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["bookingStatus_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "booking_status" */ ["bookingStatus_aggregate_fields"]: { __typename: "bookingStatus_aggregate_fields", count: number, - max?: GraphQLTypes["bookingStatus_max_fields"], - min?: GraphQLTypes["bookingStatus_min_fields"] + max?: GraphQLTypes["bookingStatus_max_fields"] | undefined, + min?: GraphQLTypes["bookingStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "booking_status". All fields are combined with a logical 'AND'. */ ["bookingStatus_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["bookingStatus_bool_exp"], + _not?: GraphQLTypes["bookingStatus_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "booking_status" */ ["bookingStatus_constraint"]: bookingStatus_constraint; /** input type for inserting data into table "booking_status" */ ["bookingStatus_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["bookingStatus_max_fields"]: { __typename: "bookingStatus_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["bookingStatus_min_fields"]: { __typename: "bookingStatus_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "booking_status" */ ["bookingStatus_mutation_response"]: { @@ -10679,17 +10679,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "booking_status" */ ["bookingStatus_on_conflict"]: { constraint: GraphQLTypes["bookingStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["bookingStatus_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["bookingStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "booking_status". */ ["bookingStatus_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: bookingStatus */ ["bookingStatus_pk_columns_input"]: { @@ -10699,20 +10699,20 @@ end). throws an error if top level container is not an array */ ["bookingStatus_select_column"]: bookingStatus_select_column; /** input type for updating data in table "booking_status" */ ["bookingStatus_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "booking_status" */ ["bookingStatus_update_column"]: bookingStatus_update_column; /** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */ ["Boolean_comparison_exp"]: { - _eq?: boolean, - _gt?: boolean, - _gte?: boolean, + _eq?: boolean | undefined, + _gt?: boolean | undefined, + _gte?: boolean | undefined, _in?: Array, - _is_null?: boolean, - _lt?: boolean, - _lte?: boolean, - _neq?: boolean, + _is_null?: boolean | undefined, + _lt?: boolean | undefined, + _lte?: boolean | undefined, + _neq?: boolean | undefined, _nin?: Array }; /** columns and relationships of "classification" */ @@ -10723,47 +10723,47 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "classification" */ ["classification_aggregate"]: { __typename: "classification_aggregate", - aggregate?: GraphQLTypes["classification_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["classification_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "classification" */ ["classification_aggregate_fields"]: { __typename: "classification_aggregate_fields", count: number, - max?: GraphQLTypes["classification_max_fields"], - min?: GraphQLTypes["classification_min_fields"] + max?: GraphQLTypes["classification_max_fields"] | undefined, + min?: GraphQLTypes["classification_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "classification". All fields are combined with a logical 'AND'. */ ["classification_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["classification_bool_exp"], + _not?: GraphQLTypes["classification_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "classification" */ ["classification_constraint"]: classification_constraint; ["classification_enum"]: classification_enum; /** Boolean expression to compare columns of type "classification_enum". All fields are combined with logical 'AND'. */ ["classification_enum_comparison_exp"]: { - _eq?: GraphQLTypes["classification_enum"], + _eq?: GraphQLTypes["classification_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["classification_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["classification_enum"] | undefined, _nin?: Array }; /** input type for inserting data into table "classification" */ ["classification_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["classification_max_fields"]: { __typename: "classification_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["classification_min_fields"]: { __typename: "classification_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "classification" */ ["classification_mutation_response"]: { @@ -10771,17 +10771,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "classification" */ ["classification_on_conflict"]: { constraint: GraphQLTypes["classification_constraint"], - update_columns: Array, - where?: GraphQLTypes["classification_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["classification_bool_exp"] | undefined }; /** Ordering options when selecting data from "classification". */ ["classification_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: classification */ ["classification_pk_columns_input"]: { @@ -10791,7 +10791,7 @@ end). throws an error if top level container is not an array */ ["classification_select_column"]: classification_select_column; /** input type for updating data in table "classification" */ ["classification_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "classification" */ ["classification_update_column"]: classification_update_column; @@ -10799,13 +10799,13 @@ end). throws an error if top level container is not an array */ ["connection"]: { __typename: "connection", /** An array relationship */ - bookings: Array, + bookings: Array | undefined, /** An aggregate relationship */ bookings_aggregate: GraphQLTypes["booking_aggregate"], createdAt: GraphQLTypes["timestamptz"], - credentials?: GraphQLTypes["jsonb"], + credentials?: GraphQLTypes["jsonb"] | undefined, /** An array relationship */ - entities: Array, + entities: Array | undefined, /** An aggregate relationship */ entities_aggregate: GraphQLTypes["entity_aggregate"], id: GraphQLTypes["uuid"], @@ -10813,91 +10813,91 @@ end). throws an error if top level container is not an array */ integration: GraphQLTypes["integration"], integrationId: GraphQLTypes["uuid"], /** An array relationship */ - jobs: Array, + jobs: Array | undefined, /** An aggregate relationship */ jobs_aggregate: GraphQLTypes["job_aggregate"], /** An array relationship */ - lines: Array, + lines: Array | undefined, /** An aggregate relationship */ lines_aggregate: GraphQLTypes["line_aggregate"], /** An array relationship */ - metrics: Array, + metrics: Array | undefined, /** An aggregate relationship */ metrics_aggregate: GraphQLTypes["metric_aggregate"], name: string, /** An array relationship */ - payments: Array, + payments: Array | undefined, /** An aggregate relationship */ payments_aggregate: GraphQLTypes["payment_aggregate"], - persistentState?: GraphQLTypes["jsonb"], - status?: string, + persistentState?: GraphQLTypes["jsonb"] | undefined, + status?: string | undefined, /** An array relationship */ - tags: Array, + tags: Array | undefined, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ team: GraphQLTypes["team"], teamId: GraphQLTypes["uuid"], /** An array relationship */ - units: Array, + units: Array | undefined, /** An aggregate relationship */ units_aggregate: GraphQLTypes["unit_aggregate"], - webhookKey?: string + webhookKey?: string | undefined }; /** aggregated selection of "connection" */ ["connection_aggregate"]: { __typename: "connection_aggregate", - aggregate?: GraphQLTypes["connection_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["connection_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "connection" */ ["connection_aggregate_fields"]: { __typename: "connection_aggregate_fields", count: number, - max?: GraphQLTypes["connection_max_fields"], - min?: GraphQLTypes["connection_min_fields"] + max?: GraphQLTypes["connection_max_fields"] | undefined, + min?: GraphQLTypes["connection_min_fields"] | undefined }; /** order by aggregate values of table "connection" */ ["connection_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["connection_max_order_by"], - min?: GraphQLTypes["connection_min_order_by"] + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["connection_max_order_by"] | undefined, + min?: GraphQLTypes["connection_min_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["connection_append_input"]: { - credentials?: GraphQLTypes["jsonb"], - persistentState?: GraphQLTypes["jsonb"] + credentials?: GraphQLTypes["jsonb"] | undefined, + persistentState?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "connection" */ ["connection_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["connection_on_conflict"] + on_conflict?: GraphQLTypes["connection_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "connection". All fields are combined with a logical 'AND'. */ ["connection_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["connection_bool_exp"], + _not?: GraphQLTypes["connection_bool_exp"] | undefined, _or?: Array, - bookings?: GraphQLTypes["booking_bool_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - credentials?: GraphQLTypes["jsonb_comparison_exp"], - entities?: GraphQLTypes["entity_bool_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - integration?: GraphQLTypes["integration_bool_exp"], - integrationId?: GraphQLTypes["uuid_comparison_exp"], - jobs?: GraphQLTypes["job_bool_exp"], - lines?: GraphQLTypes["line_bool_exp"], - metrics?: GraphQLTypes["metric_bool_exp"], - name?: GraphQLTypes["String_comparison_exp"], - payments?: GraphQLTypes["payment_bool_exp"], - persistentState?: GraphQLTypes["jsonb_comparison_exp"], - status?: GraphQLTypes["String_comparison_exp"], - tags?: GraphQLTypes["tag_bool_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - units?: GraphQLTypes["unit_bool_exp"], - webhookKey?: GraphQLTypes["String_comparison_exp"] + bookings?: GraphQLTypes["booking_bool_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + credentials?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + entities?: GraphQLTypes["entity_bool_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + integration?: GraphQLTypes["integration_bool_exp"] | undefined, + integrationId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + jobs?: GraphQLTypes["job_bool_exp"] | undefined, + lines?: GraphQLTypes["line_bool_exp"] | undefined, + metrics?: GraphQLTypes["metric_bool_exp"] | undefined, + name?: GraphQLTypes["String_comparison_exp"] | undefined, + payments?: GraphQLTypes["payment_bool_exp"] | undefined, + persistentState?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + status?: GraphQLTypes["String_comparison_exp"] | undefined, + tags?: GraphQLTypes["tag_bool_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + units?: GraphQLTypes["unit_bool_exp"] | undefined, + webhookKey?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "connection" */ ["connection_constraint"]: connection_constraint; @@ -10909,77 +10909,77 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["connection_delete_elem_input"]: { - credentials?: number, - persistentState?: number + credentials?: number | undefined, + persistentState?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["connection_delete_key_input"]: { - credentials?: string, - persistentState?: string + credentials?: string | undefined, + persistentState?: string | undefined }; /** input type for inserting data into table "connection" */ ["connection_insert_input"]: { - bookings?: GraphQLTypes["booking_arr_rel_insert_input"], - createdAt?: GraphQLTypes["timestamptz"], - credentials?: GraphQLTypes["jsonb"], - entities?: GraphQLTypes["entity_arr_rel_insert_input"], - id?: GraphQLTypes["uuid"], - integration?: GraphQLTypes["integration_obj_rel_insert_input"], - integrationId?: GraphQLTypes["uuid"], - jobs?: GraphQLTypes["job_arr_rel_insert_input"], - lines?: GraphQLTypes["line_arr_rel_insert_input"], - metrics?: GraphQLTypes["metric_arr_rel_insert_input"], - name?: string, - payments?: GraphQLTypes["payment_arr_rel_insert_input"], - persistentState?: GraphQLTypes["jsonb"], - status?: string, - tags?: GraphQLTypes["tag_arr_rel_insert_input"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - units?: GraphQLTypes["unit_arr_rel_insert_input"], - webhookKey?: string + bookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + credentials?: GraphQLTypes["jsonb"] | undefined, + entities?: GraphQLTypes["entity_arr_rel_insert_input"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integration?: GraphQLTypes["integration_obj_rel_insert_input"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + jobs?: GraphQLTypes["job_arr_rel_insert_input"] | undefined, + lines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, + metrics?: GraphQLTypes["metric_arr_rel_insert_input"] | undefined, + name?: string | undefined, + payments?: GraphQLTypes["payment_arr_rel_insert_input"] | undefined, + persistentState?: GraphQLTypes["jsonb"] | undefined, + status?: string | undefined, + tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + units?: GraphQLTypes["unit_arr_rel_insert_input"] | undefined, + webhookKey?: string | undefined }; /** aggregate max on columns */ ["connection_max_fields"]: { __typename: "connection_max_fields", - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - integrationId?: GraphQLTypes["uuid"], - name?: string, - status?: string, - teamId?: GraphQLTypes["uuid"], - webhookKey?: string + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + webhookKey?: string | undefined }; /** order by max() on columns of table "connection" */ ["connection_max_order_by"]: { - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - integrationId?: GraphQLTypes["order_by"], - name?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - webhookKey?: GraphQLTypes["order_by"] + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + integrationId?: GraphQLTypes["order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + webhookKey?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["connection_min_fields"]: { __typename: "connection_min_fields", - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - integrationId?: GraphQLTypes["uuid"], - name?: string, - status?: string, - teamId?: GraphQLTypes["uuid"], - webhookKey?: string + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + webhookKey?: string | undefined }; /** order by min() on columns of table "connection" */ ["connection_min_order_by"]: { - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - integrationId?: GraphQLTypes["order_by"], - name?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - webhookKey?: GraphQLTypes["order_by"] + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + integrationId?: GraphQLTypes["order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + webhookKey?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "connection" */ ["connection_mutation_response"]: { @@ -10987,41 +10987,41 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "connection" */ ["connection_obj_rel_insert_input"]: { data: GraphQLTypes["connection_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["connection_on_conflict"] + on_conflict?: GraphQLTypes["connection_on_conflict"] | undefined }; /** on conflict condition type for table "connection" */ ["connection_on_conflict"]: { constraint: GraphQLTypes["connection_constraint"], - update_columns: Array, - where?: GraphQLTypes["connection_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["connection_bool_exp"] | undefined }; /** Ordering options when selecting data from "connection". */ ["connection_order_by"]: { - bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"], - createdAt?: GraphQLTypes["order_by"], - credentials?: GraphQLTypes["order_by"], - entities_aggregate?: GraphQLTypes["entity_aggregate_order_by"], - id?: GraphQLTypes["order_by"], - integration?: GraphQLTypes["integration_order_by"], - integrationId?: GraphQLTypes["order_by"], - jobs_aggregate?: GraphQLTypes["job_aggregate_order_by"], - lines_aggregate?: GraphQLTypes["line_aggregate_order_by"], - metrics_aggregate?: GraphQLTypes["metric_aggregate_order_by"], - name?: GraphQLTypes["order_by"], - payments_aggregate?: GraphQLTypes["payment_aggregate_order_by"], - persistentState?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - units_aggregate?: GraphQLTypes["unit_aggregate_order_by"], - webhookKey?: GraphQLTypes["order_by"] + bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + credentials?: GraphQLTypes["order_by"] | undefined, + entities_aggregate?: GraphQLTypes["entity_aggregate_order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + integration?: GraphQLTypes["integration_order_by"] | undefined, + integrationId?: GraphQLTypes["order_by"] | undefined, + jobs_aggregate?: GraphQLTypes["job_aggregate_order_by"] | undefined, + lines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, + metrics_aggregate?: GraphQLTypes["metric_aggregate_order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + payments_aggregate?: GraphQLTypes["payment_aggregate_order_by"] | undefined, + persistentState?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + units_aggregate?: GraphQLTypes["unit_aggregate_order_by"] | undefined, + webhookKey?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: connection */ ["connection_pk_columns_input"]: { @@ -11029,22 +11029,22 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["connection_prepend_input"]: { - credentials?: GraphQLTypes["jsonb"], - persistentState?: GraphQLTypes["jsonb"] + credentials?: GraphQLTypes["jsonb"] | undefined, + persistentState?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "connection" */ ["connection_select_column"]: connection_select_column; /** input type for updating data in table "connection" */ ["connection_set_input"]: { - createdAt?: GraphQLTypes["timestamptz"], - credentials?: GraphQLTypes["jsonb"], - id?: GraphQLTypes["uuid"], - integrationId?: GraphQLTypes["uuid"], - name?: string, - persistentState?: GraphQLTypes["jsonb"], - status?: string, - teamId?: GraphQLTypes["uuid"], - webhookKey?: string + createdAt?: GraphQLTypes["timestamptz"] | undefined, + credentials?: GraphQLTypes["jsonb"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + persistentState?: GraphQLTypes["jsonb"] | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + webhookKey?: string | undefined }; /** update columns of table "connection" */ ["connection_update_column"]: connection_update_column; @@ -11056,47 +11056,47 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "currency" */ ["currency_aggregate"]: { __typename: "currency_aggregate", - aggregate?: GraphQLTypes["currency_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["currency_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "currency" */ ["currency_aggregate_fields"]: { __typename: "currency_aggregate_fields", count: number, - max?: GraphQLTypes["currency_max_fields"], - min?: GraphQLTypes["currency_min_fields"] + max?: GraphQLTypes["currency_max_fields"] | undefined, + min?: GraphQLTypes["currency_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "currency". All fields are combined with a logical 'AND'. */ ["currency_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["currency_bool_exp"], + _not?: GraphQLTypes["currency_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "currency" */ ["currency_constraint"]: currency_constraint; ["currency_enum"]: currency_enum; /** Boolean expression to compare columns of type "currency_enum". All fields are combined with logical 'AND'. */ ["currency_enum_comparison_exp"]: { - _eq?: GraphQLTypes["currency_enum"], + _eq?: GraphQLTypes["currency_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["currency_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["currency_enum"] | undefined, _nin?: Array }; /** input type for inserting data into table "currency" */ ["currency_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["currency_max_fields"]: { __typename: "currency_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["currency_min_fields"]: { __typename: "currency_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "currency" */ ["currency_mutation_response"]: { @@ -11104,17 +11104,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "currency" */ ["currency_on_conflict"]: { constraint: GraphQLTypes["currency_constraint"], - update_columns: Array, - where?: GraphQLTypes["currency_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["currency_bool_exp"] | undefined }; /** Ordering options when selecting data from "currency". */ ["currency_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: currency */ ["currency_pk_columns_input"]: { @@ -11124,7 +11124,7 @@ end). throws an error if top level container is not an array */ ["currency_select_column"]: currency_select_column; /** input type for updating data in table "currency" */ ["currency_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "currency" */ ["currency_update_column"]: currency_update_column; @@ -11132,7 +11132,7 @@ end). throws an error if top level container is not an array */ ["entity"]: { __typename: "entity", /** An array relationship */ - bookings: Array, + bookings: Array | undefined, /** An aggregate relationship */ bookings_aggregate: GraphQLTypes["booking_aggregate"], /** An object relationship */ @@ -11140,36 +11140,36 @@ end). throws an error if top level container is not an array */ connectionId: GraphQLTypes["uuid"], createdAt: GraphQLTypes["timestamptz"], description: string, - diffJson?: GraphQLTypes["jsonb"], - hash?: string, + diffJson?: GraphQLTypes["jsonb"] | undefined, + hash?: string | undefined, id: GraphQLTypes["uuid"], /** An object relationship */ - job?: GraphQLTypes["job"], - jobId?: GraphQLTypes["uuid"], - json?: GraphQLTypes["jsonb"], - normalizedJson?: GraphQLTypes["jsonb"], - normalizedType?: GraphQLTypes["normalized_type_enum"], - parsedAt?: GraphQLTypes["timestamptz"], + job?: GraphQLTypes["job"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + json?: GraphQLTypes["jsonb"] | undefined, + normalizedJson?: GraphQLTypes["jsonb"] | undefined, + normalizedType?: GraphQLTypes["normalized_type_enum"] | undefined, + parsedAt?: GraphQLTypes["timestamptz"] | undefined, /** An array relationship */ - payments: Array, + payments: Array | undefined, /** An aggregate relationship */ payments_aggregate: GraphQLTypes["payment_aggregate"], /** An object relationship */ - predecessorEntity?: GraphQLTypes["entity"], - predecessorEntityId?: GraphQLTypes["uuid"], + predecessorEntity?: GraphQLTypes["entity"] | undefined, + predecessorEntityId?: GraphQLTypes["uuid"] | undefined, status: GraphQLTypes["entity_status_enum"], - statusText?: string, + statusText?: string | undefined, /** An array relationship */ - successorEntities: Array, + successorEntities: Array | undefined, /** An aggregate relationship */ successorEntities_aggregate: GraphQLTypes["entity_aggregate"], /** An object relationship */ - team?: GraphQLTypes["team"], - teamId?: GraphQLTypes["uuid"], + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, type: string, - uniqueRef?: string, + uniqueRef?: string | undefined, /** An array relationship */ - units: Array, + units: Array | undefined, /** An aggregate relationship */ units_aggregate: GraphQLTypes["unit_aggregate"], updatedAt: GraphQLTypes["timestamptz"] @@ -11177,65 +11177,65 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "entity" */ ["entity_aggregate"]: { __typename: "entity_aggregate", - aggregate?: GraphQLTypes["entity_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["entity_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "entity" */ ["entity_aggregate_fields"]: { __typename: "entity_aggregate_fields", count: number, - max?: GraphQLTypes["entity_max_fields"], - min?: GraphQLTypes["entity_min_fields"] + max?: GraphQLTypes["entity_max_fields"] | undefined, + min?: GraphQLTypes["entity_min_fields"] | undefined }; /** order by aggregate values of table "entity" */ ["entity_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["entity_max_order_by"], - min?: GraphQLTypes["entity_min_order_by"] + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["entity_max_order_by"] | undefined, + min?: GraphQLTypes["entity_min_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["entity_append_input"]: { - diffJson?: GraphQLTypes["jsonb"], - json?: GraphQLTypes["jsonb"], - normalizedJson?: GraphQLTypes["jsonb"] + diffJson?: GraphQLTypes["jsonb"] | undefined, + json?: GraphQLTypes["jsonb"] | undefined, + normalizedJson?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "entity" */ ["entity_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["entity_on_conflict"] + on_conflict?: GraphQLTypes["entity_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "entity". All fields are combined with a logical 'AND'. */ ["entity_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["entity_bool_exp"], + _not?: GraphQLTypes["entity_bool_exp"] | undefined, _or?: Array, - bookings?: GraphQLTypes["booking_bool_exp"], - connection?: GraphQLTypes["connection_bool_exp"], - connectionId?: GraphQLTypes["uuid_comparison_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - description?: GraphQLTypes["String_comparison_exp"], - diffJson?: GraphQLTypes["jsonb_comparison_exp"], - hash?: GraphQLTypes["String_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - job?: GraphQLTypes["job_bool_exp"], - jobId?: GraphQLTypes["uuid_comparison_exp"], - json?: GraphQLTypes["jsonb_comparison_exp"], - normalizedJson?: GraphQLTypes["jsonb_comparison_exp"], - normalizedType?: GraphQLTypes["normalized_type_enum_comparison_exp"], - parsedAt?: GraphQLTypes["timestamptz_comparison_exp"], - payments?: GraphQLTypes["payment_bool_exp"], - predecessorEntity?: GraphQLTypes["entity_bool_exp"], - predecessorEntityId?: GraphQLTypes["uuid_comparison_exp"], - status?: GraphQLTypes["entity_status_enum_comparison_exp"], - statusText?: GraphQLTypes["String_comparison_exp"], - successorEntities?: GraphQLTypes["entity_bool_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - type?: GraphQLTypes["String_comparison_exp"], - uniqueRef?: GraphQLTypes["String_comparison_exp"], - units?: GraphQLTypes["unit_bool_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] + bookings?: GraphQLTypes["booking_bool_exp"] | undefined, + connection?: GraphQLTypes["connection_bool_exp"] | undefined, + connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + description?: GraphQLTypes["String_comparison_exp"] | undefined, + diffJson?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + hash?: GraphQLTypes["String_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + job?: GraphQLTypes["job_bool_exp"] | undefined, + jobId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + json?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + normalizedJson?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + normalizedType?: GraphQLTypes["normalized_type_enum_comparison_exp"] | undefined, + parsedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + payments?: GraphQLTypes["payment_bool_exp"] | undefined, + predecessorEntity?: GraphQLTypes["entity_bool_exp"] | undefined, + predecessorEntityId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + status?: GraphQLTypes["entity_status_enum_comparison_exp"] | undefined, + statusText?: GraphQLTypes["String_comparison_exp"] | undefined, + successorEntities?: GraphQLTypes["entity_bool_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + type?: GraphQLTypes["String_comparison_exp"] | undefined, + uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, + units?: GraphQLTypes["unit_bool_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined }; /** unique or primary key constraints on table "entity" */ ["entity_constraint"]: entity_constraint; @@ -11248,110 +11248,110 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["entity_delete_elem_input"]: { - diffJson?: number, - json?: number, - normalizedJson?: number + diffJson?: number | undefined, + json?: number | undefined, + normalizedJson?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["entity_delete_key_input"]: { - diffJson?: string, - json?: string, - normalizedJson?: string + diffJson?: string | undefined, + json?: string | undefined, + normalizedJson?: string | undefined }; /** input type for inserting data into table "entity" */ ["entity_insert_input"]: { - bookings?: GraphQLTypes["booking_arr_rel_insert_input"], - connection?: GraphQLTypes["connection_obj_rel_insert_input"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - diffJson?: GraphQLTypes["jsonb"], - hash?: string, - id?: GraphQLTypes["uuid"], - job?: GraphQLTypes["job_obj_rel_insert_input"], - jobId?: GraphQLTypes["uuid"], - json?: GraphQLTypes["jsonb"], - normalizedJson?: GraphQLTypes["jsonb"], - normalizedType?: GraphQLTypes["normalized_type_enum"], - parsedAt?: GraphQLTypes["timestamptz"], - payments?: GraphQLTypes["payment_arr_rel_insert_input"], - predecessorEntity?: GraphQLTypes["entity_obj_rel_insert_input"], - predecessorEntityId?: GraphQLTypes["uuid"], - status?: GraphQLTypes["entity_status_enum"], - statusText?: string, - successorEntities?: GraphQLTypes["entity_arr_rel_insert_input"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - units?: GraphQLTypes["unit_arr_rel_insert_input"], - updatedAt?: GraphQLTypes["timestamptz"] + bookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, + connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + diffJson?: GraphQLTypes["jsonb"] | undefined, + hash?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + job?: GraphQLTypes["job_obj_rel_insert_input"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + json?: GraphQLTypes["jsonb"] | undefined, + normalizedJson?: GraphQLTypes["jsonb"] | undefined, + normalizedType?: GraphQLTypes["normalized_type_enum"] | undefined, + parsedAt?: GraphQLTypes["timestamptz"] | undefined, + payments?: GraphQLTypes["payment_arr_rel_insert_input"] | undefined, + predecessorEntity?: GraphQLTypes["entity_obj_rel_insert_input"] | undefined, + predecessorEntityId?: GraphQLTypes["uuid"] | undefined, + status?: GraphQLTypes["entity_status_enum"] | undefined, + statusText?: string | undefined, + successorEntities?: GraphQLTypes["entity_arr_rel_insert_input"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + units?: GraphQLTypes["unit_arr_rel_insert_input"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate max on columns */ ["entity_max_fields"]: { __typename: "entity_max_fields", - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - hash?: string, - id?: GraphQLTypes["uuid"], - jobId?: GraphQLTypes["uuid"], - parsedAt?: GraphQLTypes["timestamptz"], - predecessorEntityId?: GraphQLTypes["uuid"], - statusText?: string, - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + hash?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + parsedAt?: GraphQLTypes["timestamptz"] | undefined, + predecessorEntityId?: GraphQLTypes["uuid"] | undefined, + statusText?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "entity" */ ["entity_max_order_by"]: { - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - description?: GraphQLTypes["order_by"], - hash?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - jobId?: GraphQLTypes["order_by"], - parsedAt?: GraphQLTypes["order_by"], - predecessorEntityId?: GraphQLTypes["order_by"], - statusText?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + description?: GraphQLTypes["order_by"] | undefined, + hash?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + jobId?: GraphQLTypes["order_by"] | undefined, + parsedAt?: GraphQLTypes["order_by"] | undefined, + predecessorEntityId?: GraphQLTypes["order_by"] | undefined, + statusText?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["entity_min_fields"]: { __typename: "entity_min_fields", - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - hash?: string, - id?: GraphQLTypes["uuid"], - jobId?: GraphQLTypes["uuid"], - parsedAt?: GraphQLTypes["timestamptz"], - predecessorEntityId?: GraphQLTypes["uuid"], - statusText?: string, - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + hash?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + parsedAt?: GraphQLTypes["timestamptz"] | undefined, + predecessorEntityId?: GraphQLTypes["uuid"] | undefined, + statusText?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "entity" */ ["entity_min_order_by"]: { - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - description?: GraphQLTypes["order_by"], - hash?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - jobId?: GraphQLTypes["order_by"], - parsedAt?: GraphQLTypes["order_by"], - predecessorEntityId?: GraphQLTypes["order_by"], - statusText?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + description?: GraphQLTypes["order_by"] | undefined, + hash?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + jobId?: GraphQLTypes["order_by"] | undefined, + parsedAt?: GraphQLTypes["order_by"] | undefined, + predecessorEntityId?: GraphQLTypes["order_by"] | undefined, + statusText?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "entity" */ ["entity_mutation_response"]: { @@ -11359,48 +11359,48 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "entity" */ ["entity_obj_rel_insert_input"]: { data: GraphQLTypes["entity_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["entity_on_conflict"] + on_conflict?: GraphQLTypes["entity_on_conflict"] | undefined }; /** on conflict condition type for table "entity" */ ["entity_on_conflict"]: { constraint: GraphQLTypes["entity_constraint"], - update_columns: Array, - where?: GraphQLTypes["entity_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["entity_bool_exp"] | undefined }; /** Ordering options when selecting data from "entity". */ ["entity_order_by"]: { - bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"], - connection?: GraphQLTypes["connection_order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - description?: GraphQLTypes["order_by"], - diffJson?: GraphQLTypes["order_by"], - hash?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - job?: GraphQLTypes["job_order_by"], - jobId?: GraphQLTypes["order_by"], - json?: GraphQLTypes["order_by"], - normalizedJson?: GraphQLTypes["order_by"], - normalizedType?: GraphQLTypes["order_by"], - parsedAt?: GraphQLTypes["order_by"], - payments_aggregate?: GraphQLTypes["payment_aggregate_order_by"], - predecessorEntity?: GraphQLTypes["entity_order_by"], - predecessorEntityId?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - statusText?: GraphQLTypes["order_by"], - successorEntities_aggregate?: GraphQLTypes["entity_aggregate_order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - units_aggregate?: GraphQLTypes["unit_aggregate_order_by"], - updatedAt?: GraphQLTypes["order_by"] + bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, + connection?: GraphQLTypes["connection_order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + description?: GraphQLTypes["order_by"] | undefined, + diffJson?: GraphQLTypes["order_by"] | undefined, + hash?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + job?: GraphQLTypes["job_order_by"] | undefined, + jobId?: GraphQLTypes["order_by"] | undefined, + json?: GraphQLTypes["order_by"] | undefined, + normalizedJson?: GraphQLTypes["order_by"] | undefined, + normalizedType?: GraphQLTypes["order_by"] | undefined, + parsedAt?: GraphQLTypes["order_by"] | undefined, + payments_aggregate?: GraphQLTypes["payment_aggregate_order_by"] | undefined, + predecessorEntity?: GraphQLTypes["entity_order_by"] | undefined, + predecessorEntityId?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + statusText?: GraphQLTypes["order_by"] | undefined, + successorEntities_aggregate?: GraphQLTypes["entity_aggregate_order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + units_aggregate?: GraphQLTypes["unit_aggregate_order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: entity */ ["entity_pk_columns_input"]: { @@ -11408,40 +11408,40 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["entity_prepend_input"]: { - diffJson?: GraphQLTypes["jsonb"], - json?: GraphQLTypes["jsonb"], - normalizedJson?: GraphQLTypes["jsonb"] + diffJson?: GraphQLTypes["jsonb"] | undefined, + json?: GraphQLTypes["jsonb"] | undefined, + normalizedJson?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "entity" */ ["entity_select_column"]: entity_select_column; /** input type for updating data in table "entity" */ ["entity_set_input"]: { - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - diffJson?: GraphQLTypes["jsonb"], - hash?: string, - id?: GraphQLTypes["uuid"], - jobId?: GraphQLTypes["uuid"], - json?: GraphQLTypes["jsonb"], - normalizedJson?: GraphQLTypes["jsonb"], - normalizedType?: GraphQLTypes["normalized_type_enum"], - parsedAt?: GraphQLTypes["timestamptz"], - predecessorEntityId?: GraphQLTypes["uuid"], - status?: GraphQLTypes["entity_status_enum"], - statusText?: string, - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + diffJson?: GraphQLTypes["jsonb"] | undefined, + hash?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + json?: GraphQLTypes["jsonb"] | undefined, + normalizedJson?: GraphQLTypes["jsonb"] | undefined, + normalizedType?: GraphQLTypes["normalized_type_enum"] | undefined, + parsedAt?: GraphQLTypes["timestamptz"] | undefined, + predecessorEntityId?: GraphQLTypes["uuid"] | undefined, + status?: GraphQLTypes["entity_status_enum"] | undefined, + statusText?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; ["entity_status_enum"]: entity_status_enum; /** Boolean expression to compare columns of type "entity_status_enum". All fields are combined with logical 'AND'. */ ["entity_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["entity_status_enum"], + _eq?: GraphQLTypes["entity_status_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["entity_status_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["entity_status_enum"] | undefined, _nin?: Array }; /** update columns of table "entity" */ @@ -11454,38 +11454,38 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "entity_status" */ ["entityStatus_aggregate"]: { __typename: "entityStatus_aggregate", - aggregate?: GraphQLTypes["entityStatus_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["entityStatus_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "entity_status" */ ["entityStatus_aggregate_fields"]: { __typename: "entityStatus_aggregate_fields", count: number, - max?: GraphQLTypes["entityStatus_max_fields"], - min?: GraphQLTypes["entityStatus_min_fields"] + max?: GraphQLTypes["entityStatus_max_fields"] | undefined, + min?: GraphQLTypes["entityStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "entity_status". All fields are combined with a logical 'AND'. */ ["entityStatus_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["entityStatus_bool_exp"], + _not?: GraphQLTypes["entityStatus_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "entity_status" */ ["entityStatus_constraint"]: entityStatus_constraint; /** input type for inserting data into table "entity_status" */ ["entityStatus_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["entityStatus_max_fields"]: { __typename: "entityStatus_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["entityStatus_min_fields"]: { __typename: "entityStatus_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "entity_status" */ ["entityStatus_mutation_response"]: { @@ -11493,17 +11493,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "entity_status" */ ["entityStatus_on_conflict"]: { constraint: GraphQLTypes["entityStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["entityStatus_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["entityStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "entity_status". */ ["entityStatus_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: entityStatus */ ["entityStatus_pk_columns_input"]: { @@ -11513,162 +11513,162 @@ end). throws an error if top level container is not an array */ ["entityStatus_select_column"]: entityStatus_select_column; /** input type for updating data in table "entity_status" */ ["entityStatus_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "entity_status" */ ["entityStatus_update_column"]: entityStatus_update_column; ["float8"]:any; /** Boolean expression to compare columns of type "float8". All fields are combined with logical 'AND'. */ ["float8_comparison_exp"]: { - _eq?: GraphQLTypes["float8"], - _gt?: GraphQLTypes["float8"], - _gte?: GraphQLTypes["float8"], + _eq?: GraphQLTypes["float8"] | undefined, + _gt?: GraphQLTypes["float8"] | undefined, + _gte?: GraphQLTypes["float8"] | undefined, _in?: Array, - _is_null?: boolean, - _lt?: GraphQLTypes["float8"], - _lte?: GraphQLTypes["float8"], - _neq?: GraphQLTypes["float8"], + _is_null?: boolean | undefined, + _lt?: GraphQLTypes["float8"] | undefined, + _lte?: GraphQLTypes["float8"] | undefined, + _neq?: GraphQLTypes["float8"] | undefined, _nin?: Array }; /** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ ["Int_comparison_exp"]: { - _eq?: number, - _gt?: number, - _gte?: number, + _eq?: number | undefined, + _gt?: number | undefined, + _gte?: number | undefined, _in?: Array, - _is_null?: boolean, - _lt?: number, - _lte?: number, - _neq?: number, + _is_null?: boolean | undefined, + _lt?: number | undefined, + _lte?: number | undefined, + _neq?: number | undefined, _nin?: Array }; /** columns and relationships of "integration" */ ["integration"]: { __typename: "integration", - apiDevUrl?: string, + apiDevUrl?: string | undefined, apiUrl: string, /** An array relationship */ - connections: Array, + connections: Array | undefined, /** An aggregate relationship */ connections_aggregate: GraphQLTypes["connection_aggregate"], - icon?: string, + icon?: string | undefined, id: GraphQLTypes["uuid"], - isApproved?: boolean, + isApproved?: boolean | undefined, isPrivate: boolean, /** An array relationship */ - jobs: Array, + jobs: Array | undefined, /** An aggregate relationship */ jobs_aggregate: GraphQLTypes["job_aggregate"], name: string, /** An object relationship */ - team?: GraphQLTypes["team"], - teamId?: GraphQLTypes["uuid"], + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, type: GraphQLTypes["integration_type_enum"], uniqueRef: string }; /** aggregated selection of "integration" */ ["integration_aggregate"]: { __typename: "integration_aggregate", - aggregate?: GraphQLTypes["integration_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["integration_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "integration" */ ["integration_aggregate_fields"]: { __typename: "integration_aggregate_fields", count: number, - max?: GraphQLTypes["integration_max_fields"], - min?: GraphQLTypes["integration_min_fields"] + max?: GraphQLTypes["integration_max_fields"] | undefined, + min?: GraphQLTypes["integration_min_fields"] | undefined }; /** order by aggregate values of table "integration" */ ["integration_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["integration_max_order_by"], - min?: GraphQLTypes["integration_min_order_by"] + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["integration_max_order_by"] | undefined, + min?: GraphQLTypes["integration_min_order_by"] | undefined }; /** input type for inserting array relation for remote table "integration" */ ["integration_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["integration_on_conflict"] + on_conflict?: GraphQLTypes["integration_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "integration". All fields are combined with a logical 'AND'. */ ["integration_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["integration_bool_exp"], + _not?: GraphQLTypes["integration_bool_exp"] | undefined, _or?: Array, - apiDevUrl?: GraphQLTypes["String_comparison_exp"], - apiUrl?: GraphQLTypes["String_comparison_exp"], - connections?: GraphQLTypes["connection_bool_exp"], - icon?: GraphQLTypes["String_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - isApproved?: GraphQLTypes["Boolean_comparison_exp"], - isPrivate?: GraphQLTypes["Boolean_comparison_exp"], - jobs?: GraphQLTypes["job_bool_exp"], - name?: GraphQLTypes["String_comparison_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - type?: GraphQLTypes["integration_type_enum_comparison_exp"], - uniqueRef?: GraphQLTypes["String_comparison_exp"] + apiDevUrl?: GraphQLTypes["String_comparison_exp"] | undefined, + apiUrl?: GraphQLTypes["String_comparison_exp"] | undefined, + connections?: GraphQLTypes["connection_bool_exp"] | undefined, + icon?: GraphQLTypes["String_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + isApproved?: GraphQLTypes["Boolean_comparison_exp"] | undefined, + isPrivate?: GraphQLTypes["Boolean_comparison_exp"] | undefined, + jobs?: GraphQLTypes["job_bool_exp"] | undefined, + name?: GraphQLTypes["String_comparison_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + type?: GraphQLTypes["integration_type_enum_comparison_exp"] | undefined, + uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "integration" */ ["integration_constraint"]: integration_constraint; /** input type for inserting data into table "integration" */ ["integration_insert_input"]: { - apiDevUrl?: string, - apiUrl?: string, - connections?: GraphQLTypes["connection_arr_rel_insert_input"], - icon?: string, - id?: GraphQLTypes["uuid"], - isApproved?: boolean, - isPrivate?: boolean, - jobs?: GraphQLTypes["job_arr_rel_insert_input"], - name?: string, - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - type?: GraphQLTypes["integration_type_enum"], - uniqueRef?: string + apiDevUrl?: string | undefined, + apiUrl?: string | undefined, + connections?: GraphQLTypes["connection_arr_rel_insert_input"] | undefined, + icon?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + isApproved?: boolean | undefined, + isPrivate?: boolean | undefined, + jobs?: GraphQLTypes["job_arr_rel_insert_input"] | undefined, + name?: string | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: GraphQLTypes["integration_type_enum"] | undefined, + uniqueRef?: string | undefined }; /** aggregate max on columns */ ["integration_max_fields"]: { __typename: "integration_max_fields", - apiDevUrl?: string, - apiUrl?: string, - icon?: string, - id?: GraphQLTypes["uuid"], - name?: string, - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string + apiDevUrl?: string | undefined, + apiUrl?: string | undefined, + icon?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined }; /** order by max() on columns of table "integration" */ ["integration_max_order_by"]: { - apiDevUrl?: GraphQLTypes["order_by"], - apiUrl?: GraphQLTypes["order_by"], - icon?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - name?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"] + apiDevUrl?: GraphQLTypes["order_by"] | undefined, + apiUrl?: GraphQLTypes["order_by"] | undefined, + icon?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["integration_min_fields"]: { __typename: "integration_min_fields", - apiDevUrl?: string, - apiUrl?: string, - icon?: string, - id?: GraphQLTypes["uuid"], - name?: string, - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string + apiDevUrl?: string | undefined, + apiUrl?: string | undefined, + icon?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined }; /** order by min() on columns of table "integration" */ ["integration_min_order_by"]: { - apiDevUrl?: GraphQLTypes["order_by"], - apiUrl?: GraphQLTypes["order_by"], - icon?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - name?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"] + apiDevUrl?: GraphQLTypes["order_by"] | undefined, + apiUrl?: GraphQLTypes["order_by"] | undefined, + icon?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "integration" */ ["integration_mutation_response"]: { @@ -11676,35 +11676,35 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "integration" */ ["integration_obj_rel_insert_input"]: { data: GraphQLTypes["integration_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["integration_on_conflict"] + on_conflict?: GraphQLTypes["integration_on_conflict"] | undefined }; /** on conflict condition type for table "integration" */ ["integration_on_conflict"]: { constraint: GraphQLTypes["integration_constraint"], - update_columns: Array, - where?: GraphQLTypes["integration_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["integration_bool_exp"] | undefined }; /** Ordering options when selecting data from "integration". */ ["integration_order_by"]: { - apiDevUrl?: GraphQLTypes["order_by"], - apiUrl?: GraphQLTypes["order_by"], - connections_aggregate?: GraphQLTypes["connection_aggregate_order_by"], - icon?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - isApproved?: GraphQLTypes["order_by"], - isPrivate?: GraphQLTypes["order_by"], - jobs_aggregate?: GraphQLTypes["job_aggregate_order_by"], - name?: GraphQLTypes["order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"] + apiDevUrl?: GraphQLTypes["order_by"] | undefined, + apiUrl?: GraphQLTypes["order_by"] | undefined, + connections_aggregate?: GraphQLTypes["connection_aggregate_order_by"] | undefined, + icon?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + isApproved?: GraphQLTypes["order_by"] | undefined, + isPrivate?: GraphQLTypes["order_by"] | undefined, + jobs_aggregate?: GraphQLTypes["job_aggregate_order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: integration */ ["integration_pk_columns_input"]: { @@ -11714,24 +11714,24 @@ end). throws an error if top level container is not an array */ ["integration_select_column"]: integration_select_column; /** input type for updating data in table "integration" */ ["integration_set_input"]: { - apiDevUrl?: string, - apiUrl?: string, - icon?: string, - id?: GraphQLTypes["uuid"], - isApproved?: boolean, - isPrivate?: boolean, - name?: string, - teamId?: GraphQLTypes["uuid"], - type?: GraphQLTypes["integration_type_enum"], - uniqueRef?: string + apiDevUrl?: string | undefined, + apiUrl?: string | undefined, + icon?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + isApproved?: boolean | undefined, + isPrivate?: boolean | undefined, + name?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: GraphQLTypes["integration_type_enum"] | undefined, + uniqueRef?: string | undefined }; ["integration_type_enum"]: integration_type_enum; /** Boolean expression to compare columns of type "integration_type_enum". All fields are combined with logical 'AND'. */ ["integration_type_enum_comparison_exp"]: { - _eq?: GraphQLTypes["integration_type_enum"], + _eq?: GraphQLTypes["integration_type_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["integration_type_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["integration_type_enum"] | undefined, _nin?: Array }; /** update columns of table "integration" */ @@ -11744,38 +11744,38 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "integration_type" */ ["integrationType_aggregate"]: { __typename: "integrationType_aggregate", - aggregate?: GraphQLTypes["integrationType_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["integrationType_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "integration_type" */ ["integrationType_aggregate_fields"]: { __typename: "integrationType_aggregate_fields", count: number, - max?: GraphQLTypes["integrationType_max_fields"], - min?: GraphQLTypes["integrationType_min_fields"] + max?: GraphQLTypes["integrationType_max_fields"] | undefined, + min?: GraphQLTypes["integrationType_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "integration_type". All fields are combined with a logical 'AND'. */ ["integrationType_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["integrationType_bool_exp"], + _not?: GraphQLTypes["integrationType_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "integration_type" */ ["integrationType_constraint"]: integrationType_constraint; /** input type for inserting data into table "integration_type" */ ["integrationType_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["integrationType_max_fields"]: { __typename: "integrationType_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["integrationType_min_fields"]: { __typename: "integrationType_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "integration_type" */ ["integrationType_mutation_response"]: { @@ -11783,17 +11783,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "integration_type" */ ["integrationType_on_conflict"]: { constraint: GraphQLTypes["integrationType_constraint"], - update_columns: Array, - where?: GraphQLTypes["integrationType_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["integrationType_bool_exp"] | undefined }; /** Ordering options when selecting data from "integration_type". */ ["integrationType_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: integrationType */ ["integrationType_pk_columns_input"]: { @@ -11803,79 +11803,79 @@ end). throws an error if top level container is not an array */ ["integrationType_select_column"]: integrationType_select_column; /** input type for updating data in table "integration_type" */ ["integrationType_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "integration_type" */ ["integrationType_update_column"]: integrationType_update_column; /** columns and relationships of "issue" */ ["issue"]: { __typename: "issue", - code?: string, + code?: string | undefined, createdAt: GraphQLTypes["timestamptz"], id: GraphQLTypes["uuid"], - isPublic?: boolean, - isResolved?: boolean, + isPublic?: boolean | undefined, + isResolved?: boolean | undefined, /** An object relationship */ job: GraphQLTypes["job"], jobId: GraphQLTypes["uuid"], - message?: string, - requestParams?: GraphQLTypes["jsonb"], - resolveParams?: GraphQLTypes["jsonb"], + message?: string | undefined, + requestParams?: GraphQLTypes["jsonb"] | undefined, + resolveParams?: GraphQLTypes["jsonb"] | undefined, /** An object relationship */ team: GraphQLTypes["team"], teamId: GraphQLTypes["uuid"], - type?: string, + type?: string | undefined, updatedAt: GraphQLTypes["timestamptz"] }; /** aggregated selection of "issue" */ ["issue_aggregate"]: { __typename: "issue_aggregate", - aggregate?: GraphQLTypes["issue_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["issue_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "issue" */ ["issue_aggregate_fields"]: { __typename: "issue_aggregate_fields", count: number, - max?: GraphQLTypes["issue_max_fields"], - min?: GraphQLTypes["issue_min_fields"] + max?: GraphQLTypes["issue_max_fields"] | undefined, + min?: GraphQLTypes["issue_min_fields"] | undefined }; /** order by aggregate values of table "issue" */ ["issue_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["issue_max_order_by"], - min?: GraphQLTypes["issue_min_order_by"] + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["issue_max_order_by"] | undefined, + min?: GraphQLTypes["issue_min_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["issue_append_input"]: { - requestParams?: GraphQLTypes["jsonb"], - resolveParams?: GraphQLTypes["jsonb"] + requestParams?: GraphQLTypes["jsonb"] | undefined, + resolveParams?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "issue" */ ["issue_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["issue_on_conflict"] + on_conflict?: GraphQLTypes["issue_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "issue". All fields are combined with a logical 'AND'. */ ["issue_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["issue_bool_exp"], + _not?: GraphQLTypes["issue_bool_exp"] | undefined, _or?: Array, - code?: GraphQLTypes["String_comparison_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - isPublic?: GraphQLTypes["Boolean_comparison_exp"], - isResolved?: GraphQLTypes["Boolean_comparison_exp"], - job?: GraphQLTypes["job_bool_exp"], - jobId?: GraphQLTypes["uuid_comparison_exp"], - message?: GraphQLTypes["String_comparison_exp"], - requestParams?: GraphQLTypes["jsonb_comparison_exp"], - resolveParams?: GraphQLTypes["jsonb_comparison_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - type?: GraphQLTypes["String_comparison_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] + code?: GraphQLTypes["String_comparison_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + isPublic?: GraphQLTypes["Boolean_comparison_exp"] | undefined, + isResolved?: GraphQLTypes["Boolean_comparison_exp"] | undefined, + job?: GraphQLTypes["job_bool_exp"] | undefined, + jobId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + message?: GraphQLTypes["String_comparison_exp"] | undefined, + requestParams?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + resolveParams?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + type?: GraphQLTypes["String_comparison_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined }; /** unique or primary key constraints on table "issue" */ ["issue_constraint"]: issue_constraint; @@ -11887,76 +11887,76 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["issue_delete_elem_input"]: { - requestParams?: number, - resolveParams?: number + requestParams?: number | undefined, + resolveParams?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["issue_delete_key_input"]: { - requestParams?: string, - resolveParams?: string + requestParams?: string | undefined, + resolveParams?: string | undefined }; /** input type for inserting data into table "issue" */ ["issue_insert_input"]: { - code?: string, - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - isPublic?: boolean, - isResolved?: boolean, - job?: GraphQLTypes["job_obj_rel_insert_input"], - jobId?: GraphQLTypes["uuid"], - message?: string, - requestParams?: GraphQLTypes["jsonb"], - resolveParams?: GraphQLTypes["jsonb"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - type?: string, - updatedAt?: GraphQLTypes["timestamptz"] + code?: string | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + isPublic?: boolean | undefined, + isResolved?: boolean | undefined, + job?: GraphQLTypes["job_obj_rel_insert_input"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + message?: string | undefined, + requestParams?: GraphQLTypes["jsonb"] | undefined, + resolveParams?: GraphQLTypes["jsonb"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate max on columns */ ["issue_max_fields"]: { __typename: "issue_max_fields", - code?: string, - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - jobId?: GraphQLTypes["uuid"], - message?: string, - teamId?: GraphQLTypes["uuid"], - type?: string, - updatedAt?: GraphQLTypes["timestamptz"] + code?: string | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + message?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "issue" */ ["issue_max_order_by"]: { - code?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - jobId?: GraphQLTypes["order_by"], - message?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + code?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + jobId?: GraphQLTypes["order_by"] | undefined, + message?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["issue_min_fields"]: { __typename: "issue_min_fields", - code?: string, - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - jobId?: GraphQLTypes["uuid"], - message?: string, - teamId?: GraphQLTypes["uuid"], - type?: string, - updatedAt?: GraphQLTypes["timestamptz"] + code?: string | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + message?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "issue" */ ["issue_min_order_by"]: { - code?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - jobId?: GraphQLTypes["order_by"], - message?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + code?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + jobId?: GraphQLTypes["order_by"] | undefined, + message?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "issue" */ ["issue_mutation_response"]: { @@ -11964,30 +11964,30 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "issue" */ ["issue_on_conflict"]: { constraint: GraphQLTypes["issue_constraint"], - update_columns: Array, - where?: GraphQLTypes["issue_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["issue_bool_exp"] | undefined }; /** Ordering options when selecting data from "issue". */ ["issue_order_by"]: { - code?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - isPublic?: GraphQLTypes["order_by"], - isResolved?: GraphQLTypes["order_by"], - job?: GraphQLTypes["job_order_by"], - jobId?: GraphQLTypes["order_by"], - message?: GraphQLTypes["order_by"], - requestParams?: GraphQLTypes["order_by"], - resolveParams?: GraphQLTypes["order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + code?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + isPublic?: GraphQLTypes["order_by"] | undefined, + isResolved?: GraphQLTypes["order_by"] | undefined, + job?: GraphQLTypes["job_order_by"] | undefined, + jobId?: GraphQLTypes["order_by"] | undefined, + message?: GraphQLTypes["order_by"] | undefined, + requestParams?: GraphQLTypes["order_by"] | undefined, + resolveParams?: GraphQLTypes["order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: issue */ ["issue_pk_columns_input"]: { @@ -11995,127 +11995,127 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["issue_prepend_input"]: { - requestParams?: GraphQLTypes["jsonb"], - resolveParams?: GraphQLTypes["jsonb"] + requestParams?: GraphQLTypes["jsonb"] | undefined, + resolveParams?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "issue" */ ["issue_select_column"]: issue_select_column; /** input type for updating data in table "issue" */ ["issue_set_input"]: { - code?: string, - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - isPublic?: boolean, - isResolved?: boolean, - jobId?: GraphQLTypes["uuid"], - message?: string, - requestParams?: GraphQLTypes["jsonb"], - resolveParams?: GraphQLTypes["jsonb"], - teamId?: GraphQLTypes["uuid"], - type?: string, - updatedAt?: GraphQLTypes["timestamptz"] + code?: string | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + isPublic?: boolean | undefined, + isResolved?: boolean | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + message?: string | undefined, + requestParams?: GraphQLTypes["jsonb"] | undefined, + resolveParams?: GraphQLTypes["jsonb"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** update columns of table "issue" */ ["issue_update_column"]: issue_update_column; /** columns and relationships of "job" */ ["job"]: { __typename: "job", - apiVersion?: string, + apiVersion?: string | undefined, /** An object relationship */ - connection?: GraphQLTypes["connection"], - connectionId?: GraphQLTypes["uuid"], + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, createdAt: GraphQLTypes["timestamptz"], - endedAt?: GraphQLTypes["timestamptz"], + endedAt?: GraphQLTypes["timestamptz"] | undefined, /** An array relationship */ - entities: Array, + entities: Array | undefined, /** An aggregate relationship */ entities_aggregate: GraphQLTypes["entity_aggregate"], id: GraphQLTypes["uuid"], /** An object relationship */ - integration?: GraphQLTypes["integration"], - integrationId?: GraphQLTypes["uuid"], - integrationSdkVersion?: string, - integrationVersion?: string, + integration?: GraphQLTypes["integration"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + integrationSdkVersion?: string | undefined, + integrationVersion?: string | undefined, /** An array relationship */ - issues: Array, + issues: Array | undefined, /** An aggregate relationship */ issues_aggregate: GraphQLTypes["issue_aggregate"], - logFile?: string, - logLink?: string, - logs?: GraphQLTypes["jsonb"], - method?: GraphQLTypes["job_method_enum"], - params?: GraphQLTypes["jsonb"], - requestId?: string, - response?: GraphQLTypes["jsonb"], - sdkVersion?: string, - startedAt?: GraphQLTypes["timestamptz"], - status?: GraphQLTypes["job_status_enum"], + logFile?: string | undefined, + logLink?: string | undefined, + logs?: GraphQLTypes["jsonb"] | undefined, + method?: GraphQLTypes["job_method_enum"] | undefined, + params?: GraphQLTypes["jsonb"] | undefined, + requestId?: string | undefined, + response?: GraphQLTypes["jsonb"] | undefined, + sdkVersion?: string | undefined, + startedAt?: GraphQLTypes["timestamptz"] | undefined, + status?: GraphQLTypes["job_status_enum"] | undefined, /** An object relationship */ - team?: GraphQLTypes["team"], - teamId?: GraphQLTypes["uuid"], + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, updatedAt: GraphQLTypes["timestamptz"] }; /** aggregated selection of "job" */ ["job_aggregate"]: { __typename: "job_aggregate", - aggregate?: GraphQLTypes["job_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["job_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "job" */ ["job_aggregate_fields"]: { __typename: "job_aggregate_fields", count: number, - max?: GraphQLTypes["job_max_fields"], - min?: GraphQLTypes["job_min_fields"] + max?: GraphQLTypes["job_max_fields"] | undefined, + min?: GraphQLTypes["job_min_fields"] | undefined }; /** order by aggregate values of table "job" */ ["job_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["job_max_order_by"], - min?: GraphQLTypes["job_min_order_by"] + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["job_max_order_by"] | undefined, + min?: GraphQLTypes["job_min_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["job_append_input"]: { - logs?: GraphQLTypes["jsonb"], - params?: GraphQLTypes["jsonb"], - response?: GraphQLTypes["jsonb"] + logs?: GraphQLTypes["jsonb"] | undefined, + params?: GraphQLTypes["jsonb"] | undefined, + response?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "job" */ ["job_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["job_on_conflict"] + on_conflict?: GraphQLTypes["job_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "job". All fields are combined with a logical 'AND'. */ ["job_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["job_bool_exp"], + _not?: GraphQLTypes["job_bool_exp"] | undefined, _or?: Array, - apiVersion?: GraphQLTypes["String_comparison_exp"], - connection?: GraphQLTypes["connection_bool_exp"], - connectionId?: GraphQLTypes["uuid_comparison_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - endedAt?: GraphQLTypes["timestamptz_comparison_exp"], - entities?: GraphQLTypes["entity_bool_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - integration?: GraphQLTypes["integration_bool_exp"], - integrationId?: GraphQLTypes["uuid_comparison_exp"], - integrationSdkVersion?: GraphQLTypes["String_comparison_exp"], - integrationVersion?: GraphQLTypes["String_comparison_exp"], - issues?: GraphQLTypes["issue_bool_exp"], - logFile?: GraphQLTypes["String_comparison_exp"], - logLink?: GraphQLTypes["String_comparison_exp"], - logs?: GraphQLTypes["jsonb_comparison_exp"], - method?: GraphQLTypes["job_method_enum_comparison_exp"], - params?: GraphQLTypes["jsonb_comparison_exp"], - requestId?: GraphQLTypes["String_comparison_exp"], - response?: GraphQLTypes["jsonb_comparison_exp"], - sdkVersion?: GraphQLTypes["String_comparison_exp"], - startedAt?: GraphQLTypes["timestamptz_comparison_exp"], - status?: GraphQLTypes["job_status_enum_comparison_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] + apiVersion?: GraphQLTypes["String_comparison_exp"] | undefined, + connection?: GraphQLTypes["connection_bool_exp"] | undefined, + connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + endedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + entities?: GraphQLTypes["entity_bool_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + integration?: GraphQLTypes["integration_bool_exp"] | undefined, + integrationId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + integrationSdkVersion?: GraphQLTypes["String_comparison_exp"] | undefined, + integrationVersion?: GraphQLTypes["String_comparison_exp"] | undefined, + issues?: GraphQLTypes["issue_bool_exp"] | undefined, + logFile?: GraphQLTypes["String_comparison_exp"] | undefined, + logLink?: GraphQLTypes["String_comparison_exp"] | undefined, + logs?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + method?: GraphQLTypes["job_method_enum_comparison_exp"] | undefined, + params?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + requestId?: GraphQLTypes["String_comparison_exp"] | undefined, + response?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + sdkVersion?: GraphQLTypes["String_comparison_exp"] | undefined, + startedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + status?: GraphQLTypes["job_status_enum_comparison_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined }; /** unique or primary key constraints on table "job" */ ["job_constraint"]: job_constraint; @@ -12128,126 +12128,126 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["job_delete_elem_input"]: { - logs?: number, - params?: number, - response?: number + logs?: number | undefined, + params?: number | undefined, + response?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["job_delete_key_input"]: { - logs?: string, - params?: string, - response?: string + logs?: string | undefined, + params?: string | undefined, + response?: string | undefined }; /** input type for inserting data into table "job" */ ["job_insert_input"]: { - apiVersion?: string, - connection?: GraphQLTypes["connection_obj_rel_insert_input"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - endedAt?: GraphQLTypes["timestamptz"], - entities?: GraphQLTypes["entity_arr_rel_insert_input"], - id?: GraphQLTypes["uuid"], - integration?: GraphQLTypes["integration_obj_rel_insert_input"], - integrationId?: GraphQLTypes["uuid"], - integrationSdkVersion?: string, - integrationVersion?: string, - issues?: GraphQLTypes["issue_arr_rel_insert_input"], - logFile?: string, - logLink?: string, - logs?: GraphQLTypes["jsonb"], - method?: GraphQLTypes["job_method_enum"], - params?: GraphQLTypes["jsonb"], - requestId?: string, - response?: GraphQLTypes["jsonb"], - sdkVersion?: string, - startedAt?: GraphQLTypes["timestamptz"], - status?: GraphQLTypes["job_status_enum"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + apiVersion?: string | undefined, + connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + endedAt?: GraphQLTypes["timestamptz"] | undefined, + entities?: GraphQLTypes["entity_arr_rel_insert_input"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integration?: GraphQLTypes["integration_obj_rel_insert_input"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + integrationSdkVersion?: string | undefined, + integrationVersion?: string | undefined, + issues?: GraphQLTypes["issue_arr_rel_insert_input"] | undefined, + logFile?: string | undefined, + logLink?: string | undefined, + logs?: GraphQLTypes["jsonb"] | undefined, + method?: GraphQLTypes["job_method_enum"] | undefined, + params?: GraphQLTypes["jsonb"] | undefined, + requestId?: string | undefined, + response?: GraphQLTypes["jsonb"] | undefined, + sdkVersion?: string | undefined, + startedAt?: GraphQLTypes["timestamptz"] | undefined, + status?: GraphQLTypes["job_status_enum"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate max on columns */ ["job_max_fields"]: { __typename: "job_max_fields", - apiVersion?: string, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - endedAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - integrationId?: GraphQLTypes["uuid"], - integrationSdkVersion?: string, - integrationVersion?: string, - logFile?: string, - logLink?: string, - requestId?: string, - sdkVersion?: string, - startedAt?: GraphQLTypes["timestamptz"], - teamId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + apiVersion?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + endedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + integrationSdkVersion?: string | undefined, + integrationVersion?: string | undefined, + logFile?: string | undefined, + logLink?: string | undefined, + requestId?: string | undefined, + sdkVersion?: string | undefined, + startedAt?: GraphQLTypes["timestamptz"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "job" */ ["job_max_order_by"]: { - apiVersion?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - endedAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - integrationId?: GraphQLTypes["order_by"], - integrationSdkVersion?: GraphQLTypes["order_by"], - integrationVersion?: GraphQLTypes["order_by"], - logFile?: GraphQLTypes["order_by"], - logLink?: GraphQLTypes["order_by"], - requestId?: GraphQLTypes["order_by"], - sdkVersion?: GraphQLTypes["order_by"], - startedAt?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + apiVersion?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + endedAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + integrationId?: GraphQLTypes["order_by"] | undefined, + integrationSdkVersion?: GraphQLTypes["order_by"] | undefined, + integrationVersion?: GraphQLTypes["order_by"] | undefined, + logFile?: GraphQLTypes["order_by"] | undefined, + logLink?: GraphQLTypes["order_by"] | undefined, + requestId?: GraphQLTypes["order_by"] | undefined, + sdkVersion?: GraphQLTypes["order_by"] | undefined, + startedAt?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; ["job_method_enum"]: job_method_enum; /** Boolean expression to compare columns of type "job_method_enum". All fields are combined with logical 'AND'. */ ["job_method_enum_comparison_exp"]: { - _eq?: GraphQLTypes["job_method_enum"], + _eq?: GraphQLTypes["job_method_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["job_method_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["job_method_enum"] | undefined, _nin?: Array }; /** aggregate min on columns */ ["job_min_fields"]: { __typename: "job_min_fields", - apiVersion?: string, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - endedAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - integrationId?: GraphQLTypes["uuid"], - integrationSdkVersion?: string, - integrationVersion?: string, - logFile?: string, - logLink?: string, - requestId?: string, - sdkVersion?: string, - startedAt?: GraphQLTypes["timestamptz"], - teamId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + apiVersion?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + endedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + integrationSdkVersion?: string | undefined, + integrationVersion?: string | undefined, + logFile?: string | undefined, + logLink?: string | undefined, + requestId?: string | undefined, + sdkVersion?: string | undefined, + startedAt?: GraphQLTypes["timestamptz"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "job" */ ["job_min_order_by"]: { - apiVersion?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - endedAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - integrationId?: GraphQLTypes["order_by"], - integrationSdkVersion?: GraphQLTypes["order_by"], - integrationVersion?: GraphQLTypes["order_by"], - logFile?: GraphQLTypes["order_by"], - logLink?: GraphQLTypes["order_by"], - requestId?: GraphQLTypes["order_by"], - sdkVersion?: GraphQLTypes["order_by"], - startedAt?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + apiVersion?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + endedAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + integrationId?: GraphQLTypes["order_by"] | undefined, + integrationSdkVersion?: GraphQLTypes["order_by"] | undefined, + integrationVersion?: GraphQLTypes["order_by"] | undefined, + logFile?: GraphQLTypes["order_by"] | undefined, + logLink?: GraphQLTypes["order_by"] | undefined, + requestId?: GraphQLTypes["order_by"] | undefined, + sdkVersion?: GraphQLTypes["order_by"] | undefined, + startedAt?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "job" */ ["job_mutation_response"]: { @@ -12255,47 +12255,47 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "job" */ ["job_obj_rel_insert_input"]: { data: GraphQLTypes["job_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["job_on_conflict"] + on_conflict?: GraphQLTypes["job_on_conflict"] | undefined }; /** on conflict condition type for table "job" */ ["job_on_conflict"]: { constraint: GraphQLTypes["job_constraint"], - update_columns: Array, - where?: GraphQLTypes["job_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["job_bool_exp"] | undefined }; /** Ordering options when selecting data from "job". */ ["job_order_by"]: { - apiVersion?: GraphQLTypes["order_by"], - connection?: GraphQLTypes["connection_order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - endedAt?: GraphQLTypes["order_by"], - entities_aggregate?: GraphQLTypes["entity_aggregate_order_by"], - id?: GraphQLTypes["order_by"], - integration?: GraphQLTypes["integration_order_by"], - integrationId?: GraphQLTypes["order_by"], - integrationSdkVersion?: GraphQLTypes["order_by"], - integrationVersion?: GraphQLTypes["order_by"], - issues_aggregate?: GraphQLTypes["issue_aggregate_order_by"], - logFile?: GraphQLTypes["order_by"], - logLink?: GraphQLTypes["order_by"], - logs?: GraphQLTypes["order_by"], - method?: GraphQLTypes["order_by"], - params?: GraphQLTypes["order_by"], - requestId?: GraphQLTypes["order_by"], - response?: GraphQLTypes["order_by"], - sdkVersion?: GraphQLTypes["order_by"], - startedAt?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + apiVersion?: GraphQLTypes["order_by"] | undefined, + connection?: GraphQLTypes["connection_order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + endedAt?: GraphQLTypes["order_by"] | undefined, + entities_aggregate?: GraphQLTypes["entity_aggregate_order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + integration?: GraphQLTypes["integration_order_by"] | undefined, + integrationId?: GraphQLTypes["order_by"] | undefined, + integrationSdkVersion?: GraphQLTypes["order_by"] | undefined, + integrationVersion?: GraphQLTypes["order_by"] | undefined, + issues_aggregate?: GraphQLTypes["issue_aggregate_order_by"] | undefined, + logFile?: GraphQLTypes["order_by"] | undefined, + logLink?: GraphQLTypes["order_by"] | undefined, + logs?: GraphQLTypes["order_by"] | undefined, + method?: GraphQLTypes["order_by"] | undefined, + params?: GraphQLTypes["order_by"] | undefined, + requestId?: GraphQLTypes["order_by"] | undefined, + response?: GraphQLTypes["order_by"] | undefined, + sdkVersion?: GraphQLTypes["order_by"] | undefined, + startedAt?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: job */ ["job_pk_columns_input"]: { @@ -12303,42 +12303,42 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["job_prepend_input"]: { - logs?: GraphQLTypes["jsonb"], - params?: GraphQLTypes["jsonb"], - response?: GraphQLTypes["jsonb"] + logs?: GraphQLTypes["jsonb"] | undefined, + params?: GraphQLTypes["jsonb"] | undefined, + response?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "job" */ ["job_select_column"]: job_select_column; /** input type for updating data in table "job" */ ["job_set_input"]: { - apiVersion?: string, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - endedAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - integrationId?: GraphQLTypes["uuid"], - integrationSdkVersion?: string, - integrationVersion?: string, - logFile?: string, - logLink?: string, - logs?: GraphQLTypes["jsonb"], - method?: GraphQLTypes["job_method_enum"], - params?: GraphQLTypes["jsonb"], - requestId?: string, - response?: GraphQLTypes["jsonb"], - sdkVersion?: string, - startedAt?: GraphQLTypes["timestamptz"], - status?: GraphQLTypes["job_status_enum"], - teamId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + apiVersion?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + endedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + integrationSdkVersion?: string | undefined, + integrationVersion?: string | undefined, + logFile?: string | undefined, + logLink?: string | undefined, + logs?: GraphQLTypes["jsonb"] | undefined, + method?: GraphQLTypes["job_method_enum"] | undefined, + params?: GraphQLTypes["jsonb"] | undefined, + requestId?: string | undefined, + response?: GraphQLTypes["jsonb"] | undefined, + sdkVersion?: string | undefined, + startedAt?: GraphQLTypes["timestamptz"] | undefined, + status?: GraphQLTypes["job_status_enum"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; ["job_status_enum"]: job_status_enum; /** Boolean expression to compare columns of type "job_status_enum". All fields are combined with logical 'AND'. */ ["job_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["job_status_enum"], + _eq?: GraphQLTypes["job_status_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["job_status_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["job_status_enum"] | undefined, _nin?: Array }; /** update columns of table "job" */ @@ -12351,38 +12351,38 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "job_method" */ ["jobMethod_aggregate"]: { __typename: "jobMethod_aggregate", - aggregate?: GraphQLTypes["jobMethod_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["jobMethod_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "job_method" */ ["jobMethod_aggregate_fields"]: { __typename: "jobMethod_aggregate_fields", count: number, - max?: GraphQLTypes["jobMethod_max_fields"], - min?: GraphQLTypes["jobMethod_min_fields"] + max?: GraphQLTypes["jobMethod_max_fields"] | undefined, + min?: GraphQLTypes["jobMethod_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "job_method". All fields are combined with a logical 'AND'. */ ["jobMethod_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["jobMethod_bool_exp"], + _not?: GraphQLTypes["jobMethod_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "job_method" */ ["jobMethod_constraint"]: jobMethod_constraint; /** input type for inserting data into table "job_method" */ ["jobMethod_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["jobMethod_max_fields"]: { __typename: "jobMethod_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["jobMethod_min_fields"]: { __typename: "jobMethod_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "job_method" */ ["jobMethod_mutation_response"]: { @@ -12390,17 +12390,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "job_method" */ ["jobMethod_on_conflict"]: { constraint: GraphQLTypes["jobMethod_constraint"], - update_columns: Array, - where?: GraphQLTypes["jobMethod_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["jobMethod_bool_exp"] | undefined }; /** Ordering options when selecting data from "job_method". */ ["jobMethod_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: jobMethod */ ["jobMethod_pk_columns_input"]: { @@ -12410,7 +12410,7 @@ end). throws an error if top level container is not an array */ ["jobMethod_select_column"]: jobMethod_select_column; /** input type for updating data in table "job_method" */ ["jobMethod_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "job_method" */ ["jobMethod_update_column"]: jobMethod_update_column; @@ -12422,38 +12422,38 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "job_status" */ ["jobStatus_aggregate"]: { __typename: "jobStatus_aggregate", - aggregate?: GraphQLTypes["jobStatus_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["jobStatus_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "job_status" */ ["jobStatus_aggregate_fields"]: { __typename: "jobStatus_aggregate_fields", count: number, - max?: GraphQLTypes["jobStatus_max_fields"], - min?: GraphQLTypes["jobStatus_min_fields"] + max?: GraphQLTypes["jobStatus_max_fields"] | undefined, + min?: GraphQLTypes["jobStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "job_status". All fields are combined with a logical 'AND'. */ ["jobStatus_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["jobStatus_bool_exp"], + _not?: GraphQLTypes["jobStatus_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "job_status" */ ["jobStatus_constraint"]: jobStatus_constraint; /** input type for inserting data into table "job_status" */ ["jobStatus_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["jobStatus_max_fields"]: { __typename: "jobStatus_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["jobStatus_min_fields"]: { __typename: "jobStatus_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "job_status" */ ["jobStatus_mutation_response"]: { @@ -12461,17 +12461,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "job_status" */ ["jobStatus_on_conflict"]: { constraint: GraphQLTypes["jobStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["jobStatus_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["jobStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "job_status". */ ["jobStatus_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: jobStatus */ ["jobStatus_pk_columns_input"]: { @@ -12481,7 +12481,7 @@ end). throws an error if top level container is not an array */ ["jobStatus_select_column"]: jobStatus_select_column; /** input type for updating data in table "job_status" */ ["jobStatus_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "job_status" */ ["jobStatus_update_column"]: jobStatus_update_column; @@ -12489,154 +12489,154 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ ["jsonb_comparison_exp"]: { /** is the column contained in the given json value */ - _contained_in?: GraphQLTypes["jsonb"], + _contained_in?: GraphQLTypes["jsonb"] | undefined, /** does the column contain the given json value at the top level */ - _contains?: GraphQLTypes["jsonb"], - _eq?: GraphQLTypes["jsonb"], - _gt?: GraphQLTypes["jsonb"], - _gte?: GraphQLTypes["jsonb"], + _contains?: GraphQLTypes["jsonb"] | undefined, + _eq?: GraphQLTypes["jsonb"] | undefined, + _gt?: GraphQLTypes["jsonb"] | undefined, + _gte?: GraphQLTypes["jsonb"] | undefined, /** does the string exist as a top-level key in the column */ - _has_key?: string, + _has_key?: string | undefined, /** do all of these strings exist as top-level keys in the column */ _has_keys_all?: Array, /** do any of these strings exist as top-level keys in the column */ _has_keys_any?: Array, _in?: Array, - _is_null?: boolean, - _lt?: GraphQLTypes["jsonb"], - _lte?: GraphQLTypes["jsonb"], - _neq?: GraphQLTypes["jsonb"], + _is_null?: boolean | undefined, + _lt?: GraphQLTypes["jsonb"] | undefined, + _lte?: GraphQLTypes["jsonb"] | undefined, + _neq?: GraphQLTypes["jsonb"] | undefined, _nin?: Array }; /** columns and relationships of "line" */ ["line"]: { __typename: "line", /** An object relationship */ - booking?: GraphQLTypes["booking"], - bookingId?: GraphQLTypes["uuid"], - centTotal?: number, - classification?: GraphQLTypes["classification_enum"], + booking?: GraphQLTypes["booking"] | undefined, + bookingId?: GraphQLTypes["uuid"] | undefined, + centTotal?: number | undefined, + classification?: GraphQLTypes["classification_enum"] | undefined, /** An object relationship */ - connection?: GraphQLTypes["connection"], - connectionId?: GraphQLTypes["uuid"], + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, createdAt: GraphQLTypes["timestamptz"], - description?: string, + description?: string | undefined, /** An array relationship */ - enhancementLines: Array, + enhancementLines: Array | undefined, /** An aggregate relationship */ enhancementLines_aggregate: GraphQLTypes["line_aggregate"], /** An object relationship */ - enhancingLine?: GraphQLTypes["line"], - enhancingLineId?: GraphQLTypes["uuid"], + enhancingLine?: GraphQLTypes["line"] | undefined, + enhancingLineId?: GraphQLTypes["uuid"] | undefined, id: GraphQLTypes["uuid"], - invoiceStatus?: string, - isEnhanced?: boolean, - metadata?: GraphQLTypes["jsonb"], - originCentTotal?: number, - originCurrency?: string, - originExchangeRate?: GraphQLTypes["numeric"], + invoiceStatus?: string | undefined, + isEnhanced?: boolean | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + originCentTotal?: number | undefined, + originCurrency?: string | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined, /** An object relationship */ - payment?: GraphQLTypes["payment"], - paymentId?: GraphQLTypes["uuid"], - subclassification?: GraphQLTypes["subclassification_enum"], + payment?: GraphQLTypes["payment"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + subclassification?: GraphQLTypes["subclassification_enum"] | undefined, /** An object relationship */ - team?: GraphQLTypes["team"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "line" */ ["line_aggregate"]: { __typename: "line_aggregate", - aggregate?: GraphQLTypes["line_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["line_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "line" */ ["line_aggregate_fields"]: { __typename: "line_aggregate_fields", - avg?: GraphQLTypes["line_avg_fields"], + avg?: GraphQLTypes["line_avg_fields"] | undefined, count: number, - max?: GraphQLTypes["line_max_fields"], - min?: GraphQLTypes["line_min_fields"], - stddev?: GraphQLTypes["line_stddev_fields"], - stddev_pop?: GraphQLTypes["line_stddev_pop_fields"], - stddev_samp?: GraphQLTypes["line_stddev_samp_fields"], - sum?: GraphQLTypes["line_sum_fields"], - var_pop?: GraphQLTypes["line_var_pop_fields"], - var_samp?: GraphQLTypes["line_var_samp_fields"], - variance?: GraphQLTypes["line_variance_fields"] + max?: GraphQLTypes["line_max_fields"] | undefined, + min?: GraphQLTypes["line_min_fields"] | undefined, + stddev?: GraphQLTypes["line_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["line_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["line_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["line_sum_fields"] | undefined, + var_pop?: GraphQLTypes["line_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["line_var_samp_fields"] | undefined, + variance?: GraphQLTypes["line_variance_fields"] | undefined }; /** order by aggregate values of table "line" */ ["line_aggregate_order_by"]: { - avg?: GraphQLTypes["line_avg_order_by"], - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["line_max_order_by"], - min?: GraphQLTypes["line_min_order_by"], - stddev?: GraphQLTypes["line_stddev_order_by"], - stddev_pop?: GraphQLTypes["line_stddev_pop_order_by"], - stddev_samp?: GraphQLTypes["line_stddev_samp_order_by"], - sum?: GraphQLTypes["line_sum_order_by"], - var_pop?: GraphQLTypes["line_var_pop_order_by"], - var_samp?: GraphQLTypes["line_var_samp_order_by"], - variance?: GraphQLTypes["line_variance_order_by"] + avg?: GraphQLTypes["line_avg_order_by"] | undefined, + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["line_max_order_by"] | undefined, + min?: GraphQLTypes["line_min_order_by"] | undefined, + stddev?: GraphQLTypes["line_stddev_order_by"] | undefined, + stddev_pop?: GraphQLTypes["line_stddev_pop_order_by"] | undefined, + stddev_samp?: GraphQLTypes["line_stddev_samp_order_by"] | undefined, + sum?: GraphQLTypes["line_sum_order_by"] | undefined, + var_pop?: GraphQLTypes["line_var_pop_order_by"] | undefined, + var_samp?: GraphQLTypes["line_var_samp_order_by"] | undefined, + variance?: GraphQLTypes["line_variance_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["line_append_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "line" */ ["line_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["line_on_conflict"] + on_conflict?: GraphQLTypes["line_on_conflict"] | undefined }; /** aggregate avg on columns */ ["line_avg_fields"]: { __typename: "line_avg_fields", - centTotal?: number, - originCentTotal?: number, - originExchangeRate?: number + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by avg() on columns of table "line" */ ["line_avg_order_by"]: { - centTotal?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined }; /** Boolean expression to filter rows from the table "line". All fields are combined with a logical 'AND'. */ ["line_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["line_bool_exp"], + _not?: GraphQLTypes["line_bool_exp"] | undefined, _or?: Array, - booking?: GraphQLTypes["booking_bool_exp"], - bookingId?: GraphQLTypes["uuid_comparison_exp"], - centTotal?: GraphQLTypes["Int_comparison_exp"], - classification?: GraphQLTypes["classification_enum_comparison_exp"], - connection?: GraphQLTypes["connection_bool_exp"], - connectionId?: GraphQLTypes["uuid_comparison_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - description?: GraphQLTypes["String_comparison_exp"], - enhancementLines?: GraphQLTypes["line_bool_exp"], - enhancingLine?: GraphQLTypes["line_bool_exp"], - enhancingLineId?: GraphQLTypes["uuid_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - invoiceStatus?: GraphQLTypes["String_comparison_exp"], - isEnhanced?: GraphQLTypes["Boolean_comparison_exp"], - metadata?: GraphQLTypes["jsonb_comparison_exp"], - originCentTotal?: GraphQLTypes["Int_comparison_exp"], - originCurrency?: GraphQLTypes["String_comparison_exp"], - originExchangeRate?: GraphQLTypes["numeric_comparison_exp"], - payment?: GraphQLTypes["payment_bool_exp"], - paymentId?: GraphQLTypes["uuid_comparison_exp"], - subclassification?: GraphQLTypes["subclassification_enum_comparison_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - type?: GraphQLTypes["String_comparison_exp"], - uniqueRef?: GraphQLTypes["String_comparison_exp"], - unitId?: GraphQLTypes["uuid_comparison_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] + booking?: GraphQLTypes["booking_bool_exp"] | undefined, + bookingId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + centTotal?: GraphQLTypes["Int_comparison_exp"] | undefined, + classification?: GraphQLTypes["classification_enum_comparison_exp"] | undefined, + connection?: GraphQLTypes["connection_bool_exp"] | undefined, + connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + description?: GraphQLTypes["String_comparison_exp"] | undefined, + enhancementLines?: GraphQLTypes["line_bool_exp"] | undefined, + enhancingLine?: GraphQLTypes["line_bool_exp"] | undefined, + enhancingLineId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + invoiceStatus?: GraphQLTypes["String_comparison_exp"] | undefined, + isEnhanced?: GraphQLTypes["Boolean_comparison_exp"] | undefined, + metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + originCentTotal?: GraphQLTypes["Int_comparison_exp"] | undefined, + originCurrency?: GraphQLTypes["String_comparison_exp"] | undefined, + originExchangeRate?: GraphQLTypes["numeric_comparison_exp"] | undefined, + payment?: GraphQLTypes["payment_bool_exp"] | undefined, + paymentId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + subclassification?: GraphQLTypes["subclassification_enum_comparison_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + type?: GraphQLTypes["String_comparison_exp"] | undefined, + uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, + unitId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined }; /** unique or primary key constraints on table "line" */ ["line_constraint"]: line_constraint; @@ -12647,129 +12647,129 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["line_delete_elem_input"]: { - metadata?: number + metadata?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["line_delete_key_input"]: { - metadata?: string + metadata?: string | undefined }; /** input type for incrementing numeric columns in table "line" */ ["line_inc_input"]: { - centTotal?: number, - originCentTotal?: number, - originExchangeRate?: GraphQLTypes["numeric"] + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined }; /** input type for inserting data into table "line" */ ["line_insert_input"]: { - booking?: GraphQLTypes["booking_obj_rel_insert_input"], - bookingId?: GraphQLTypes["uuid"], - centTotal?: number, - classification?: GraphQLTypes["classification_enum"], - connection?: GraphQLTypes["connection_obj_rel_insert_input"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - enhancementLines?: GraphQLTypes["line_arr_rel_insert_input"], - enhancingLine?: GraphQLTypes["line_obj_rel_insert_input"], - enhancingLineId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - invoiceStatus?: string, - isEnhanced?: boolean, - metadata?: GraphQLTypes["jsonb"], - originCentTotal?: number, - originCurrency?: string, - originExchangeRate?: GraphQLTypes["numeric"], - payment?: GraphQLTypes["payment_obj_rel_insert_input"], - paymentId?: GraphQLTypes["uuid"], - subclassification?: GraphQLTypes["subclassification_enum"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + booking?: GraphQLTypes["booking_obj_rel_insert_input"] | undefined, + bookingId?: GraphQLTypes["uuid"] | undefined, + centTotal?: number | undefined, + classification?: GraphQLTypes["classification_enum"] | undefined, + connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + enhancementLines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, + enhancingLine?: GraphQLTypes["line_obj_rel_insert_input"] | undefined, + enhancingLineId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + invoiceStatus?: string | undefined, + isEnhanced?: boolean | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + originCentTotal?: number | undefined, + originCurrency?: string | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined, + payment?: GraphQLTypes["payment_obj_rel_insert_input"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + subclassification?: GraphQLTypes["subclassification_enum"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate max on columns */ ["line_max_fields"]: { __typename: "line_max_fields", - bookingId?: GraphQLTypes["uuid"], - centTotal?: number, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - enhancingLineId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - invoiceStatus?: string, - originCentTotal?: number, - originCurrency?: string, - originExchangeRate?: GraphQLTypes["numeric"], - paymentId?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookingId?: GraphQLTypes["uuid"] | undefined, + centTotal?: number | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + enhancingLineId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + invoiceStatus?: string | undefined, + originCentTotal?: number | undefined, + originCurrency?: string | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "line" */ ["line_max_order_by"]: { - bookingId?: GraphQLTypes["order_by"], - centTotal?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - description?: GraphQLTypes["order_by"], - enhancingLineId?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - invoiceStatus?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originCurrency?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"], - paymentId?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + bookingId?: GraphQLTypes["order_by"] | undefined, + centTotal?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + description?: GraphQLTypes["order_by"] | undefined, + enhancingLineId?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + invoiceStatus?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originCurrency?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined, + paymentId?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["line_min_fields"]: { __typename: "line_min_fields", - bookingId?: GraphQLTypes["uuid"], - centTotal?: number, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - enhancingLineId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - invoiceStatus?: string, - originCentTotal?: number, - originCurrency?: string, - originExchangeRate?: GraphQLTypes["numeric"], - paymentId?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookingId?: GraphQLTypes["uuid"] | undefined, + centTotal?: number | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + enhancingLineId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + invoiceStatus?: string | undefined, + originCentTotal?: number | undefined, + originCurrency?: string | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "line" */ ["line_min_order_by"]: { - bookingId?: GraphQLTypes["order_by"], - centTotal?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - description?: GraphQLTypes["order_by"], - enhancingLineId?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - invoiceStatus?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originCurrency?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"], - paymentId?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + bookingId?: GraphQLTypes["order_by"] | undefined, + centTotal?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + description?: GraphQLTypes["order_by"] | undefined, + enhancingLineId?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + invoiceStatus?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originCurrency?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined, + paymentId?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "line" */ ["line_mutation_response"]: { @@ -12777,49 +12777,49 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "line" */ ["line_obj_rel_insert_input"]: { data: GraphQLTypes["line_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["line_on_conflict"] + on_conflict?: GraphQLTypes["line_on_conflict"] | undefined }; /** on conflict condition type for table "line" */ ["line_on_conflict"]: { constraint: GraphQLTypes["line_constraint"], - update_columns: Array, - where?: GraphQLTypes["line_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["line_bool_exp"] | undefined }; /** Ordering options when selecting data from "line". */ ["line_order_by"]: { - booking?: GraphQLTypes["booking_order_by"], - bookingId?: GraphQLTypes["order_by"], - centTotal?: GraphQLTypes["order_by"], - classification?: GraphQLTypes["order_by"], - connection?: GraphQLTypes["connection_order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - description?: GraphQLTypes["order_by"], - enhancementLines_aggregate?: GraphQLTypes["line_aggregate_order_by"], - enhancingLine?: GraphQLTypes["line_order_by"], - enhancingLineId?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - invoiceStatus?: GraphQLTypes["order_by"], - isEnhanced?: GraphQLTypes["order_by"], - metadata?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originCurrency?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"], - payment?: GraphQLTypes["payment_order_by"], - paymentId?: GraphQLTypes["order_by"], - subclassification?: GraphQLTypes["order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + booking?: GraphQLTypes["booking_order_by"] | undefined, + bookingId?: GraphQLTypes["order_by"] | undefined, + centTotal?: GraphQLTypes["order_by"] | undefined, + classification?: GraphQLTypes["order_by"] | undefined, + connection?: GraphQLTypes["connection_order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + description?: GraphQLTypes["order_by"] | undefined, + enhancementLines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, + enhancingLine?: GraphQLTypes["line_order_by"] | undefined, + enhancingLineId?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + invoiceStatus?: GraphQLTypes["order_by"] | undefined, + isEnhanced?: GraphQLTypes["order_by"] | undefined, + metadata?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originCurrency?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined, + payment?: GraphQLTypes["payment_order_by"] | undefined, + paymentId?: GraphQLTypes["order_by"] | undefined, + subclassification?: GraphQLTypes["order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: line */ ["line_pk_columns_input"]: { @@ -12827,126 +12827,126 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["line_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "line" */ ["line_select_column"]: line_select_column; /** input type for updating data in table "line" */ ["line_set_input"]: { - bookingId?: GraphQLTypes["uuid"], - centTotal?: number, - classification?: GraphQLTypes["classification_enum"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - enhancingLineId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - invoiceStatus?: string, - isEnhanced?: boolean, - metadata?: GraphQLTypes["jsonb"], - originCentTotal?: number, - originCurrency?: string, - originExchangeRate?: GraphQLTypes["numeric"], - paymentId?: GraphQLTypes["uuid"], - subclassification?: GraphQLTypes["subclassification_enum"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookingId?: GraphQLTypes["uuid"] | undefined, + centTotal?: number | undefined, + classification?: GraphQLTypes["classification_enum"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + enhancingLineId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + invoiceStatus?: string | undefined, + isEnhanced?: boolean | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + originCentTotal?: number | undefined, + originCurrency?: string | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + subclassification?: GraphQLTypes["subclassification_enum"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate stddev on columns */ ["line_stddev_fields"]: { __typename: "line_stddev_fields", - centTotal?: number, - originCentTotal?: number, - originExchangeRate?: number + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by stddev() on columns of table "line" */ ["line_stddev_order_by"]: { - centTotal?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined }; /** aggregate stddev_pop on columns */ ["line_stddev_pop_fields"]: { __typename: "line_stddev_pop_fields", - centTotal?: number, - originCentTotal?: number, - originExchangeRate?: number + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by stddev_pop() on columns of table "line" */ ["line_stddev_pop_order_by"]: { - centTotal?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined }; /** aggregate stddev_samp on columns */ ["line_stddev_samp_fields"]: { __typename: "line_stddev_samp_fields", - centTotal?: number, - originCentTotal?: number, - originExchangeRate?: number + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by stddev_samp() on columns of table "line" */ ["line_stddev_samp_order_by"]: { - centTotal?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined }; /** aggregate sum on columns */ ["line_sum_fields"]: { __typename: "line_sum_fields", - centTotal?: number, - originCentTotal?: number, - originExchangeRate?: GraphQLTypes["numeric"] + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined }; /** order by sum() on columns of table "line" */ ["line_sum_order_by"]: { - centTotal?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined }; /** update columns of table "line" */ ["line_update_column"]: line_update_column; /** aggregate var_pop on columns */ ["line_var_pop_fields"]: { __typename: "line_var_pop_fields", - centTotal?: number, - originCentTotal?: number, - originExchangeRate?: number + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by var_pop() on columns of table "line" */ ["line_var_pop_order_by"]: { - centTotal?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined }; /** aggregate var_samp on columns */ ["line_var_samp_fields"]: { __typename: "line_var_samp_fields", - centTotal?: number, - originCentTotal?: number, - originExchangeRate?: number + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by var_samp() on columns of table "line" */ ["line_var_samp_order_by"]: { - centTotal?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined }; /** aggregate variance on columns */ ["line_variance_fields"]: { __typename: "line_variance_fields", - centTotal?: number, - originCentTotal?: number, - originExchangeRate?: number + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by variance() on columns of table "line" */ ["line_variance_order_by"]: { - centTotal?: GraphQLTypes["order_by"], - originCentTotal?: GraphQLTypes["order_by"], - originExchangeRate?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined, + originCentTotal?: GraphQLTypes["order_by"] | undefined, + originExchangeRate?: GraphQLTypes["order_by"] | undefined }; /** columns and relationships of "metric" */ ["metric"]: { @@ -12961,86 +12961,86 @@ end). throws an error if top level container is not an array */ /** An object relationship */ team: GraphQLTypes["team"], teamId: GraphQLTypes["uuid"], - text?: string, + text?: string | undefined, type: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, updatedAt: GraphQLTypes["timestamptz"], - value?: GraphQLTypes["float8"] + value?: GraphQLTypes["float8"] | undefined }; /** aggregated selection of "metric" */ ["metric_aggregate"]: { __typename: "metric_aggregate", - aggregate?: GraphQLTypes["metric_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["metric_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "metric" */ ["metric_aggregate_fields"]: { __typename: "metric_aggregate_fields", - avg?: GraphQLTypes["metric_avg_fields"], + avg?: GraphQLTypes["metric_avg_fields"] | undefined, count: number, - max?: GraphQLTypes["metric_max_fields"], - min?: GraphQLTypes["metric_min_fields"], - stddev?: GraphQLTypes["metric_stddev_fields"], - stddev_pop?: GraphQLTypes["metric_stddev_pop_fields"], - stddev_samp?: GraphQLTypes["metric_stddev_samp_fields"], - sum?: GraphQLTypes["metric_sum_fields"], - var_pop?: GraphQLTypes["metric_var_pop_fields"], - var_samp?: GraphQLTypes["metric_var_samp_fields"], - variance?: GraphQLTypes["metric_variance_fields"] + max?: GraphQLTypes["metric_max_fields"] | undefined, + min?: GraphQLTypes["metric_min_fields"] | undefined, + stddev?: GraphQLTypes["metric_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["metric_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["metric_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["metric_sum_fields"] | undefined, + var_pop?: GraphQLTypes["metric_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["metric_var_samp_fields"] | undefined, + variance?: GraphQLTypes["metric_variance_fields"] | undefined }; /** order by aggregate values of table "metric" */ ["metric_aggregate_order_by"]: { - avg?: GraphQLTypes["metric_avg_order_by"], - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["metric_max_order_by"], - min?: GraphQLTypes["metric_min_order_by"], - stddev?: GraphQLTypes["metric_stddev_order_by"], - stddev_pop?: GraphQLTypes["metric_stddev_pop_order_by"], - stddev_samp?: GraphQLTypes["metric_stddev_samp_order_by"], - sum?: GraphQLTypes["metric_sum_order_by"], - var_pop?: GraphQLTypes["metric_var_pop_order_by"], - var_samp?: GraphQLTypes["metric_var_samp_order_by"], - variance?: GraphQLTypes["metric_variance_order_by"] + avg?: GraphQLTypes["metric_avg_order_by"] | undefined, + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["metric_max_order_by"] | undefined, + min?: GraphQLTypes["metric_min_order_by"] | undefined, + stddev?: GraphQLTypes["metric_stddev_order_by"] | undefined, + stddev_pop?: GraphQLTypes["metric_stddev_pop_order_by"] | undefined, + stddev_samp?: GraphQLTypes["metric_stddev_samp_order_by"] | undefined, + sum?: GraphQLTypes["metric_sum_order_by"] | undefined, + var_pop?: GraphQLTypes["metric_var_pop_order_by"] | undefined, + var_samp?: GraphQLTypes["metric_var_samp_order_by"] | undefined, + variance?: GraphQLTypes["metric_variance_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["metric_append_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "metric" */ ["metric_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["metric_on_conflict"] + on_conflict?: GraphQLTypes["metric_on_conflict"] | undefined }; /** aggregate avg on columns */ ["metric_avg_fields"]: { __typename: "metric_avg_fields", - value?: number + value?: number | undefined }; /** order by avg() on columns of table "metric" */ ["metric_avg_order_by"]: { - value?: GraphQLTypes["order_by"] + value?: GraphQLTypes["order_by"] | undefined }; /** Boolean expression to filter rows from the table "metric". All fields are combined with a logical 'AND'. */ ["metric_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["metric_bool_exp"], + _not?: GraphQLTypes["metric_bool_exp"] | undefined, _or?: Array, - connection?: GraphQLTypes["connection_bool_exp"], - connectionId?: GraphQLTypes["uuid_comparison_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - ensuedAt?: GraphQLTypes["timestamptz_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - metadata?: GraphQLTypes["jsonb_comparison_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - text?: GraphQLTypes["String_comparison_exp"], - type?: GraphQLTypes["String_comparison_exp"], - uniqueRef?: GraphQLTypes["String_comparison_exp"], - unitId?: GraphQLTypes["uuid_comparison_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"], - value?: GraphQLTypes["float8_comparison_exp"] + connection?: GraphQLTypes["connection_bool_exp"] | undefined, + connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + ensuedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + text?: GraphQLTypes["String_comparison_exp"] | undefined, + type?: GraphQLTypes["String_comparison_exp"] | undefined, + uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, + unitId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + value?: GraphQLTypes["float8_comparison_exp"] | undefined }; /** unique or primary key constraints on table "metric" */ ["metric_constraint"]: metric_constraint; @@ -13051,90 +13051,90 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["metric_delete_elem_input"]: { - metadata?: number + metadata?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["metric_delete_key_input"]: { - metadata?: string + metadata?: string | undefined }; /** input type for incrementing numeric columns in table "metric" */ ["metric_inc_input"]: { - value?: GraphQLTypes["float8"] + value?: GraphQLTypes["float8"] | undefined }; /** input type for inserting data into table "metric" */ ["metric_insert_input"]: { - connection?: GraphQLTypes["connection_obj_rel_insert_input"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - ensuedAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - metadata?: GraphQLTypes["jsonb"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - text?: string, - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"], - value?: GraphQLTypes["float8"] + connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + ensuedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + text?: string | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + value?: GraphQLTypes["float8"] | undefined }; /** aggregate max on columns */ ["metric_max_fields"]: { __typename: "metric_max_fields", - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - ensuedAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - text?: string, - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"], - value?: GraphQLTypes["float8"] + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + ensuedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + text?: string | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + value?: GraphQLTypes["float8"] | undefined }; /** order by max() on columns of table "metric" */ ["metric_max_order_by"]: { - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - ensuedAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - text?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"], - value?: GraphQLTypes["order_by"] + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + ensuedAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + text?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined, + value?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["metric_min_fields"]: { __typename: "metric_min_fields", - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - ensuedAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - text?: string, - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"], - value?: GraphQLTypes["float8"] + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + ensuedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + text?: string | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + value?: GraphQLTypes["float8"] | undefined }; /** order by min() on columns of table "metric" */ ["metric_min_order_by"]: { - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - ensuedAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - text?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"], - value?: GraphQLTypes["order_by"] + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + ensuedAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + text?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined, + value?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "metric" */ ["metric_mutation_response"]: { @@ -13142,30 +13142,30 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "metric" */ ["metric_on_conflict"]: { constraint: GraphQLTypes["metric_constraint"], - update_columns: Array, - where?: GraphQLTypes["metric_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["metric_bool_exp"] | undefined }; /** Ordering options when selecting data from "metric". */ ["metric_order_by"]: { - connection?: GraphQLTypes["connection_order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - ensuedAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - metadata?: GraphQLTypes["order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - text?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"], - value?: GraphQLTypes["order_by"] + connection?: GraphQLTypes["connection_order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + ensuedAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + metadata?: GraphQLTypes["order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + text?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined, + value?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: metric */ ["metric_pk_columns_input"]: { @@ -13173,437 +13173,437 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["metric_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "metric" */ ["metric_select_column"]: metric_select_column; /** input type for updating data in table "metric" */ ["metric_set_input"]: { - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - ensuedAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - metadata?: GraphQLTypes["jsonb"], - teamId?: GraphQLTypes["uuid"], - text?: string, - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"], - value?: GraphQLTypes["float8"] + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + ensuedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + text?: string | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + value?: GraphQLTypes["float8"] | undefined }; /** aggregate stddev on columns */ ["metric_stddev_fields"]: { __typename: "metric_stddev_fields", - value?: number + value?: number | undefined }; /** order by stddev() on columns of table "metric" */ ["metric_stddev_order_by"]: { - value?: GraphQLTypes["order_by"] + value?: GraphQLTypes["order_by"] | undefined }; /** aggregate stddev_pop on columns */ ["metric_stddev_pop_fields"]: { __typename: "metric_stddev_pop_fields", - value?: number + value?: number | undefined }; /** order by stddev_pop() on columns of table "metric" */ ["metric_stddev_pop_order_by"]: { - value?: GraphQLTypes["order_by"] + value?: GraphQLTypes["order_by"] | undefined }; /** aggregate stddev_samp on columns */ ["metric_stddev_samp_fields"]: { __typename: "metric_stddev_samp_fields", - value?: number + value?: number | undefined }; /** order by stddev_samp() on columns of table "metric" */ ["metric_stddev_samp_order_by"]: { - value?: GraphQLTypes["order_by"] + value?: GraphQLTypes["order_by"] | undefined }; /** aggregate sum on columns */ ["metric_sum_fields"]: { __typename: "metric_sum_fields", - value?: GraphQLTypes["float8"] + value?: GraphQLTypes["float8"] | undefined }; /** order by sum() on columns of table "metric" */ ["metric_sum_order_by"]: { - value?: GraphQLTypes["order_by"] + value?: GraphQLTypes["order_by"] | undefined }; /** update columns of table "metric" */ ["metric_update_column"]: metric_update_column; /** aggregate var_pop on columns */ ["metric_var_pop_fields"]: { __typename: "metric_var_pop_fields", - value?: number + value?: number | undefined }; /** order by var_pop() on columns of table "metric" */ ["metric_var_pop_order_by"]: { - value?: GraphQLTypes["order_by"] + value?: GraphQLTypes["order_by"] | undefined }; /** aggregate var_samp on columns */ ["metric_var_samp_fields"]: { __typename: "metric_var_samp_fields", - value?: number + value?: number | undefined }; /** order by var_samp() on columns of table "metric" */ ["metric_var_samp_order_by"]: { - value?: GraphQLTypes["order_by"] + value?: GraphQLTypes["order_by"] | undefined }; /** aggregate variance on columns */ ["metric_variance_fields"]: { __typename: "metric_variance_fields", - value?: number + value?: number | undefined }; /** order by variance() on columns of table "metric" */ ["metric_variance_order_by"]: { - value?: GraphQLTypes["order_by"] + value?: GraphQLTypes["order_by"] | undefined }; /** mutation root */ ["mutation_root"]: { __typename: "mutation_root", /** delete single row from the table: "booking" */ - deleteBooking?: GraphQLTypes["booking"], + deleteBooking?: GraphQLTypes["booking"] | undefined, /** delete single row from the table: "booking_status" */ - deleteBookingStatus?: GraphQLTypes["bookingStatus"], + deleteBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** delete data from the table: "booking_status" */ - deleteBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"], + deleteBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, /** delete data from the table: "booking" */ - deleteBookings?: GraphQLTypes["booking_mutation_response"], + deleteBookings?: GraphQLTypes["booking_mutation_response"] | undefined, /** delete single row from the table: "classification" */ - deleteClassification?: GraphQLTypes["classification"], + deleteClassification?: GraphQLTypes["classification"] | undefined, /** delete data from the table: "classification" */ - deleteClassifications?: GraphQLTypes["classification_mutation_response"], + deleteClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, /** delete single row from the table: "connection" */ - deleteConnection?: GraphQLTypes["connection"], + deleteConnection?: GraphQLTypes["connection"] | undefined, /** delete data from the table: "connection" */ - deleteConnections?: GraphQLTypes["connection_mutation_response"], + deleteConnections?: GraphQLTypes["connection_mutation_response"] | undefined, /** delete data from the table: "currency" */ - deleteCurrencies?: GraphQLTypes["currency_mutation_response"], + deleteCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, /** delete single row from the table: "currency" */ - deleteCurrency?: GraphQLTypes["currency"], + deleteCurrency?: GraphQLTypes["currency"] | undefined, /** delete data from the table: "entity" */ - deleteEntities?: GraphQLTypes["entity_mutation_response"], + deleteEntities?: GraphQLTypes["entity_mutation_response"] | undefined, /** delete single row from the table: "entity" */ - deleteEntity?: GraphQLTypes["entity"], + deleteEntity?: GraphQLTypes["entity"] | undefined, /** delete single row from the table: "entity_status" */ - deleteEntityStatus?: GraphQLTypes["entityStatus"], + deleteEntityStatus?: GraphQLTypes["entityStatus"] | undefined, /** delete data from the table: "entity_status" */ - deleteEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"], + deleteEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, /** delete single row from the table: "integration" */ - deleteIntegration?: GraphQLTypes["integration"], + deleteIntegration?: GraphQLTypes["integration"] | undefined, /** delete single row from the table: "integration_type" */ - deleteIntegrationType?: GraphQLTypes["integrationType"], + deleteIntegrationType?: GraphQLTypes["integrationType"] | undefined, /** delete data from the table: "integration_type" */ - deleteIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"], + deleteIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, /** delete data from the table: "integration" */ - deleteIntegrations?: GraphQLTypes["integration_mutation_response"], + deleteIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, /** delete single row from the table: "issue" */ - deleteIssue?: GraphQLTypes["issue"], + deleteIssue?: GraphQLTypes["issue"] | undefined, /** delete data from the table: "issue" */ - deleteIssues?: GraphQLTypes["issue_mutation_response"], + deleteIssues?: GraphQLTypes["issue_mutation_response"] | undefined, /** delete single row from the table: "job" */ - deleteJob?: GraphQLTypes["job"], + deleteJob?: GraphQLTypes["job"] | undefined, /** delete single row from the table: "job_method" */ - deleteJobMethod?: GraphQLTypes["jobMethod"], + deleteJobMethod?: GraphQLTypes["jobMethod"] | undefined, /** delete data from the table: "job_method" */ - deleteJobMethods?: GraphQLTypes["jobMethod_mutation_response"], + deleteJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, /** delete single row from the table: "job_status" */ - deleteJobStatus?: GraphQLTypes["jobStatus"], + deleteJobStatus?: GraphQLTypes["jobStatus"] | undefined, /** delete data from the table: "job_status" */ - deleteJobStatuses?: GraphQLTypes["jobStatus_mutation_response"], + deleteJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, /** delete data from the table: "job" */ - deleteJobs?: GraphQLTypes["job_mutation_response"], + deleteJobs?: GraphQLTypes["job_mutation_response"] | undefined, /** delete single row from the table: "line" */ - deleteLine?: GraphQLTypes["line"], + deleteLine?: GraphQLTypes["line"] | undefined, /** delete data from the table: "line" */ - deleteLines?: GraphQLTypes["line_mutation_response"], + deleteLines?: GraphQLTypes["line_mutation_response"] | undefined, /** delete single row from the table: "metric" */ - deleteMetric?: GraphQLTypes["metric"], + deleteMetric?: GraphQLTypes["metric"] | undefined, /** delete data from the table: "metric" */ - deleteMetrics?: GraphQLTypes["metric_mutation_response"], + deleteMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, /** delete single row from the table: "normalized_type" */ - deleteNormalizedType?: GraphQLTypes["normalizedType"], + deleteNormalizedType?: GraphQLTypes["normalizedType"] | undefined, /** delete data from the table: "normalized_type" */ - deleteNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"], + deleteNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, /** delete single row from the table: "payment" */ - deletePayment?: GraphQLTypes["payment"], + deletePayment?: GraphQLTypes["payment"] | undefined, /** delete single row from the table: "payment_status" */ - deletePaymentStatus?: GraphQLTypes["paymentStatus"], + deletePaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** delete data from the table: "payment_status" */ - deletePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"], + deletePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, /** delete single row from the table: "payment_type" */ - deletePaymentType?: GraphQLTypes["paymentType"], + deletePaymentType?: GraphQLTypes["paymentType"] | undefined, /** delete data from the table: "payment_type" */ - deletePaymentTypes?: GraphQLTypes["paymentType_mutation_response"], + deletePaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, /** delete data from the table: "payment" */ - deletePayments?: GraphQLTypes["payment_mutation_response"], + deletePayments?: GraphQLTypes["payment_mutation_response"] | undefined, /** delete single row from the table: "subclassification" */ - deleteSubclassification?: GraphQLTypes["subclassification"], + deleteSubclassification?: GraphQLTypes["subclassification"] | undefined, /** delete data from the table: "subclassification" */ - deleteSubclassifications?: GraphQLTypes["subclassification_mutation_response"], + deleteSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, /** delete single row from the table: "tag" */ - deleteTag?: GraphQLTypes["tag"], + deleteTag?: GraphQLTypes["tag"] | undefined, /** delete data from the table: "tag" */ - deleteTags?: GraphQLTypes["tag_mutation_response"], + deleteTags?: GraphQLTypes["tag_mutation_response"] | undefined, /** delete single row from the table: "team" */ - deleteTeam?: GraphQLTypes["team"], + deleteTeam?: GraphQLTypes["team"] | undefined, /** delete single row from the table: "team_user" */ - deleteTeamUser?: GraphQLTypes["teamUser"], + deleteTeamUser?: GraphQLTypes["teamUser"] | undefined, /** delete data from the table: "team_user" */ - deleteTeamUsers?: GraphQLTypes["teamUser_mutation_response"], + deleteTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, /** delete data from the table: "team" */ - deleteTeams?: GraphQLTypes["team_mutation_response"], + deleteTeams?: GraphQLTypes["team_mutation_response"] | undefined, /** delete single row from the table: "unit" */ - deleteUnit?: GraphQLTypes["unit"], + deleteUnit?: GraphQLTypes["unit"] | undefined, /** delete data from the table: "unit" */ - deleteUnits?: GraphQLTypes["unit_mutation_response"], + deleteUnits?: GraphQLTypes["unit_mutation_response"] | undefined, /** delete single row from the table: "user" */ - deleteUser?: GraphQLTypes["user"], + deleteUser?: GraphQLTypes["user"] | undefined, /** delete single row from the table: "user_status" */ - deleteUserStatus?: GraphQLTypes["userStatus"], + deleteUserStatus?: GraphQLTypes["userStatus"] | undefined, /** delete data from the table: "user_status" */ - deleteUserStatuses?: GraphQLTypes["userStatus_mutation_response"], + deleteUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, /** delete data from the table: "user" */ - deleteUsers?: GraphQLTypes["user_mutation_response"], + deleteUsers?: GraphQLTypes["user_mutation_response"] | undefined, /** delete single row from the table: "webhook" */ - deleteWebhook?: GraphQLTypes["webhook"], + deleteWebhook?: GraphQLTypes["webhook"] | undefined, /** delete data from the table: "webhook" */ - deleteWebhooks?: GraphQLTypes["webhook_mutation_response"], + deleteWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, /** delete data from the table: "booking_channel" */ - delete_booking_channel?: GraphQLTypes["booking_channel_mutation_response"], + delete_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, /** delete single row from the table: "booking_channel" */ - delete_booking_channel_by_pk?: GraphQLTypes["booking_channel"], + delete_booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, /** insert a single row into the table: "booking" */ - insertBooking?: GraphQLTypes["booking"], + insertBooking?: GraphQLTypes["booking"] | undefined, /** insert a single row into the table: "booking_status" */ - insertBookingStatus?: GraphQLTypes["bookingStatus"], + insertBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** insert data into the table: "booking_status" */ - insertBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"], + insertBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, /** insert data into the table: "booking" */ - insertBookings?: GraphQLTypes["booking_mutation_response"], + insertBookings?: GraphQLTypes["booking_mutation_response"] | undefined, /** insert a single row into the table: "classification" */ - insertClassification?: GraphQLTypes["classification"], + insertClassification?: GraphQLTypes["classification"] | undefined, /** insert data into the table: "classification" */ - insertClassifications?: GraphQLTypes["classification_mutation_response"], + insertClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, /** insert a single row into the table: "connection" */ - insertConnection?: GraphQLTypes["connection"], + insertConnection?: GraphQLTypes["connection"] | undefined, /** insert data into the table: "connection" */ - insertConnections?: GraphQLTypes["connection_mutation_response"], + insertConnections?: GraphQLTypes["connection_mutation_response"] | undefined, /** insert data into the table: "currency" */ - insertCurrencies?: GraphQLTypes["currency_mutation_response"], + insertCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, /** insert a single row into the table: "currency" */ - insertCurrency?: GraphQLTypes["currency"], + insertCurrency?: GraphQLTypes["currency"] | undefined, /** insert data into the table: "entity" */ - insertEntities?: GraphQLTypes["entity_mutation_response"], + insertEntities?: GraphQLTypes["entity_mutation_response"] | undefined, /** insert a single row into the table: "entity" */ - insertEntity?: GraphQLTypes["entity"], + insertEntity?: GraphQLTypes["entity"] | undefined, /** insert a single row into the table: "entity_status" */ - insertEntityStatus?: GraphQLTypes["entityStatus"], + insertEntityStatus?: GraphQLTypes["entityStatus"] | undefined, /** insert data into the table: "entity_status" */ - insertEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"], + insertEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, /** insert a single row into the table: "integration" */ - insertIntegration?: GraphQLTypes["integration"], + insertIntegration?: GraphQLTypes["integration"] | undefined, /** insert a single row into the table: "integration_type" */ - insertIntegrationType?: GraphQLTypes["integrationType"], + insertIntegrationType?: GraphQLTypes["integrationType"] | undefined, /** insert data into the table: "integration_type" */ - insertIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"], + insertIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, /** insert data into the table: "integration" */ - insertIntegrations?: GraphQLTypes["integration_mutation_response"], + insertIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, /** insert a single row into the table: "issue" */ - insertIssue?: GraphQLTypes["issue"], + insertIssue?: GraphQLTypes["issue"] | undefined, /** insert data into the table: "issue" */ - insertIssues?: GraphQLTypes["issue_mutation_response"], + insertIssues?: GraphQLTypes["issue_mutation_response"] | undefined, /** insert a single row into the table: "job" */ - insertJob?: GraphQLTypes["job"], + insertJob?: GraphQLTypes["job"] | undefined, /** insert a single row into the table: "job_method" */ - insertJobMethod?: GraphQLTypes["jobMethod"], + insertJobMethod?: GraphQLTypes["jobMethod"] | undefined, /** insert data into the table: "job_method" */ - insertJobMethods?: GraphQLTypes["jobMethod_mutation_response"], + insertJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, /** insert a single row into the table: "job_status" */ - insertJobStatus?: GraphQLTypes["jobStatus"], + insertJobStatus?: GraphQLTypes["jobStatus"] | undefined, /** insert data into the table: "job_status" */ - insertJobStatuses?: GraphQLTypes["jobStatus_mutation_response"], + insertJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, /** insert data into the table: "job" */ - insertJobs?: GraphQLTypes["job_mutation_response"], + insertJobs?: GraphQLTypes["job_mutation_response"] | undefined, /** insert a single row into the table: "line" */ - insertLine?: GraphQLTypes["line"], + insertLine?: GraphQLTypes["line"] | undefined, /** insert data into the table: "line" */ - insertLines?: GraphQLTypes["line_mutation_response"], + insertLines?: GraphQLTypes["line_mutation_response"] | undefined, /** insert a single row into the table: "metric" */ - insertMetric?: GraphQLTypes["metric"], + insertMetric?: GraphQLTypes["metric"] | undefined, /** insert data into the table: "metric" */ - insertMetrics?: GraphQLTypes["metric_mutation_response"], + insertMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, /** insert a single row into the table: "normalized_type" */ - insertNormalizedType?: GraphQLTypes["normalizedType"], + insertNormalizedType?: GraphQLTypes["normalizedType"] | undefined, /** insert data into the table: "normalized_type" */ - insertNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"], + insertNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, /** insert a single row into the table: "payment" */ - insertPayment?: GraphQLTypes["payment"], + insertPayment?: GraphQLTypes["payment"] | undefined, /** insert a single row into the table: "payment_status" */ - insertPaymentStatus?: GraphQLTypes["paymentStatus"], + insertPaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** insert data into the table: "payment_status" */ - insertPaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"], + insertPaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, /** insert a single row into the table: "payment_type" */ - insertPaymentType?: GraphQLTypes["paymentType"], + insertPaymentType?: GraphQLTypes["paymentType"] | undefined, /** insert data into the table: "payment_type" */ - insertPaymentTypes?: GraphQLTypes["paymentType_mutation_response"], + insertPaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, /** insert data into the table: "payment" */ - insertPayments?: GraphQLTypes["payment_mutation_response"], + insertPayments?: GraphQLTypes["payment_mutation_response"] | undefined, /** insert a single row into the table: "subclassification" */ - insertSubclassification?: GraphQLTypes["subclassification"], + insertSubclassification?: GraphQLTypes["subclassification"] | undefined, /** insert data into the table: "subclassification" */ - insertSubclassifications?: GraphQLTypes["subclassification_mutation_response"], + insertSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, /** insert a single row into the table: "tag" */ - insertTag?: GraphQLTypes["tag"], + insertTag?: GraphQLTypes["tag"] | undefined, /** insert data into the table: "tag" */ - insertTags?: GraphQLTypes["tag_mutation_response"], + insertTags?: GraphQLTypes["tag_mutation_response"] | undefined, /** insert a single row into the table: "team" */ - insertTeam?: GraphQLTypes["team"], + insertTeam?: GraphQLTypes["team"] | undefined, /** insert a single row into the table: "team_user" */ - insertTeamUser?: GraphQLTypes["teamUser"], + insertTeamUser?: GraphQLTypes["teamUser"] | undefined, /** insert data into the table: "team_user" */ - insertTeamUsers?: GraphQLTypes["teamUser_mutation_response"], + insertTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, /** insert data into the table: "team" */ - insertTeams?: GraphQLTypes["team_mutation_response"], + insertTeams?: GraphQLTypes["team_mutation_response"] | undefined, /** insert a single row into the table: "unit" */ - insertUnit?: GraphQLTypes["unit"], + insertUnit?: GraphQLTypes["unit"] | undefined, /** insert data into the table: "unit" */ - insertUnits?: GraphQLTypes["unit_mutation_response"], + insertUnits?: GraphQLTypes["unit_mutation_response"] | undefined, /** insert a single row into the table: "user" */ - insertUser?: GraphQLTypes["user"], + insertUser?: GraphQLTypes["user"] | undefined, /** insert a single row into the table: "user_status" */ - insertUserStatus?: GraphQLTypes["userStatus"], + insertUserStatus?: GraphQLTypes["userStatus"] | undefined, /** insert data into the table: "user_status" */ - insertUserStatuses?: GraphQLTypes["userStatus_mutation_response"], + insertUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, /** insert data into the table: "user" */ - insertUsers?: GraphQLTypes["user_mutation_response"], + insertUsers?: GraphQLTypes["user_mutation_response"] | undefined, /** insert a single row into the table: "webhook" */ - insertWebhook?: GraphQLTypes["webhook"], + insertWebhook?: GraphQLTypes["webhook"] | undefined, /** insert data into the table: "webhook" */ - insertWebhooks?: GraphQLTypes["webhook_mutation_response"], + insertWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, /** insert data into the table: "booking_channel" */ - insert_booking_channel?: GraphQLTypes["booking_channel_mutation_response"], + insert_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, /** insert a single row into the table: "booking_channel" */ - insert_booking_channel_one?: GraphQLTypes["booking_channel"], + insert_booking_channel_one?: GraphQLTypes["booking_channel"] | undefined, /** update single row of the table: "booking" */ - updateBooking?: GraphQLTypes["booking"], + updateBooking?: GraphQLTypes["booking"] | undefined, /** update single row of the table: "booking_status" */ - updateBookingStatus?: GraphQLTypes["bookingStatus"], + updateBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** update data of the table: "booking_status" */ - updateBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"], + updateBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, /** update data of the table: "booking" */ - updateBookings?: GraphQLTypes["booking_mutation_response"], + updateBookings?: GraphQLTypes["booking_mutation_response"] | undefined, /** update single row of the table: "classification" */ - updateClassification?: GraphQLTypes["classification"], + updateClassification?: GraphQLTypes["classification"] | undefined, /** update data of the table: "classification" */ - updateClassifications?: GraphQLTypes["classification_mutation_response"], + updateClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, /** update single row of the table: "connection" */ - updateConnection?: GraphQLTypes["connection"], + updateConnection?: GraphQLTypes["connection"] | undefined, /** update data of the table: "connection" */ - updateConnections?: GraphQLTypes["connection_mutation_response"], + updateConnections?: GraphQLTypes["connection_mutation_response"] | undefined, /** update data of the table: "currency" */ - updateCurrencies?: GraphQLTypes["currency_mutation_response"], + updateCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, /** update single row of the table: "currency" */ - updateCurrency?: GraphQLTypes["currency"], + updateCurrency?: GraphQLTypes["currency"] | undefined, /** update data of the table: "entity" */ - updateEntities?: GraphQLTypes["entity_mutation_response"], + updateEntities?: GraphQLTypes["entity_mutation_response"] | undefined, /** update single row of the table: "entity" */ - updateEntity?: GraphQLTypes["entity"], + updateEntity?: GraphQLTypes["entity"] | undefined, /** update single row of the table: "entity_status" */ - updateEntityStatus?: GraphQLTypes["entityStatus"], + updateEntityStatus?: GraphQLTypes["entityStatus"] | undefined, /** update data of the table: "entity_status" */ - updateEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"], + updateEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, /** update single row of the table: "integration" */ - updateIntegration?: GraphQLTypes["integration"], + updateIntegration?: GraphQLTypes["integration"] | undefined, /** update single row of the table: "integration_type" */ - updateIntegrationType?: GraphQLTypes["integrationType"], + updateIntegrationType?: GraphQLTypes["integrationType"] | undefined, /** update data of the table: "integration_type" */ - updateIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"], + updateIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, /** update data of the table: "integration" */ - updateIntegrations?: GraphQLTypes["integration_mutation_response"], + updateIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, /** update single row of the table: "issue" */ - updateIssue?: GraphQLTypes["issue"], + updateIssue?: GraphQLTypes["issue"] | undefined, /** update data of the table: "issue" */ - updateIssues?: GraphQLTypes["issue_mutation_response"], + updateIssues?: GraphQLTypes["issue_mutation_response"] | undefined, /** update single row of the table: "job" */ - updateJob?: GraphQLTypes["job"], + updateJob?: GraphQLTypes["job"] | undefined, /** update single row of the table: "job_method" */ - updateJobMethod?: GraphQLTypes["jobMethod"], + updateJobMethod?: GraphQLTypes["jobMethod"] | undefined, /** update data of the table: "job_method" */ - updateJobMethods?: GraphQLTypes["jobMethod_mutation_response"], + updateJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, /** update single row of the table: "job_status" */ - updateJobStatus?: GraphQLTypes["jobStatus"], + updateJobStatus?: GraphQLTypes["jobStatus"] | undefined, /** update data of the table: "job_status" */ - updateJobStatuses?: GraphQLTypes["jobStatus_mutation_response"], + updateJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, /** update data of the table: "job" */ - updateJobs?: GraphQLTypes["job_mutation_response"], + updateJobs?: GraphQLTypes["job_mutation_response"] | undefined, /** update single row of the table: "line" */ - updateLine?: GraphQLTypes["line"], + updateLine?: GraphQLTypes["line"] | undefined, /** update data of the table: "line" */ - updateLines?: GraphQLTypes["line_mutation_response"], + updateLines?: GraphQLTypes["line_mutation_response"] | undefined, /** update single row of the table: "metric" */ - updateMetric?: GraphQLTypes["metric"], + updateMetric?: GraphQLTypes["metric"] | undefined, /** update data of the table: "metric" */ - updateMetrics?: GraphQLTypes["metric_mutation_response"], + updateMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, /** update single row of the table: "normalized_type" */ - updateNormalizedType?: GraphQLTypes["normalizedType"], + updateNormalizedType?: GraphQLTypes["normalizedType"] | undefined, /** update data of the table: "normalized_type" */ - updateNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"], + updateNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, /** update single row of the table: "payment" */ - updatePayment?: GraphQLTypes["payment"], + updatePayment?: GraphQLTypes["payment"] | undefined, /** update single row of the table: "payment_status" */ - updatePaymentStatus?: GraphQLTypes["paymentStatus"], + updatePaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** update data of the table: "payment_status" */ - updatePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"], + updatePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, /** update single row of the table: "payment_type" */ - updatePaymentType?: GraphQLTypes["paymentType"], + updatePaymentType?: GraphQLTypes["paymentType"] | undefined, /** update data of the table: "payment_type" */ - updatePaymentTypes?: GraphQLTypes["paymentType_mutation_response"], + updatePaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, /** update data of the table: "payment" */ - updatePayments?: GraphQLTypes["payment_mutation_response"], + updatePayments?: GraphQLTypes["payment_mutation_response"] | undefined, /** update single row of the table: "subclassification" */ - updateSubclassification?: GraphQLTypes["subclassification"], + updateSubclassification?: GraphQLTypes["subclassification"] | undefined, /** update data of the table: "subclassification" */ - updateSubclassifications?: GraphQLTypes["subclassification_mutation_response"], + updateSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, /** update single row of the table: "tag" */ - updateTag?: GraphQLTypes["tag"], + updateTag?: GraphQLTypes["tag"] | undefined, /** update data of the table: "tag" */ - updateTags?: GraphQLTypes["tag_mutation_response"], + updateTags?: GraphQLTypes["tag_mutation_response"] | undefined, /** update single row of the table: "team" */ - updateTeam?: GraphQLTypes["team"], + updateTeam?: GraphQLTypes["team"] | undefined, /** update single row of the table: "team_user" */ - updateTeamUser?: GraphQLTypes["teamUser"], + updateTeamUser?: GraphQLTypes["teamUser"] | undefined, /** update data of the table: "team_user" */ - updateTeamUsers?: GraphQLTypes["teamUser_mutation_response"], + updateTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, /** update data of the table: "team" */ - updateTeams?: GraphQLTypes["team_mutation_response"], + updateTeams?: GraphQLTypes["team_mutation_response"] | undefined, /** update single row of the table: "unit" */ - updateUnit?: GraphQLTypes["unit"], + updateUnit?: GraphQLTypes["unit"] | undefined, /** update data of the table: "unit" */ - updateUnits?: GraphQLTypes["unit_mutation_response"], + updateUnits?: GraphQLTypes["unit_mutation_response"] | undefined, /** update single row of the table: "user" */ - updateUser?: GraphQLTypes["user"], + updateUser?: GraphQLTypes["user"] | undefined, /** update single row of the table: "user_status" */ - updateUserStatus?: GraphQLTypes["userStatus"], + updateUserStatus?: GraphQLTypes["userStatus"] | undefined, /** update data of the table: "user_status" */ - updateUserStatuses?: GraphQLTypes["userStatus_mutation_response"], + updateUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, /** update data of the table: "user" */ - updateUsers?: GraphQLTypes["user_mutation_response"], + updateUsers?: GraphQLTypes["user_mutation_response"] | undefined, /** update single row of the table: "webhook" */ - updateWebhook?: GraphQLTypes["webhook"], + updateWebhook?: GraphQLTypes["webhook"] | undefined, /** update data of the table: "webhook" */ - updateWebhooks?: GraphQLTypes["webhook_mutation_response"], + updateWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, /** update data of the table: "booking_channel" */ - update_booking_channel?: GraphQLTypes["booking_channel_mutation_response"], + update_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, /** update single row of the table: "booking_channel" */ - update_booking_channel_by_pk?: GraphQLTypes["booking_channel"] + update_booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined }; ["normalized_type_enum"]: normalized_type_enum; /** Boolean expression to compare columns of type "normalized_type_enum". All fields are combined with logical 'AND'. */ ["normalized_type_enum_comparison_exp"]: { - _eq?: GraphQLTypes["normalized_type_enum"], + _eq?: GraphQLTypes["normalized_type_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["normalized_type_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["normalized_type_enum"] | undefined, _nin?: Array }; /** columns and relationships of "normalized_type" */ @@ -13614,38 +13614,38 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "normalized_type" */ ["normalizedType_aggregate"]: { __typename: "normalizedType_aggregate", - aggregate?: GraphQLTypes["normalizedType_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["normalizedType_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "normalized_type" */ ["normalizedType_aggregate_fields"]: { __typename: "normalizedType_aggregate_fields", count: number, - max?: GraphQLTypes["normalizedType_max_fields"], - min?: GraphQLTypes["normalizedType_min_fields"] + max?: GraphQLTypes["normalizedType_max_fields"] | undefined, + min?: GraphQLTypes["normalizedType_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "normalized_type". All fields are combined with a logical 'AND'. */ ["normalizedType_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["normalizedType_bool_exp"], + _not?: GraphQLTypes["normalizedType_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "normalized_type" */ ["normalizedType_constraint"]: normalizedType_constraint; /** input type for inserting data into table "normalized_type" */ ["normalizedType_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["normalizedType_max_fields"]: { __typename: "normalizedType_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["normalizedType_min_fields"]: { __typename: "normalizedType_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "normalized_type" */ ["normalizedType_mutation_response"]: { @@ -13653,17 +13653,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "normalized_type" */ ["normalizedType_on_conflict"]: { constraint: GraphQLTypes["normalizedType_constraint"], - update_columns: Array, - where?: GraphQLTypes["normalizedType_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["normalizedType_bool_exp"] | undefined }; /** Ordering options when selecting data from "normalized_type". */ ["normalizedType_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: normalizedType */ ["normalizedType_pk_columns_input"]: { @@ -13673,21 +13673,21 @@ end). throws an error if top level container is not an array */ ["normalizedType_select_column"]: normalizedType_select_column; /** input type for updating data in table "normalized_type" */ ["normalizedType_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "normalized_type" */ ["normalizedType_update_column"]: normalizedType_update_column; ["numeric"]:any; /** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ ["numeric_comparison_exp"]: { - _eq?: GraphQLTypes["numeric"], - _gt?: GraphQLTypes["numeric"], - _gte?: GraphQLTypes["numeric"], + _eq?: GraphQLTypes["numeric"] | undefined, + _gt?: GraphQLTypes["numeric"] | undefined, + _gte?: GraphQLTypes["numeric"] | undefined, _in?: Array, - _is_null?: boolean, - _lt?: GraphQLTypes["numeric"], - _lte?: GraphQLTypes["numeric"], - _neq?: GraphQLTypes["numeric"], + _is_null?: boolean | undefined, + _lt?: GraphQLTypes["numeric"] | undefined, + _lte?: GraphQLTypes["numeric"] | undefined, + _neq?: GraphQLTypes["numeric"] | undefined, _nin?: Array }; /** column ordering options */ @@ -13695,115 +13695,115 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "payment" */ ["payment"]: { __typename: "payment", - arrivesAt?: GraphQLTypes["timestamptz"], - centTotal?: number, + arrivesAt?: GraphQLTypes["timestamptz"] | undefined, + centTotal?: number | undefined, /** An object relationship */ - connection?: GraphQLTypes["connection"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - currency?: GraphQLTypes["currency_enum"], - description?: string, + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + currency?: GraphQLTypes["currency_enum"] | undefined, + description?: string | undefined, /** An object relationship */ - entity?: GraphQLTypes["entity"], - entityId?: GraphQLTypes["uuid"], + entity?: GraphQLTypes["entity"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, id: GraphQLTypes["uuid"], /** An array relationship */ - lines: Array, + lines: Array | undefined, /** An aggregate relationship */ lines_aggregate: GraphQLTypes["line_aggregate"], - metadata?: GraphQLTypes["jsonb"], - paidAt?: GraphQLTypes["timestamptz"], - status?: GraphQLTypes["payment_status_enum"], + metadata?: GraphQLTypes["jsonb"] | undefined, + paidAt?: GraphQLTypes["timestamptz"] | undefined, + status?: GraphQLTypes["payment_status_enum"] | undefined, /** An array relationship */ - tags: Array, + tags: Array | undefined, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ - team?: GraphQLTypes["team"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "payment" */ ["payment_aggregate"]: { __typename: "payment_aggregate", - aggregate?: GraphQLTypes["payment_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["payment_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "payment" */ ["payment_aggregate_fields"]: { __typename: "payment_aggregate_fields", - avg?: GraphQLTypes["payment_avg_fields"], + avg?: GraphQLTypes["payment_avg_fields"] | undefined, count: number, - max?: GraphQLTypes["payment_max_fields"], - min?: GraphQLTypes["payment_min_fields"], - stddev?: GraphQLTypes["payment_stddev_fields"], - stddev_pop?: GraphQLTypes["payment_stddev_pop_fields"], - stddev_samp?: GraphQLTypes["payment_stddev_samp_fields"], - sum?: GraphQLTypes["payment_sum_fields"], - var_pop?: GraphQLTypes["payment_var_pop_fields"], - var_samp?: GraphQLTypes["payment_var_samp_fields"], - variance?: GraphQLTypes["payment_variance_fields"] + max?: GraphQLTypes["payment_max_fields"] | undefined, + min?: GraphQLTypes["payment_min_fields"] | undefined, + stddev?: GraphQLTypes["payment_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["payment_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["payment_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["payment_sum_fields"] | undefined, + var_pop?: GraphQLTypes["payment_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["payment_var_samp_fields"] | undefined, + variance?: GraphQLTypes["payment_variance_fields"] | undefined }; /** order by aggregate values of table "payment" */ ["payment_aggregate_order_by"]: { - avg?: GraphQLTypes["payment_avg_order_by"], - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["payment_max_order_by"], - min?: GraphQLTypes["payment_min_order_by"], - stddev?: GraphQLTypes["payment_stddev_order_by"], - stddev_pop?: GraphQLTypes["payment_stddev_pop_order_by"], - stddev_samp?: GraphQLTypes["payment_stddev_samp_order_by"], - sum?: GraphQLTypes["payment_sum_order_by"], - var_pop?: GraphQLTypes["payment_var_pop_order_by"], - var_samp?: GraphQLTypes["payment_var_samp_order_by"], - variance?: GraphQLTypes["payment_variance_order_by"] + avg?: GraphQLTypes["payment_avg_order_by"] | undefined, + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["payment_max_order_by"] | undefined, + min?: GraphQLTypes["payment_min_order_by"] | undefined, + stddev?: GraphQLTypes["payment_stddev_order_by"] | undefined, + stddev_pop?: GraphQLTypes["payment_stddev_pop_order_by"] | undefined, + stddev_samp?: GraphQLTypes["payment_stddev_samp_order_by"] | undefined, + sum?: GraphQLTypes["payment_sum_order_by"] | undefined, + var_pop?: GraphQLTypes["payment_var_pop_order_by"] | undefined, + var_samp?: GraphQLTypes["payment_var_samp_order_by"] | undefined, + variance?: GraphQLTypes["payment_variance_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["payment_append_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "payment" */ ["payment_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["payment_on_conflict"] + on_conflict?: GraphQLTypes["payment_on_conflict"] | undefined }; /** aggregate avg on columns */ ["payment_avg_fields"]: { __typename: "payment_avg_fields", - centTotal?: number + centTotal?: number | undefined }; /** order by avg() on columns of table "payment" */ ["payment_avg_order_by"]: { - centTotal?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined }; /** Boolean expression to filter rows from the table "payment". All fields are combined with a logical 'AND'. */ ["payment_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["payment_bool_exp"], + _not?: GraphQLTypes["payment_bool_exp"] | undefined, _or?: Array, - arrivesAt?: GraphQLTypes["timestamptz_comparison_exp"], - centTotal?: GraphQLTypes["Int_comparison_exp"], - connection?: GraphQLTypes["connection_bool_exp"], - connectionId?: GraphQLTypes["uuid_comparison_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - currency?: GraphQLTypes["currency_enum_comparison_exp"], - description?: GraphQLTypes["String_comparison_exp"], - entity?: GraphQLTypes["entity_bool_exp"], - entityId?: GraphQLTypes["uuid_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - lines?: GraphQLTypes["line_bool_exp"], - metadata?: GraphQLTypes["jsonb_comparison_exp"], - paidAt?: GraphQLTypes["timestamptz_comparison_exp"], - status?: GraphQLTypes["payment_status_enum_comparison_exp"], - tags?: GraphQLTypes["tag_bool_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - type?: GraphQLTypes["String_comparison_exp"], - uniqueRef?: GraphQLTypes["String_comparison_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] + arrivesAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + centTotal?: GraphQLTypes["Int_comparison_exp"] | undefined, + connection?: GraphQLTypes["connection_bool_exp"] | undefined, + connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + currency?: GraphQLTypes["currency_enum_comparison_exp"] | undefined, + description?: GraphQLTypes["String_comparison_exp"] | undefined, + entity?: GraphQLTypes["entity_bool_exp"] | undefined, + entityId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + lines?: GraphQLTypes["line_bool_exp"] | undefined, + metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + paidAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + status?: GraphQLTypes["payment_status_enum_comparison_exp"] | undefined, + tags?: GraphQLTypes["tag_bool_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + type?: GraphQLTypes["String_comparison_exp"] | undefined, + uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined }; /** unique or primary key constraints on table "payment" */ ["payment_constraint"]: payment_constraint; @@ -13814,100 +13814,100 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["payment_delete_elem_input"]: { - metadata?: number + metadata?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["payment_delete_key_input"]: { - metadata?: string + metadata?: string | undefined }; /** input type for incrementing numeric columns in table "payment" */ ["payment_inc_input"]: { - centTotal?: number + centTotal?: number | undefined }; /** input type for inserting data into table "payment" */ ["payment_insert_input"]: { - arrivesAt?: GraphQLTypes["timestamptz"], - centTotal?: number, - connection?: GraphQLTypes["connection_obj_rel_insert_input"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - currency?: GraphQLTypes["currency_enum"], - description?: string, - entity?: GraphQLTypes["entity_obj_rel_insert_input"], - entityId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - lines?: GraphQLTypes["line_arr_rel_insert_input"], - metadata?: GraphQLTypes["jsonb"], - paidAt?: GraphQLTypes["timestamptz"], - status?: GraphQLTypes["payment_status_enum"], - tags?: GraphQLTypes["tag_arr_rel_insert_input"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + arrivesAt?: GraphQLTypes["timestamptz"] | undefined, + centTotal?: number | undefined, + connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + currency?: GraphQLTypes["currency_enum"] | undefined, + description?: string | undefined, + entity?: GraphQLTypes["entity_obj_rel_insert_input"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + lines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + paidAt?: GraphQLTypes["timestamptz"] | undefined, + status?: GraphQLTypes["payment_status_enum"] | undefined, + tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate max on columns */ ["payment_max_fields"]: { __typename: "payment_max_fields", - arrivesAt?: GraphQLTypes["timestamptz"], - centTotal?: number, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - entityId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - paidAt?: GraphQLTypes["timestamptz"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + arrivesAt?: GraphQLTypes["timestamptz"] | undefined, + centTotal?: number | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + paidAt?: GraphQLTypes["timestamptz"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "payment" */ ["payment_max_order_by"]: { - arrivesAt?: GraphQLTypes["order_by"], - centTotal?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - description?: GraphQLTypes["order_by"], - entityId?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - paidAt?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + arrivesAt?: GraphQLTypes["order_by"] | undefined, + centTotal?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + description?: GraphQLTypes["order_by"] | undefined, + entityId?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + paidAt?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["payment_min_fields"]: { __typename: "payment_min_fields", - arrivesAt?: GraphQLTypes["timestamptz"], - centTotal?: number, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - description?: string, - entityId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - paidAt?: GraphQLTypes["timestamptz"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + arrivesAt?: GraphQLTypes["timestamptz"] | undefined, + centTotal?: number | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + paidAt?: GraphQLTypes["timestamptz"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "payment" */ ["payment_min_order_by"]: { - arrivesAt?: GraphQLTypes["order_by"], - centTotal?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - description?: GraphQLTypes["order_by"], - entityId?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - paidAt?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + arrivesAt?: GraphQLTypes["order_by"] | undefined, + centTotal?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + description?: GraphQLTypes["order_by"] | undefined, + entityId?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + paidAt?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "payment" */ ["payment_mutation_response"]: { @@ -13915,42 +13915,42 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "payment" */ ["payment_obj_rel_insert_input"]: { data: GraphQLTypes["payment_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["payment_on_conflict"] + on_conflict?: GraphQLTypes["payment_on_conflict"] | undefined }; /** on conflict condition type for table "payment" */ ["payment_on_conflict"]: { constraint: GraphQLTypes["payment_constraint"], - update_columns: Array, - where?: GraphQLTypes["payment_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["payment_bool_exp"] | undefined }; /** Ordering options when selecting data from "payment". */ ["payment_order_by"]: { - arrivesAt?: GraphQLTypes["order_by"], - centTotal?: GraphQLTypes["order_by"], - connection?: GraphQLTypes["connection_order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - currency?: GraphQLTypes["order_by"], - description?: GraphQLTypes["order_by"], - entity?: GraphQLTypes["entity_order_by"], - entityId?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - lines_aggregate?: GraphQLTypes["line_aggregate_order_by"], - metadata?: GraphQLTypes["order_by"], - paidAt?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + arrivesAt?: GraphQLTypes["order_by"] | undefined, + centTotal?: GraphQLTypes["order_by"] | undefined, + connection?: GraphQLTypes["connection_order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + currency?: GraphQLTypes["order_by"] | undefined, + description?: GraphQLTypes["order_by"] | undefined, + entity?: GraphQLTypes["entity_order_by"] | undefined, + entityId?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + lines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, + metadata?: GraphQLTypes["order_by"] | undefined, + paidAt?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: payment */ ["payment_pk_columns_input"]: { @@ -13958,101 +13958,101 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["payment_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "payment" */ ["payment_select_column"]: payment_select_column; /** input type for updating data in table "payment" */ ["payment_set_input"]: { - arrivesAt?: GraphQLTypes["timestamptz"], - centTotal?: number, - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - currency?: GraphQLTypes["currency_enum"], - description?: string, - entityId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - metadata?: GraphQLTypes["jsonb"], - paidAt?: GraphQLTypes["timestamptz"], - status?: GraphQLTypes["payment_status_enum"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + arrivesAt?: GraphQLTypes["timestamptz"] | undefined, + centTotal?: number | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + currency?: GraphQLTypes["currency_enum"] | undefined, + description?: string | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + paidAt?: GraphQLTypes["timestamptz"] | undefined, + status?: GraphQLTypes["payment_status_enum"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; ["payment_status_enum"]: payment_status_enum; /** Boolean expression to compare columns of type "payment_status_enum". All fields are combined with logical 'AND'. */ ["payment_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["payment_status_enum"], + _eq?: GraphQLTypes["payment_status_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["payment_status_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["payment_status_enum"] | undefined, _nin?: Array }; /** aggregate stddev on columns */ ["payment_stddev_fields"]: { __typename: "payment_stddev_fields", - centTotal?: number + centTotal?: number | undefined }; /** order by stddev() on columns of table "payment" */ ["payment_stddev_order_by"]: { - centTotal?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined }; /** aggregate stddev_pop on columns */ ["payment_stddev_pop_fields"]: { __typename: "payment_stddev_pop_fields", - centTotal?: number + centTotal?: number | undefined }; /** order by stddev_pop() on columns of table "payment" */ ["payment_stddev_pop_order_by"]: { - centTotal?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined }; /** aggregate stddev_samp on columns */ ["payment_stddev_samp_fields"]: { __typename: "payment_stddev_samp_fields", - centTotal?: number + centTotal?: number | undefined }; /** order by stddev_samp() on columns of table "payment" */ ["payment_stddev_samp_order_by"]: { - centTotal?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined }; /** aggregate sum on columns */ ["payment_sum_fields"]: { __typename: "payment_sum_fields", - centTotal?: number + centTotal?: number | undefined }; /** order by sum() on columns of table "payment" */ ["payment_sum_order_by"]: { - centTotal?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined }; /** update columns of table "payment" */ ["payment_update_column"]: payment_update_column; /** aggregate var_pop on columns */ ["payment_var_pop_fields"]: { __typename: "payment_var_pop_fields", - centTotal?: number + centTotal?: number | undefined }; /** order by var_pop() on columns of table "payment" */ ["payment_var_pop_order_by"]: { - centTotal?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined }; /** aggregate var_samp on columns */ ["payment_var_samp_fields"]: { __typename: "payment_var_samp_fields", - centTotal?: number + centTotal?: number | undefined }; /** order by var_samp() on columns of table "payment" */ ["payment_var_samp_order_by"]: { - centTotal?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined }; /** aggregate variance on columns */ ["payment_variance_fields"]: { __typename: "payment_variance_fields", - centTotal?: number + centTotal?: number | undefined }; /** order by variance() on columns of table "payment" */ ["payment_variance_order_by"]: { - centTotal?: GraphQLTypes["order_by"] + centTotal?: GraphQLTypes["order_by"] | undefined }; /** columns and relationships of "payment_status" */ ["paymentStatus"]: { @@ -14062,38 +14062,38 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "payment_status" */ ["paymentStatus_aggregate"]: { __typename: "paymentStatus_aggregate", - aggregate?: GraphQLTypes["paymentStatus_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["paymentStatus_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "payment_status" */ ["paymentStatus_aggregate_fields"]: { __typename: "paymentStatus_aggregate_fields", count: number, - max?: GraphQLTypes["paymentStatus_max_fields"], - min?: GraphQLTypes["paymentStatus_min_fields"] + max?: GraphQLTypes["paymentStatus_max_fields"] | undefined, + min?: GraphQLTypes["paymentStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "payment_status". All fields are combined with a logical 'AND'. */ ["paymentStatus_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["paymentStatus_bool_exp"], + _not?: GraphQLTypes["paymentStatus_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "payment_status" */ ["paymentStatus_constraint"]: paymentStatus_constraint; /** input type for inserting data into table "payment_status" */ ["paymentStatus_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["paymentStatus_max_fields"]: { __typename: "paymentStatus_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["paymentStatus_min_fields"]: { __typename: "paymentStatus_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "payment_status" */ ["paymentStatus_mutation_response"]: { @@ -14101,17 +14101,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "payment_status" */ ["paymentStatus_on_conflict"]: { constraint: GraphQLTypes["paymentStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["paymentStatus_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["paymentStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "payment_status". */ ["paymentStatus_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: paymentStatus */ ["paymentStatus_pk_columns_input"]: { @@ -14121,7 +14121,7 @@ end). throws an error if top level container is not an array */ ["paymentStatus_select_column"]: paymentStatus_select_column; /** input type for updating data in table "payment_status" */ ["paymentStatus_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "payment_status" */ ["paymentStatus_update_column"]: paymentStatus_update_column; @@ -14133,38 +14133,38 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "payment_type" */ ["paymentType_aggregate"]: { __typename: "paymentType_aggregate", - aggregate?: GraphQLTypes["paymentType_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["paymentType_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "payment_type" */ ["paymentType_aggregate_fields"]: { __typename: "paymentType_aggregate_fields", count: number, - max?: GraphQLTypes["paymentType_max_fields"], - min?: GraphQLTypes["paymentType_min_fields"] + max?: GraphQLTypes["paymentType_max_fields"] | undefined, + min?: GraphQLTypes["paymentType_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "payment_type". All fields are combined with a logical 'AND'. */ ["paymentType_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["paymentType_bool_exp"], + _not?: GraphQLTypes["paymentType_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "payment_type" */ ["paymentType_constraint"]: paymentType_constraint; /** input type for inserting data into table "payment_type" */ ["paymentType_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["paymentType_max_fields"]: { __typename: "paymentType_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["paymentType_min_fields"]: { __typename: "paymentType_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "payment_type" */ ["paymentType_mutation_response"]: { @@ -14172,17 +14172,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "payment_type" */ ["paymentType_on_conflict"]: { constraint: GraphQLTypes["paymentType_constraint"], - update_columns: Array, - where?: GraphQLTypes["paymentType_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["paymentType_bool_exp"] | undefined }; /** Ordering options when selecting data from "payment_type". */ ["paymentType_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: paymentType */ ["paymentType_pk_columns_input"]: { @@ -14192,7 +14192,7 @@ end). throws an error if top level container is not an array */ ["paymentType_select_column"]: paymentType_select_column; /** input type for updating data in table "payment_type" */ ["paymentType_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "payment_type" */ ["paymentType_update_column"]: paymentType_update_column; @@ -14253,151 +14253,151 @@ end). throws an error if top level container is not an array */ /** fetch aggregated fields from the table: "webhook" */ aggregateWebhooks: GraphQLTypes["webhook_aggregate"], /** fetch data from the table: "booking" using primary key columns */ - booking?: GraphQLTypes["booking"], + booking?: GraphQLTypes["booking"] | undefined, /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?: GraphQLTypes["bookingStatus"], + bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** fetch data from the table: "booking_status" */ - bookingStatuses: Array, + bookingStatuses: Array | undefined, /** fetch data from the table: "booking_channel" */ - booking_channel: Array, + booking_channel: Array | undefined, /** fetch aggregated fields from the table: "booking_channel" */ booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?: GraphQLTypes["booking_channel"], + booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, /** An array relationship */ - bookings: Array, + bookings: Array | undefined, /** fetch data from the table: "classification" using primary key columns */ - classification?: GraphQLTypes["classification"], + classification?: GraphQLTypes["classification"] | undefined, /** fetch data from the table: "classification" */ - classifications: Array, + classifications: Array | undefined, /** fetch data from the table: "connection" using primary key columns */ - connection?: GraphQLTypes["connection"], + connection?: GraphQLTypes["connection"] | undefined, /** An array relationship */ - connections: Array, + connections: Array | undefined, /** fetch data from the table: "currency" */ - currencies: Array, + currencies: Array | undefined, /** fetch data from the table: "currency" using primary key columns */ - currency?: GraphQLTypes["currency"], + currency?: GraphQLTypes["currency"] | undefined, /** An array relationship */ - entities: Array, + entities: Array | undefined, /** fetch data from the table: "entity" using primary key columns */ - entity?: GraphQLTypes["entity"], + entity?: GraphQLTypes["entity"] | undefined, /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?: GraphQLTypes["entityStatus"], + entityStatus?: GraphQLTypes["entityStatus"] | undefined, /** fetch data from the table: "entity_status" */ - entityStatuses: Array, + entityStatuses: Array | undefined, /** fetch data from the table: "integration" using primary key columns */ - integration?: GraphQLTypes["integration"], + integration?: GraphQLTypes["integration"] | undefined, /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?: GraphQLTypes["integrationType"], + integrationType?: GraphQLTypes["integrationType"] | undefined, /** fetch data from the table: "integration_type" */ - integrationTypes: Array, + integrationTypes: Array | undefined, /** An array relationship */ - integrations: Array, + integrations: Array | undefined, /** fetch data from the table: "issue" using primary key columns */ - issue?: GraphQLTypes["issue"], + issue?: GraphQLTypes["issue"] | undefined, /** An array relationship */ - issues: Array, + issues: Array | undefined, /** fetch data from the table: "job" using primary key columns */ - job?: GraphQLTypes["job"], + job?: GraphQLTypes["job"] | undefined, /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?: GraphQLTypes["jobMethod"], + jobMethod?: GraphQLTypes["jobMethod"] | undefined, /** fetch data from the table: "job_method" */ - jobMethods: Array, + jobMethods: Array | undefined, /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?: GraphQLTypes["jobStatus"], + jobStatus?: GraphQLTypes["jobStatus"] | undefined, /** fetch data from the table: "job_status" */ - jobStatuses: Array, + jobStatuses: Array | undefined, /** An array relationship */ - jobs: Array, + jobs: Array | undefined, /** fetch data from the table: "line" using primary key columns */ - line?: GraphQLTypes["line"], + line?: GraphQLTypes["line"] | undefined, /** An array relationship */ - lines: Array, + lines: Array | undefined, /** fetch data from the table: "metric" using primary key columns */ - metric?: GraphQLTypes["metric"], + metric?: GraphQLTypes["metric"] | undefined, /** An array relationship */ - metrics: Array, + metrics: Array | undefined, /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?: GraphQLTypes["normalizedType"], + normalizedType?: GraphQLTypes["normalizedType"] | undefined, /** fetch data from the table: "normalized_type" */ - normalizedTypes: Array, + normalizedTypes: Array | undefined, /** fetch data from the table: "payment" using primary key columns */ - payment?: GraphQLTypes["payment"], + payment?: GraphQLTypes["payment"] | undefined, /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?: GraphQLTypes["paymentStatus"], + paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** fetch data from the table: "payment_status" */ - paymentStatuses: Array, + paymentStatuses: Array | undefined, /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?: GraphQLTypes["paymentType"], + paymentType?: GraphQLTypes["paymentType"] | undefined, /** fetch data from the table: "payment_type" */ - paymentTypes: Array, + paymentTypes: Array | undefined, /** An array relationship */ - payments: Array, + payments: Array | undefined, /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?: GraphQLTypes["subclassification"], + subclassification?: GraphQLTypes["subclassification"] | undefined, /** fetch data from the table: "subclassification" */ - subclassifications: Array, + subclassifications: Array | undefined, /** fetch data from the table: "tag" using primary key columns */ - tag?: GraphQLTypes["tag"], + tag?: GraphQLTypes["tag"] | undefined, /** An array relationship */ - tags: Array, + tags: Array | undefined, /** fetch data from the table: "team" using primary key columns */ - team?: GraphQLTypes["team"], + team?: GraphQLTypes["team"] | undefined, /** fetch data from the table: "team_user" using primary key columns */ - teamUser?: GraphQLTypes["teamUser"], + teamUser?: GraphQLTypes["teamUser"] | undefined, /** fetch data from the table: "team_user" */ - teamUsers: Array, + teamUsers: Array | undefined, /** fetch data from the table: "team" */ - teams: Array, + teams: Array | undefined, /** fetch data from the table: "unit" using primary key columns */ - unit?: GraphQLTypes["unit"], + unit?: GraphQLTypes["unit"] | undefined, /** An array relationship */ - units: Array, + units: Array | undefined, /** fetch data from the table: "user" using primary key columns */ - user?: GraphQLTypes["user"], + user?: GraphQLTypes["user"] | undefined, /** fetch data from the table: "user_status" using primary key columns */ - userStatus?: GraphQLTypes["userStatus"], + userStatus?: GraphQLTypes["userStatus"] | undefined, /** fetch data from the table: "user_status" */ - userStatuses: Array, + userStatuses: Array | undefined, /** fetch data from the table: "user" */ - users: Array, + users: Array | undefined, /** fetch data from the table: "webhook" using primary key columns */ - webhook?: GraphQLTypes["webhook"], + webhook?: GraphQLTypes["webhook"] | undefined, /** An array relationship */ - webhooks: Array + webhooks: Array | undefined }; /** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ ["String_comparison_exp"]: { - _eq?: string, - _gt?: string, - _gte?: string, + _eq?: string | undefined, + _gt?: string | undefined, + _gte?: string | undefined, /** does the column match the given case-insensitive pattern */ - _ilike?: string, + _ilike?: string | undefined, _in?: Array, /** does the column match the given POSIX regular expression, case insensitive */ - _iregex?: string, - _is_null?: boolean, + _iregex?: string | undefined, + _is_null?: boolean | undefined, /** does the column match the given pattern */ - _like?: string, - _lt?: string, - _lte?: string, - _neq?: string, + _like?: string | undefined, + _lt?: string | undefined, + _lte?: string | undefined, + _neq?: string | undefined, /** does the column NOT match the given case-insensitive pattern */ - _nilike?: string, + _nilike?: string | undefined, _nin?: Array, /** does the column NOT match the given POSIX regular expression, case insensitive */ - _niregex?: string, + _niregex?: string | undefined, /** does the column NOT match the given pattern */ - _nlike?: string, + _nlike?: string | undefined, /** does the column NOT match the given POSIX regular expression, case sensitive */ - _nregex?: string, + _nregex?: string | undefined, /** does the column NOT match the given SQL regular expression */ - _nsimilar?: string, + _nsimilar?: string | undefined, /** does the column match the given POSIX regular expression, case sensitive */ - _regex?: string, + _regex?: string | undefined, /** does the column match the given SQL regular expression */ - _similar?: string + _similar?: string | undefined }; /** columns and relationships of "subclassification" */ ["subclassification"]: { @@ -14407,47 +14407,47 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "subclassification" */ ["subclassification_aggregate"]: { __typename: "subclassification_aggregate", - aggregate?: GraphQLTypes["subclassification_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["subclassification_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "subclassification" */ ["subclassification_aggregate_fields"]: { __typename: "subclassification_aggregate_fields", count: number, - max?: GraphQLTypes["subclassification_max_fields"], - min?: GraphQLTypes["subclassification_min_fields"] + max?: GraphQLTypes["subclassification_max_fields"] | undefined, + min?: GraphQLTypes["subclassification_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "subclassification". All fields are combined with a logical 'AND'. */ ["subclassification_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["subclassification_bool_exp"], + _not?: GraphQLTypes["subclassification_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "subclassification" */ ["subclassification_constraint"]: subclassification_constraint; ["subclassification_enum"]: subclassification_enum; /** Boolean expression to compare columns of type "subclassification_enum". All fields are combined with logical 'AND'. */ ["subclassification_enum_comparison_exp"]: { - _eq?: GraphQLTypes["subclassification_enum"], + _eq?: GraphQLTypes["subclassification_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["subclassification_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["subclassification_enum"] | undefined, _nin?: Array }; /** input type for inserting data into table "subclassification" */ ["subclassification_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["subclassification_max_fields"]: { __typename: "subclassification_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["subclassification_min_fields"]: { __typename: "subclassification_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "subclassification" */ ["subclassification_mutation_response"]: { @@ -14455,17 +14455,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "subclassification" */ ["subclassification_on_conflict"]: { constraint: GraphQLTypes["subclassification_constraint"], - update_columns: Array, - where?: GraphQLTypes["subclassification_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["subclassification_bool_exp"] | undefined }; /** Ordering options when selecting data from "subclassification". */ ["subclassification_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: subclassification */ ["subclassification_pk_columns_input"]: { @@ -14475,7 +14475,7 @@ end). throws an error if top level container is not an array */ ["subclassification_select_column"]: subclassification_select_column; /** input type for updating data in table "subclassification" */ ["subclassification_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "subclassification" */ ["subclassification_update_column"]: subclassification_update_column; @@ -14536,119 +14536,119 @@ end). throws an error if top level container is not an array */ /** fetch aggregated fields from the table: "webhook" */ aggregateWebhooks: GraphQLTypes["webhook_aggregate"], /** fetch data from the table: "booking" using primary key columns */ - booking?: GraphQLTypes["booking"], + booking?: GraphQLTypes["booking"] | undefined, /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?: GraphQLTypes["bookingStatus"], + bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** fetch data from the table: "booking_status" */ - bookingStatuses: Array, + bookingStatuses: Array | undefined, /** fetch data from the table: "booking_channel" */ - booking_channel: Array, + booking_channel: Array | undefined, /** fetch aggregated fields from the table: "booking_channel" */ booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?: GraphQLTypes["booking_channel"], + booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, /** An array relationship */ - bookings: Array, + bookings: Array | undefined, /** fetch data from the table: "classification" using primary key columns */ - classification?: GraphQLTypes["classification"], + classification?: GraphQLTypes["classification"] | undefined, /** fetch data from the table: "classification" */ - classifications: Array, + classifications: Array | undefined, /** fetch data from the table: "connection" using primary key columns */ - connection?: GraphQLTypes["connection"], + connection?: GraphQLTypes["connection"] | undefined, /** An array relationship */ - connections: Array, + connections: Array | undefined, /** fetch data from the table: "currency" */ - currencies: Array, + currencies: Array | undefined, /** fetch data from the table: "currency" using primary key columns */ - currency?: GraphQLTypes["currency"], + currency?: GraphQLTypes["currency"] | undefined, /** An array relationship */ - entities: Array, + entities: Array | undefined, /** fetch data from the table: "entity" using primary key columns */ - entity?: GraphQLTypes["entity"], + entity?: GraphQLTypes["entity"] | undefined, /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?: GraphQLTypes["entityStatus"], + entityStatus?: GraphQLTypes["entityStatus"] | undefined, /** fetch data from the table: "entity_status" */ - entityStatuses: Array, + entityStatuses: Array | undefined, /** fetch data from the table: "integration" using primary key columns */ - integration?: GraphQLTypes["integration"], + integration?: GraphQLTypes["integration"] | undefined, /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?: GraphQLTypes["integrationType"], + integrationType?: GraphQLTypes["integrationType"] | undefined, /** fetch data from the table: "integration_type" */ - integrationTypes: Array, + integrationTypes: Array | undefined, /** An array relationship */ - integrations: Array, + integrations: Array | undefined, /** fetch data from the table: "issue" using primary key columns */ - issue?: GraphQLTypes["issue"], + issue?: GraphQLTypes["issue"] | undefined, /** An array relationship */ - issues: Array, + issues: Array | undefined, /** fetch data from the table: "job" using primary key columns */ - job?: GraphQLTypes["job"], + job?: GraphQLTypes["job"] | undefined, /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?: GraphQLTypes["jobMethod"], + jobMethod?: GraphQLTypes["jobMethod"] | undefined, /** fetch data from the table: "job_method" */ - jobMethods: Array, + jobMethods: Array | undefined, /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?: GraphQLTypes["jobStatus"], + jobStatus?: GraphQLTypes["jobStatus"] | undefined, /** fetch data from the table: "job_status" */ - jobStatuses: Array, + jobStatuses: Array | undefined, /** An array relationship */ - jobs: Array, + jobs: Array | undefined, /** fetch data from the table: "line" using primary key columns */ - line?: GraphQLTypes["line"], + line?: GraphQLTypes["line"] | undefined, /** An array relationship */ - lines: Array, + lines: Array | undefined, /** fetch data from the table: "metric" using primary key columns */ - metric?: GraphQLTypes["metric"], + metric?: GraphQLTypes["metric"] | undefined, /** An array relationship */ - metrics: Array, + metrics: Array | undefined, /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?: GraphQLTypes["normalizedType"], + normalizedType?: GraphQLTypes["normalizedType"] | undefined, /** fetch data from the table: "normalized_type" */ - normalizedTypes: Array, + normalizedTypes: Array | undefined, /** fetch data from the table: "payment" using primary key columns */ - payment?: GraphQLTypes["payment"], + payment?: GraphQLTypes["payment"] | undefined, /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?: GraphQLTypes["paymentStatus"], + paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** fetch data from the table: "payment_status" */ - paymentStatuses: Array, + paymentStatuses: Array | undefined, /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?: GraphQLTypes["paymentType"], + paymentType?: GraphQLTypes["paymentType"] | undefined, /** fetch data from the table: "payment_type" */ - paymentTypes: Array, + paymentTypes: Array | undefined, /** An array relationship */ - payments: Array, + payments: Array | undefined, /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?: GraphQLTypes["subclassification"], + subclassification?: GraphQLTypes["subclassification"] | undefined, /** fetch data from the table: "subclassification" */ - subclassifications: Array, + subclassifications: Array | undefined, /** fetch data from the table: "tag" using primary key columns */ - tag?: GraphQLTypes["tag"], + tag?: GraphQLTypes["tag"] | undefined, /** An array relationship */ - tags: Array, + tags: Array | undefined, /** fetch data from the table: "team" using primary key columns */ - team?: GraphQLTypes["team"], + team?: GraphQLTypes["team"] | undefined, /** fetch data from the table: "team_user" using primary key columns */ - teamUser?: GraphQLTypes["teamUser"], + teamUser?: GraphQLTypes["teamUser"] | undefined, /** fetch data from the table: "team_user" */ - teamUsers: Array, + teamUsers: Array | undefined, /** fetch data from the table: "team" */ - teams: Array, + teams: Array | undefined, /** fetch data from the table: "unit" using primary key columns */ - unit?: GraphQLTypes["unit"], + unit?: GraphQLTypes["unit"] | undefined, /** An array relationship */ - units: Array, + units: Array | undefined, /** fetch data from the table: "user" using primary key columns */ - user?: GraphQLTypes["user"], + user?: GraphQLTypes["user"] | undefined, /** fetch data from the table: "user_status" using primary key columns */ - userStatus?: GraphQLTypes["userStatus"], + userStatus?: GraphQLTypes["userStatus"] | undefined, /** fetch data from the table: "user_status" */ - userStatuses: Array, + userStatuses: Array | undefined, /** fetch data from the table: "user" */ - users: Array, + users: Array | undefined, /** fetch data from the table: "webhook" using primary key columns */ - webhook?: GraphQLTypes["webhook"], + webhook?: GraphQLTypes["webhook"] | undefined, /** An array relationship */ - webhooks: Array + webhooks: Array | undefined }; /** columns and relationships of "tag" */ ["tag"]: { @@ -14659,7 +14659,7 @@ end). throws an error if top level container is not an array */ /** An object relationship */ connection: GraphQLTypes["connection"], connectionId: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], + createdAt?: GraphQLTypes["timestamptz"] | undefined, id: GraphQLTypes["uuid"], json: GraphQLTypes["jsonb"], /** An object relationship */ @@ -14673,58 +14673,58 @@ end). throws an error if top level container is not an array */ /** An object relationship */ unit: GraphQLTypes["unit"], unitId: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "tag" */ ["tag_aggregate"]: { __typename: "tag_aggregate", - aggregate?: GraphQLTypes["tag_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["tag_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "tag" */ ["tag_aggregate_fields"]: { __typename: "tag_aggregate_fields", count: number, - max?: GraphQLTypes["tag_max_fields"], - min?: GraphQLTypes["tag_min_fields"] + max?: GraphQLTypes["tag_max_fields"] | undefined, + min?: GraphQLTypes["tag_min_fields"] | undefined }; /** order by aggregate values of table "tag" */ ["tag_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["tag_max_order_by"], - min?: GraphQLTypes["tag_min_order_by"] + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["tag_max_order_by"] | undefined, + min?: GraphQLTypes["tag_min_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["tag_append_input"]: { - json?: GraphQLTypes["jsonb"] + json?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "tag" */ ["tag_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["tag_on_conflict"] + on_conflict?: GraphQLTypes["tag_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "tag". All fields are combined with a logical 'AND'. */ ["tag_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["tag_bool_exp"], + _not?: GraphQLTypes["tag_bool_exp"] | undefined, _or?: Array, - booking?: GraphQLTypes["booking_bool_exp"], - bookingId?: GraphQLTypes["uuid_comparison_exp"], - connection?: GraphQLTypes["connection_bool_exp"], - connectionId?: GraphQLTypes["uuid_comparison_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - json?: GraphQLTypes["jsonb_comparison_exp"], - payment?: GraphQLTypes["payment_bool_exp"], - paymentId?: GraphQLTypes["uuid_comparison_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - type?: GraphQLTypes["String_comparison_exp"], - uniqueRef?: GraphQLTypes["String_comparison_exp"], - unit?: GraphQLTypes["unit_bool_exp"], - unitId?: GraphQLTypes["uuid_comparison_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] + booking?: GraphQLTypes["booking_bool_exp"] | undefined, + bookingId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + connection?: GraphQLTypes["connection_bool_exp"] | undefined, + connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + json?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + payment?: GraphQLTypes["payment_bool_exp"] | undefined, + paymentId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + type?: GraphQLTypes["String_comparison_exp"] | undefined, + uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, + unit?: GraphQLTypes["unit_bool_exp"] | undefined, + unitId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined }; /** unique or primary key constraints on table "tag" */ ["tag_constraint"]: tag_constraint; @@ -14735,84 +14735,84 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["tag_delete_elem_input"]: { - json?: number + json?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["tag_delete_key_input"]: { - json?: string + json?: string | undefined }; /** input type for inserting data into table "tag" */ ["tag_insert_input"]: { - booking?: GraphQLTypes["booking_obj_rel_insert_input"], - bookingId?: GraphQLTypes["uuid"], - connection?: GraphQLTypes["connection_obj_rel_insert_input"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - json?: GraphQLTypes["jsonb"], - payment?: GraphQLTypes["payment_obj_rel_insert_input"], - paymentId?: GraphQLTypes["uuid"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - unit?: GraphQLTypes["unit_obj_rel_insert_input"], - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + booking?: GraphQLTypes["booking_obj_rel_insert_input"] | undefined, + bookingId?: GraphQLTypes["uuid"] | undefined, + connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + json?: GraphQLTypes["jsonb"] | undefined, + payment?: GraphQLTypes["payment_obj_rel_insert_input"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unit?: GraphQLTypes["unit_obj_rel_insert_input"] | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate max on columns */ ["tag_max_fields"]: { __typename: "tag_max_fields", - bookingId?: GraphQLTypes["uuid"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - paymentId?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookingId?: GraphQLTypes["uuid"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "tag" */ ["tag_max_order_by"]: { - bookingId?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - paymentId?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + bookingId?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + paymentId?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["tag_min_fields"]: { __typename: "tag_min_fields", - bookingId?: GraphQLTypes["uuid"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - paymentId?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookingId?: GraphQLTypes["uuid"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "tag" */ ["tag_min_order_by"]: { - bookingId?: GraphQLTypes["order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - paymentId?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + bookingId?: GraphQLTypes["order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + paymentId?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "tag" */ ["tag_mutation_response"]: { @@ -14820,32 +14820,32 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "tag" */ ["tag_on_conflict"]: { constraint: GraphQLTypes["tag_constraint"], - update_columns: Array, - where?: GraphQLTypes["tag_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["tag_bool_exp"] | undefined }; /** Ordering options when selecting data from "tag". */ ["tag_order_by"]: { - booking?: GraphQLTypes["booking_order_by"], - bookingId?: GraphQLTypes["order_by"], - connection?: GraphQLTypes["connection_order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - json?: GraphQLTypes["order_by"], - payment?: GraphQLTypes["payment_order_by"], - paymentId?: GraphQLTypes["order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - type?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - unit?: GraphQLTypes["unit_order_by"], - unitId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + booking?: GraphQLTypes["booking_order_by"] | undefined, + bookingId?: GraphQLTypes["order_by"] | undefined, + connection?: GraphQLTypes["connection_order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + json?: GraphQLTypes["order_by"] | undefined, + payment?: GraphQLTypes["payment_order_by"] | undefined, + paymentId?: GraphQLTypes["order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + type?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + unit?: GraphQLTypes["unit_order_by"] | undefined, + unitId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: tag */ ["tag_pk_columns_input"]: { @@ -14853,217 +14853,217 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["tag_prepend_input"]: { - json?: GraphQLTypes["jsonb"] + json?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "tag" */ ["tag_select_column"]: tag_select_column; /** input type for updating data in table "tag" */ ["tag_set_input"]: { - bookingId?: GraphQLTypes["uuid"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - json?: GraphQLTypes["jsonb"], - paymentId?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - type?: string, - uniqueRef?: string, - unitId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] + bookingId?: GraphQLTypes["uuid"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + json?: GraphQLTypes["jsonb"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** update columns of table "tag" */ ["tag_update_column"]: tag_update_column; /** columns and relationships of "team" */ ["team"]: { __typename: "team", - address?: string, + address?: string | undefined, /** An array relationship */ - bookings: Array, + bookings: Array | undefined, /** An aggregate relationship */ bookings_aggregate: GraphQLTypes["booking_aggregate"], - commissionPercentage?: GraphQLTypes["numeric"], + commissionPercentage?: GraphQLTypes["numeric"] | undefined, /** An array relationship */ - connections: Array, + connections: Array | undefined, /** An aggregate relationship */ connections_aggregate: GraphQLTypes["connection_aggregate"], createdAt: GraphQLTypes["timestamptz"], - email?: string, + email?: string | undefined, /** An array relationship */ - entities: Array, + entities: Array | undefined, /** An aggregate relationship */ entities_aggregate: GraphQLTypes["entity_aggregate"], id: GraphQLTypes["uuid"], /** An array relationship */ - integrations: Array, + integrations: Array | undefined, /** An aggregate relationship */ integrations_aggregate: GraphQLTypes["integration_aggregate"], - isActive?: boolean, - isTest?: boolean, + isActive?: boolean | undefined, + isTest?: boolean | undefined, /** An array relationship */ - issues: Array, + issues: Array | undefined, /** An aggregate relationship */ issues_aggregate: GraphQLTypes["issue_aggregate"], /** An array relationship */ - jobs: Array, + jobs: Array | undefined, /** An aggregate relationship */ jobs_aggregate: GraphQLTypes["job_aggregate"], /** An array relationship */ - lines: Array, + lines: Array | undefined, /** An aggregate relationship */ lines_aggregate: GraphQLTypes["line_aggregate"], /** An array relationship */ - members: Array, + members: Array | undefined, /** An aggregate relationship */ members_aggregate: GraphQLTypes["teamUser_aggregate"], /** An array relationship */ - metrics: Array, + metrics: Array | undefined, /** An aggregate relationship */ metrics_aggregate: GraphQLTypes["metric_aggregate"], name: string, /** An array relationship */ - payments: Array, + payments: Array | undefined, /** An aggregate relationship */ payments_aggregate: GraphQLTypes["payment_aggregate"], - stripeId?: string, - stripeSubscriptionItemId?: string, - supportEmail?: string, - supportPhone?: string, + stripeId?: string | undefined, + stripeSubscriptionItemId?: string | undefined, + supportEmail?: string | undefined, + supportPhone?: string | undefined, /** An array relationship */ - tags: Array, + tags: Array | undefined, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An array relationship */ - units: Array, + units: Array | undefined, /** An aggregate relationship */ units_aggregate: GraphQLTypes["unit_aggregate"], /** An array relationship */ - webhooks: Array, + webhooks: Array | undefined, /** An aggregate relationship */ webhooks_aggregate: GraphQLTypes["webhook_aggregate"], - website?: string + website?: string | undefined }; /** aggregated selection of "team" */ ["team_aggregate"]: { __typename: "team_aggregate", - aggregate?: GraphQLTypes["team_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["team_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "team" */ ["team_aggregate_fields"]: { __typename: "team_aggregate_fields", - avg?: GraphQLTypes["team_avg_fields"], + avg?: GraphQLTypes["team_avg_fields"] | undefined, count: number, - max?: GraphQLTypes["team_max_fields"], - min?: GraphQLTypes["team_min_fields"], - stddev?: GraphQLTypes["team_stddev_fields"], - stddev_pop?: GraphQLTypes["team_stddev_pop_fields"], - stddev_samp?: GraphQLTypes["team_stddev_samp_fields"], - sum?: GraphQLTypes["team_sum_fields"], - var_pop?: GraphQLTypes["team_var_pop_fields"], - var_samp?: GraphQLTypes["team_var_samp_fields"], - variance?: GraphQLTypes["team_variance_fields"] + max?: GraphQLTypes["team_max_fields"] | undefined, + min?: GraphQLTypes["team_min_fields"] | undefined, + stddev?: GraphQLTypes["team_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["team_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["team_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["team_sum_fields"] | undefined, + var_pop?: GraphQLTypes["team_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["team_var_samp_fields"] | undefined, + variance?: GraphQLTypes["team_variance_fields"] | undefined }; /** aggregate avg on columns */ ["team_avg_fields"]: { __typename: "team_avg_fields", - commissionPercentage?: number + commissionPercentage?: number | undefined }; /** Boolean expression to filter rows from the table "team". All fields are combined with a logical 'AND'. */ ["team_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["team_bool_exp"], + _not?: GraphQLTypes["team_bool_exp"] | undefined, _or?: Array, - address?: GraphQLTypes["String_comparison_exp"], - bookings?: GraphQLTypes["booking_bool_exp"], - commissionPercentage?: GraphQLTypes["numeric_comparison_exp"], - connections?: GraphQLTypes["connection_bool_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - email?: GraphQLTypes["String_comparison_exp"], - entities?: GraphQLTypes["entity_bool_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - integrations?: GraphQLTypes["integration_bool_exp"], - isActive?: GraphQLTypes["Boolean_comparison_exp"], - isTest?: GraphQLTypes["Boolean_comparison_exp"], - issues?: GraphQLTypes["issue_bool_exp"], - jobs?: GraphQLTypes["job_bool_exp"], - lines?: GraphQLTypes["line_bool_exp"], - members?: GraphQLTypes["teamUser_bool_exp"], - metrics?: GraphQLTypes["metric_bool_exp"], - name?: GraphQLTypes["String_comparison_exp"], - payments?: GraphQLTypes["payment_bool_exp"], - stripeId?: GraphQLTypes["String_comparison_exp"], - stripeSubscriptionItemId?: GraphQLTypes["String_comparison_exp"], - supportEmail?: GraphQLTypes["String_comparison_exp"], - supportPhone?: GraphQLTypes["String_comparison_exp"], - tags?: GraphQLTypes["tag_bool_exp"], - units?: GraphQLTypes["unit_bool_exp"], - webhooks?: GraphQLTypes["webhook_bool_exp"], - website?: GraphQLTypes["String_comparison_exp"] + address?: GraphQLTypes["String_comparison_exp"] | undefined, + bookings?: GraphQLTypes["booking_bool_exp"] | undefined, + commissionPercentage?: GraphQLTypes["numeric_comparison_exp"] | undefined, + connections?: GraphQLTypes["connection_bool_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + email?: GraphQLTypes["String_comparison_exp"] | undefined, + entities?: GraphQLTypes["entity_bool_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + integrations?: GraphQLTypes["integration_bool_exp"] | undefined, + isActive?: GraphQLTypes["Boolean_comparison_exp"] | undefined, + isTest?: GraphQLTypes["Boolean_comparison_exp"] | undefined, + issues?: GraphQLTypes["issue_bool_exp"] | undefined, + jobs?: GraphQLTypes["job_bool_exp"] | undefined, + lines?: GraphQLTypes["line_bool_exp"] | undefined, + members?: GraphQLTypes["teamUser_bool_exp"] | undefined, + metrics?: GraphQLTypes["metric_bool_exp"] | undefined, + name?: GraphQLTypes["String_comparison_exp"] | undefined, + payments?: GraphQLTypes["payment_bool_exp"] | undefined, + stripeId?: GraphQLTypes["String_comparison_exp"] | undefined, + stripeSubscriptionItemId?: GraphQLTypes["String_comparison_exp"] | undefined, + supportEmail?: GraphQLTypes["String_comparison_exp"] | undefined, + supportPhone?: GraphQLTypes["String_comparison_exp"] | undefined, + tags?: GraphQLTypes["tag_bool_exp"] | undefined, + units?: GraphQLTypes["unit_bool_exp"] | undefined, + webhooks?: GraphQLTypes["webhook_bool_exp"] | undefined, + website?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "team" */ ["team_constraint"]: team_constraint; /** input type for incrementing numeric columns in table "team" */ ["team_inc_input"]: { - commissionPercentage?: GraphQLTypes["numeric"] + commissionPercentage?: GraphQLTypes["numeric"] | undefined }; /** input type for inserting data into table "team" */ ["team_insert_input"]: { - address?: string, - bookings?: GraphQLTypes["booking_arr_rel_insert_input"], - commissionPercentage?: GraphQLTypes["numeric"], - connections?: GraphQLTypes["connection_arr_rel_insert_input"], - createdAt?: GraphQLTypes["timestamptz"], - email?: string, - entities?: GraphQLTypes["entity_arr_rel_insert_input"], - id?: GraphQLTypes["uuid"], - integrations?: GraphQLTypes["integration_arr_rel_insert_input"], - isActive?: boolean, - isTest?: boolean, - issues?: GraphQLTypes["issue_arr_rel_insert_input"], - jobs?: GraphQLTypes["job_arr_rel_insert_input"], - lines?: GraphQLTypes["line_arr_rel_insert_input"], - members?: GraphQLTypes["teamUser_arr_rel_insert_input"], - metrics?: GraphQLTypes["metric_arr_rel_insert_input"], - name?: string, - payments?: GraphQLTypes["payment_arr_rel_insert_input"], - stripeId?: string, - stripeSubscriptionItemId?: string, - supportEmail?: string, - supportPhone?: string, - tags?: GraphQLTypes["tag_arr_rel_insert_input"], - units?: GraphQLTypes["unit_arr_rel_insert_input"], - webhooks?: GraphQLTypes["webhook_arr_rel_insert_input"], - website?: string + address?: string | undefined, + bookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, + commissionPercentage?: GraphQLTypes["numeric"] | undefined, + connections?: GraphQLTypes["connection_arr_rel_insert_input"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + entities?: GraphQLTypes["entity_arr_rel_insert_input"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrations?: GraphQLTypes["integration_arr_rel_insert_input"] | undefined, + isActive?: boolean | undefined, + isTest?: boolean | undefined, + issues?: GraphQLTypes["issue_arr_rel_insert_input"] | undefined, + jobs?: GraphQLTypes["job_arr_rel_insert_input"] | undefined, + lines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, + members?: GraphQLTypes["teamUser_arr_rel_insert_input"] | undefined, + metrics?: GraphQLTypes["metric_arr_rel_insert_input"] | undefined, + name?: string | undefined, + payments?: GraphQLTypes["payment_arr_rel_insert_input"] | undefined, + stripeId?: string | undefined, + stripeSubscriptionItemId?: string | undefined, + supportEmail?: string | undefined, + supportPhone?: string | undefined, + tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, + units?: GraphQLTypes["unit_arr_rel_insert_input"] | undefined, + webhooks?: GraphQLTypes["webhook_arr_rel_insert_input"] | undefined, + website?: string | undefined }; /** aggregate max on columns */ ["team_max_fields"]: { __typename: "team_max_fields", - address?: string, - commissionPercentage?: GraphQLTypes["numeric"], - createdAt?: GraphQLTypes["timestamptz"], - email?: string, - id?: GraphQLTypes["uuid"], - name?: string, - stripeId?: string, - stripeSubscriptionItemId?: string, - supportEmail?: string, - supportPhone?: string, - website?: string + address?: string | undefined, + commissionPercentage?: GraphQLTypes["numeric"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + stripeId?: string | undefined, + stripeSubscriptionItemId?: string | undefined, + supportEmail?: string | undefined, + supportPhone?: string | undefined, + website?: string | undefined }; /** aggregate min on columns */ ["team_min_fields"]: { __typename: "team_min_fields", - address?: string, - commissionPercentage?: GraphQLTypes["numeric"], - createdAt?: GraphQLTypes["timestamptz"], - email?: string, - id?: GraphQLTypes["uuid"], - name?: string, - stripeId?: string, - stripeSubscriptionItemId?: string, - supportEmail?: string, - supportPhone?: string, - website?: string + address?: string | undefined, + commissionPercentage?: GraphQLTypes["numeric"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + stripeId?: string | undefined, + stripeSubscriptionItemId?: string | undefined, + supportEmail?: string | undefined, + supportPhone?: string | undefined, + website?: string | undefined }; /** response of any mutation on the table "team" */ ["team_mutation_response"]: { @@ -15071,48 +15071,48 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "team" */ ["team_obj_rel_insert_input"]: { data: GraphQLTypes["team_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["team_on_conflict"] + on_conflict?: GraphQLTypes["team_on_conflict"] | undefined }; /** on conflict condition type for table "team" */ ["team_on_conflict"]: { constraint: GraphQLTypes["team_constraint"], - update_columns: Array, - where?: GraphQLTypes["team_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["team_bool_exp"] | undefined }; /** Ordering options when selecting data from "team". */ ["team_order_by"]: { - address?: GraphQLTypes["order_by"], - bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"], - commissionPercentage?: GraphQLTypes["order_by"], - connections_aggregate?: GraphQLTypes["connection_aggregate_order_by"], - createdAt?: GraphQLTypes["order_by"], - email?: GraphQLTypes["order_by"], - entities_aggregate?: GraphQLTypes["entity_aggregate_order_by"], - id?: GraphQLTypes["order_by"], - integrations_aggregate?: GraphQLTypes["integration_aggregate_order_by"], - isActive?: GraphQLTypes["order_by"], - isTest?: GraphQLTypes["order_by"], - issues_aggregate?: GraphQLTypes["issue_aggregate_order_by"], - jobs_aggregate?: GraphQLTypes["job_aggregate_order_by"], - lines_aggregate?: GraphQLTypes["line_aggregate_order_by"], - members_aggregate?: GraphQLTypes["teamUser_aggregate_order_by"], - metrics_aggregate?: GraphQLTypes["metric_aggregate_order_by"], - name?: GraphQLTypes["order_by"], - payments_aggregate?: GraphQLTypes["payment_aggregate_order_by"], - stripeId?: GraphQLTypes["order_by"], - stripeSubscriptionItemId?: GraphQLTypes["order_by"], - supportEmail?: GraphQLTypes["order_by"], - supportPhone?: GraphQLTypes["order_by"], - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"], - units_aggregate?: GraphQLTypes["unit_aggregate_order_by"], - webhooks_aggregate?: GraphQLTypes["webhook_aggregate_order_by"], - website?: GraphQLTypes["order_by"] + address?: GraphQLTypes["order_by"] | undefined, + bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, + commissionPercentage?: GraphQLTypes["order_by"] | undefined, + connections_aggregate?: GraphQLTypes["connection_aggregate_order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + email?: GraphQLTypes["order_by"] | undefined, + entities_aggregate?: GraphQLTypes["entity_aggregate_order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + integrations_aggregate?: GraphQLTypes["integration_aggregate_order_by"] | undefined, + isActive?: GraphQLTypes["order_by"] | undefined, + isTest?: GraphQLTypes["order_by"] | undefined, + issues_aggregate?: GraphQLTypes["issue_aggregate_order_by"] | undefined, + jobs_aggregate?: GraphQLTypes["job_aggregate_order_by"] | undefined, + lines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, + members_aggregate?: GraphQLTypes["teamUser_aggregate_order_by"] | undefined, + metrics_aggregate?: GraphQLTypes["metric_aggregate_order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + payments_aggregate?: GraphQLTypes["payment_aggregate_order_by"] | undefined, + stripeId?: GraphQLTypes["order_by"] | undefined, + stripeSubscriptionItemId?: GraphQLTypes["order_by"] | undefined, + supportEmail?: GraphQLTypes["order_by"] | undefined, + supportPhone?: GraphQLTypes["order_by"] | undefined, + tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, + units_aggregate?: GraphQLTypes["unit_aggregate_order_by"] | undefined, + webhooks_aggregate?: GraphQLTypes["webhook_aggregate_order_by"] | undefined, + website?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: team */ ["team_pk_columns_input"]: { @@ -15122,67 +15122,67 @@ end). throws an error if top level container is not an array */ ["team_select_column"]: team_select_column; /** input type for updating data in table "team" */ ["team_set_input"]: { - address?: string, - commissionPercentage?: GraphQLTypes["numeric"], - createdAt?: GraphQLTypes["timestamptz"], - email?: string, - id?: GraphQLTypes["uuid"], - isActive?: boolean, - isTest?: boolean, - name?: string, - stripeId?: string, - stripeSubscriptionItemId?: string, - supportEmail?: string, - supportPhone?: string, - website?: string + address?: string | undefined, + commissionPercentage?: GraphQLTypes["numeric"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + isActive?: boolean | undefined, + isTest?: boolean | undefined, + name?: string | undefined, + stripeId?: string | undefined, + stripeSubscriptionItemId?: string | undefined, + supportEmail?: string | undefined, + supportPhone?: string | undefined, + website?: string | undefined }; /** aggregate stddev on columns */ ["team_stddev_fields"]: { __typename: "team_stddev_fields", - commissionPercentage?: number + commissionPercentage?: number | undefined }; /** aggregate stddev_pop on columns */ ["team_stddev_pop_fields"]: { __typename: "team_stddev_pop_fields", - commissionPercentage?: number + commissionPercentage?: number | undefined }; /** aggregate stddev_samp on columns */ ["team_stddev_samp_fields"]: { __typename: "team_stddev_samp_fields", - commissionPercentage?: number + commissionPercentage?: number | undefined }; /** aggregate sum on columns */ ["team_sum_fields"]: { __typename: "team_sum_fields", - commissionPercentage?: GraphQLTypes["numeric"] + commissionPercentage?: GraphQLTypes["numeric"] | undefined }; /** update columns of table "team" */ ["team_update_column"]: team_update_column; /** aggregate var_pop on columns */ ["team_var_pop_fields"]: { __typename: "team_var_pop_fields", - commissionPercentage?: number + commissionPercentage?: number | undefined }; /** aggregate var_samp on columns */ ["team_var_samp_fields"]: { __typename: "team_var_samp_fields", - commissionPercentage?: number + commissionPercentage?: number | undefined }; /** aggregate variance on columns */ ["team_variance_fields"]: { __typename: "team_variance_fields", - commissionPercentage?: number + commissionPercentage?: number | undefined }; /** columns and relationships of "team_user" */ ["teamUser"]: { __typename: "teamUser", - createdAt?: GraphQLTypes["timestamptz"], + createdAt?: GraphQLTypes["timestamptz"] | undefined, id: GraphQLTypes["uuid"], - role?: string, + role?: string | undefined, /** An object relationship */ team: GraphQLTypes["team"], teamId: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"], + updatedAt?: GraphQLTypes["timestamptz"] | undefined, /** An object relationship */ user: GraphQLTypes["user"], userId: GraphQLTypes["uuid"] @@ -15190,92 +15190,92 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "team_user" */ ["teamUser_aggregate"]: { __typename: "teamUser_aggregate", - aggregate?: GraphQLTypes["teamUser_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["teamUser_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "team_user" */ ["teamUser_aggregate_fields"]: { __typename: "teamUser_aggregate_fields", count: number, - max?: GraphQLTypes["teamUser_max_fields"], - min?: GraphQLTypes["teamUser_min_fields"] + max?: GraphQLTypes["teamUser_max_fields"] | undefined, + min?: GraphQLTypes["teamUser_min_fields"] | undefined }; /** order by aggregate values of table "team_user" */ ["teamUser_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["teamUser_max_order_by"], - min?: GraphQLTypes["teamUser_min_order_by"] + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["teamUser_max_order_by"] | undefined, + min?: GraphQLTypes["teamUser_min_order_by"] | undefined }; /** input type for inserting array relation for remote table "team_user" */ ["teamUser_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["teamUser_on_conflict"] + on_conflict?: GraphQLTypes["teamUser_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "team_user". All fields are combined with a logical 'AND'. */ ["teamUser_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["teamUser_bool_exp"], + _not?: GraphQLTypes["teamUser_bool_exp"] | undefined, _or?: Array, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - role?: GraphQLTypes["String_comparison_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"], - user?: GraphQLTypes["user_bool_exp"], - userId?: GraphQLTypes["uuid_comparison_exp"] + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + role?: GraphQLTypes["String_comparison_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + user?: GraphQLTypes["user_bool_exp"] | undefined, + userId?: GraphQLTypes["uuid_comparison_exp"] | undefined }; /** unique or primary key constraints on table "team_user" */ ["teamUser_constraint"]: teamUser_constraint; /** input type for inserting data into table "team_user" */ ["teamUser_insert_input"]: { - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - role?: string, - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"], - user?: GraphQLTypes["user_obj_rel_insert_input"], - userId?: GraphQLTypes["uuid"] + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + role?: string | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + user?: GraphQLTypes["user_obj_rel_insert_input"] | undefined, + userId?: GraphQLTypes["uuid"] | undefined }; /** aggregate max on columns */ ["teamUser_max_fields"]: { __typename: "teamUser_max_fields", - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - role?: string, - teamId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"], - userId?: GraphQLTypes["uuid"] + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + role?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + userId?: GraphQLTypes["uuid"] | undefined }; /** order by max() on columns of table "team_user" */ ["teamUser_max_order_by"]: { - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - role?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"], - userId?: GraphQLTypes["order_by"] + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + role?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined, + userId?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["teamUser_min_fields"]: { __typename: "teamUser_min_fields", - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - role?: string, - teamId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"], - userId?: GraphQLTypes["uuid"] + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + role?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + userId?: GraphQLTypes["uuid"] | undefined }; /** order by min() on columns of table "team_user" */ ["teamUser_min_order_by"]: { - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - role?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"], - userId?: GraphQLTypes["order_by"] + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + role?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined, + userId?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "team_user" */ ["teamUser_mutation_response"]: { @@ -15283,24 +15283,24 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "team_user" */ ["teamUser_on_conflict"]: { constraint: GraphQLTypes["teamUser_constraint"], - update_columns: Array, - where?: GraphQLTypes["teamUser_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["teamUser_bool_exp"] | undefined }; /** Ordering options when selecting data from "team_user". */ ["teamUser_order_by"]: { - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - role?: GraphQLTypes["order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"], - user?: GraphQLTypes["user_order_by"], - userId?: GraphQLTypes["order_by"] + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + role?: GraphQLTypes["order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined, + user?: GraphQLTypes["user_order_by"] | undefined, + userId?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: teamUser */ ["teamUser_pk_columns_input"]: { @@ -15310,105 +15310,105 @@ end). throws an error if top level container is not an array */ ["teamUser_select_column"]: teamUser_select_column; /** input type for updating data in table "team_user" */ ["teamUser_set_input"]: { - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - role?: string, - teamId?: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"], - userId?: GraphQLTypes["uuid"] + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + role?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + userId?: GraphQLTypes["uuid"] | undefined }; /** update columns of table "team_user" */ ["teamUser_update_column"]: teamUser_update_column; ["timestamptz"]:any; /** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ ["timestamptz_comparison_exp"]: { - _eq?: GraphQLTypes["timestamptz"], - _gt?: GraphQLTypes["timestamptz"], - _gte?: GraphQLTypes["timestamptz"], + _eq?: GraphQLTypes["timestamptz"] | undefined, + _gt?: GraphQLTypes["timestamptz"] | undefined, + _gte?: GraphQLTypes["timestamptz"] | undefined, _in?: Array, - _is_null?: boolean, - _lt?: GraphQLTypes["timestamptz"], - _lte?: GraphQLTypes["timestamptz"], - _neq?: GraphQLTypes["timestamptz"], + _is_null?: boolean | undefined, + _lt?: GraphQLTypes["timestamptz"] | undefined, + _lte?: GraphQLTypes["timestamptz"] | undefined, + _neq?: GraphQLTypes["timestamptz"] | undefined, _nin?: Array }; /** columns and relationships of "unit" */ ["unit"]: { __typename: "unit", /** An array relationship */ - bookings: Array, + bookings: Array | undefined, /** An aggregate relationship */ bookings_aggregate: GraphQLTypes["booking_aggregate"], /** An object relationship */ - connection?: GraphQLTypes["connection"], - connectionId?: GraphQLTypes["uuid"], + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, createdAt: GraphQLTypes["timestamptz"], /** An object relationship */ - entity?: GraphQLTypes["entity"], - entityId?: GraphQLTypes["uuid"], + entity?: GraphQLTypes["entity"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, id: GraphQLTypes["uuid"], - metadata?: GraphQLTypes["jsonb"], - name?: string, - status?: string, + metadata?: GraphQLTypes["jsonb"] | undefined, + name?: string | undefined, + status?: string | undefined, /** An array relationship */ - tags: Array, + tags: Array | undefined, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ - team?: GraphQLTypes["team"], - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, updatedAt: GraphQLTypes["timestamptz"] }; /** aggregated selection of "unit" */ ["unit_aggregate"]: { __typename: "unit_aggregate", - aggregate?: GraphQLTypes["unit_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["unit_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "unit" */ ["unit_aggregate_fields"]: { __typename: "unit_aggregate_fields", count: number, - max?: GraphQLTypes["unit_max_fields"], - min?: GraphQLTypes["unit_min_fields"] + max?: GraphQLTypes["unit_max_fields"] | undefined, + min?: GraphQLTypes["unit_min_fields"] | undefined }; /** order by aggregate values of table "unit" */ ["unit_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["unit_max_order_by"], - min?: GraphQLTypes["unit_min_order_by"] + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["unit_max_order_by"] | undefined, + min?: GraphQLTypes["unit_min_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["unit_append_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "unit" */ ["unit_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["unit_on_conflict"] + on_conflict?: GraphQLTypes["unit_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "unit". All fields are combined with a logical 'AND'. */ ["unit_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["unit_bool_exp"], + _not?: GraphQLTypes["unit_bool_exp"] | undefined, _or?: Array, - bookings?: GraphQLTypes["booking_bool_exp"], - connection?: GraphQLTypes["connection_bool_exp"], - connectionId?: GraphQLTypes["uuid_comparison_exp"], - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - entity?: GraphQLTypes["entity_bool_exp"], - entityId?: GraphQLTypes["uuid_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - metadata?: GraphQLTypes["jsonb_comparison_exp"], - name?: GraphQLTypes["String_comparison_exp"], - status?: GraphQLTypes["String_comparison_exp"], - tags?: GraphQLTypes["tag_bool_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - uniqueRef?: GraphQLTypes["String_comparison_exp"], - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] + bookings?: GraphQLTypes["booking_bool_exp"] | undefined, + connection?: GraphQLTypes["connection_bool_exp"] | undefined, + connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + entity?: GraphQLTypes["entity_bool_exp"] | undefined, + entityId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + name?: GraphQLTypes["String_comparison_exp"] | undefined, + status?: GraphQLTypes["String_comparison_exp"] | undefined, + tags?: GraphQLTypes["tag_bool_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, + updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined }; /** unique or primary key constraints on table "unit" */ ["unit_constraint"]: unit_constraint; @@ -15419,79 +15419,79 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["unit_delete_elem_input"]: { - metadata?: number + metadata?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["unit_delete_key_input"]: { - metadata?: string + metadata?: string | undefined }; /** input type for inserting data into table "unit" */ ["unit_insert_input"]: { - bookings?: GraphQLTypes["booking_arr_rel_insert_input"], - connection?: GraphQLTypes["connection_obj_rel_insert_input"], - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - entity?: GraphQLTypes["entity_obj_rel_insert_input"], - entityId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - metadata?: GraphQLTypes["jsonb"], - name?: string, - status?: string, - tags?: GraphQLTypes["tag_arr_rel_insert_input"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + bookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, + connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entity?: GraphQLTypes["entity_obj_rel_insert_input"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + name?: string | undefined, + status?: string | undefined, + tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate max on columns */ ["unit_max_fields"]: { __typename: "unit_max_fields", - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - entityId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - name?: string, - status?: string, - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "unit" */ ["unit_max_order_by"]: { - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - entityId?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - name?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + entityId?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["unit_min_fields"]: { __typename: "unit_min_fields", - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - entityId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - name?: string, - status?: string, - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "unit" */ ["unit_min_order_by"]: { - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - entityId?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - name?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + entityId?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "unit" */ ["unit_mutation_response"]: { @@ -15499,37 +15499,37 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "unit" */ ["unit_obj_rel_insert_input"]: { data: GraphQLTypes["unit_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["unit_on_conflict"] + on_conflict?: GraphQLTypes["unit_on_conflict"] | undefined }; /** on conflict condition type for table "unit" */ ["unit_on_conflict"]: { constraint: GraphQLTypes["unit_constraint"], - update_columns: Array, - where?: GraphQLTypes["unit_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["unit_bool_exp"] | undefined }; /** Ordering options when selecting data from "unit". */ ["unit_order_by"]: { - bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"], - connection?: GraphQLTypes["connection_order_by"], - connectionId?: GraphQLTypes["order_by"], - createdAt?: GraphQLTypes["order_by"], - entity?: GraphQLTypes["entity_order_by"], - entityId?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - metadata?: GraphQLTypes["order_by"], - name?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - uniqueRef?: GraphQLTypes["order_by"], - updatedAt?: GraphQLTypes["order_by"] + bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, + connection?: GraphQLTypes["connection_order_by"] | undefined, + connectionId?: GraphQLTypes["order_by"] | undefined, + createdAt?: GraphQLTypes["order_by"] | undefined, + entity?: GraphQLTypes["entity_order_by"] | undefined, + entityId?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + metadata?: GraphQLTypes["order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + uniqueRef?: GraphQLTypes["order_by"] | undefined, + updatedAt?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: unit */ ["unit_pk_columns_input"]: { @@ -15537,102 +15537,102 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["unit_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] + metadata?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "unit" */ ["unit_select_column"]: unit_select_column; /** input type for updating data in table "unit" */ ["unit_set_input"]: { - connectionId?: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"], - entityId?: GraphQLTypes["uuid"], - id?: GraphQLTypes["uuid"], - metadata?: GraphQLTypes["jsonb"], - name?: string, - status?: string, - teamId?: GraphQLTypes["uuid"], - uniqueRef?: string, - updatedAt?: GraphQLTypes["timestamptz"] + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + name?: string | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** update columns of table "unit" */ ["unit_update_column"]: unit_update_column; /** columns and relationships of "user" */ ["user"]: { __typename: "user", - createdAt?: GraphQLTypes["timestamptz"], + createdAt?: GraphQLTypes["timestamptz"] | undefined, email: string, id: GraphQLTypes["uuid"], isAdmin: boolean, /** An array relationship */ - memberships: Array, + memberships: Array | undefined, /** An aggregate relationship */ memberships_aggregate: GraphQLTypes["teamUser_aggregate"], - name?: string, - status?: GraphQLTypes["user_status_enum"], - sub?: string, - trialExpiryAt?: GraphQLTypes["timestamptz"] + name?: string | undefined, + status?: GraphQLTypes["user_status_enum"] | undefined, + sub?: string | undefined, + trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "user" */ ["user_aggregate"]: { __typename: "user_aggregate", - aggregate?: GraphQLTypes["user_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["user_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "user" */ ["user_aggregate_fields"]: { __typename: "user_aggregate_fields", count: number, - max?: GraphQLTypes["user_max_fields"], - min?: GraphQLTypes["user_min_fields"] + max?: GraphQLTypes["user_max_fields"] | undefined, + min?: GraphQLTypes["user_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "user". All fields are combined with a logical 'AND'. */ ["user_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["user_bool_exp"], + _not?: GraphQLTypes["user_bool_exp"] | undefined, _or?: Array, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - email?: GraphQLTypes["String_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - isAdmin?: GraphQLTypes["Boolean_comparison_exp"], - memberships?: GraphQLTypes["teamUser_bool_exp"], - name?: GraphQLTypes["String_comparison_exp"], - status?: GraphQLTypes["user_status_enum_comparison_exp"], - sub?: GraphQLTypes["String_comparison_exp"], - trialExpiryAt?: GraphQLTypes["timestamptz_comparison_exp"] + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + email?: GraphQLTypes["String_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + isAdmin?: GraphQLTypes["Boolean_comparison_exp"] | undefined, + memberships?: GraphQLTypes["teamUser_bool_exp"] | undefined, + name?: GraphQLTypes["String_comparison_exp"] | undefined, + status?: GraphQLTypes["user_status_enum_comparison_exp"] | undefined, + sub?: GraphQLTypes["String_comparison_exp"] | undefined, + trialExpiryAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined }; /** unique or primary key constraints on table "user" */ ["user_constraint"]: user_constraint; /** input type for inserting data into table "user" */ ["user_insert_input"]: { - createdAt?: GraphQLTypes["timestamptz"], - email?: string, - id?: GraphQLTypes["uuid"], - isAdmin?: boolean, - memberships?: GraphQLTypes["teamUser_arr_rel_insert_input"], - name?: string, - status?: GraphQLTypes["user_status_enum"], - sub?: string, - trialExpiryAt?: GraphQLTypes["timestamptz"] + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + isAdmin?: boolean | undefined, + memberships?: GraphQLTypes["teamUser_arr_rel_insert_input"] | undefined, + name?: string | undefined, + status?: GraphQLTypes["user_status_enum"] | undefined, + sub?: string | undefined, + trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate max on columns */ ["user_max_fields"]: { __typename: "user_max_fields", - createdAt?: GraphQLTypes["timestamptz"], - email?: string, - id?: GraphQLTypes["uuid"], - name?: string, - sub?: string, - trialExpiryAt?: GraphQLTypes["timestamptz"] + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + sub?: string | undefined, + trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate min on columns */ ["user_min_fields"]: { __typename: "user_min_fields", - createdAt?: GraphQLTypes["timestamptz"], - email?: string, - id?: GraphQLTypes["uuid"], - name?: string, - sub?: string, - trialExpiryAt?: GraphQLTypes["timestamptz"] + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + sub?: string | undefined, + trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined }; /** response of any mutation on the table "user" */ ["user_mutation_response"]: { @@ -15640,31 +15640,31 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** input type for inserting object relation for remote table "user" */ ["user_obj_rel_insert_input"]: { data: GraphQLTypes["user_insert_input"], /** on conflict condition */ - on_conflict?: GraphQLTypes["user_on_conflict"] + on_conflict?: GraphQLTypes["user_on_conflict"] | undefined }; /** on conflict condition type for table "user" */ ["user_on_conflict"]: { constraint: GraphQLTypes["user_constraint"], - update_columns: Array, - where?: GraphQLTypes["user_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["user_bool_exp"] | undefined }; /** Ordering options when selecting data from "user". */ ["user_order_by"]: { - createdAt?: GraphQLTypes["order_by"], - email?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - isAdmin?: GraphQLTypes["order_by"], - memberships_aggregate?: GraphQLTypes["teamUser_aggregate_order_by"], - name?: GraphQLTypes["order_by"], - status?: GraphQLTypes["order_by"], - sub?: GraphQLTypes["order_by"], - trialExpiryAt?: GraphQLTypes["order_by"] + createdAt?: GraphQLTypes["order_by"] | undefined, + email?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + isAdmin?: GraphQLTypes["order_by"] | undefined, + memberships_aggregate?: GraphQLTypes["teamUser_aggregate_order_by"] | undefined, + name?: GraphQLTypes["order_by"] | undefined, + status?: GraphQLTypes["order_by"] | undefined, + sub?: GraphQLTypes["order_by"] | undefined, + trialExpiryAt?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: user */ ["user_pk_columns_input"]: { @@ -15674,22 +15674,22 @@ end). throws an error if top level container is not an array */ ["user_select_column"]: user_select_column; /** input type for updating data in table "user" */ ["user_set_input"]: { - createdAt?: GraphQLTypes["timestamptz"], - email?: string, - id?: GraphQLTypes["uuid"], - isAdmin?: boolean, - name?: string, - status?: GraphQLTypes["user_status_enum"], - sub?: string, - trialExpiryAt?: GraphQLTypes["timestamptz"] + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + isAdmin?: boolean | undefined, + name?: string | undefined, + status?: GraphQLTypes["user_status_enum"] | undefined, + sub?: string | undefined, + trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined }; ["user_status_enum"]: user_status_enum; /** Boolean expression to compare columns of type "user_status_enum". All fields are combined with logical 'AND'. */ ["user_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["user_status_enum"], + _eq?: GraphQLTypes["user_status_enum"] | undefined, _in?: Array, - _is_null?: boolean, - _neq?: GraphQLTypes["user_status_enum"], + _is_null?: boolean | undefined, + _neq?: GraphQLTypes["user_status_enum"] | undefined, _nin?: Array }; /** update columns of table "user" */ @@ -15702,38 +15702,38 @@ end). throws an error if top level container is not an array */ /** aggregated selection of "user_status" */ ["userStatus_aggregate"]: { __typename: "userStatus_aggregate", - aggregate?: GraphQLTypes["userStatus_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["userStatus_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "user_status" */ ["userStatus_aggregate_fields"]: { __typename: "userStatus_aggregate_fields", count: number, - max?: GraphQLTypes["userStatus_max_fields"], - min?: GraphQLTypes["userStatus_min_fields"] + max?: GraphQLTypes["userStatus_max_fields"] | undefined, + min?: GraphQLTypes["userStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "user_status". All fields are combined with a logical 'AND'. */ ["userStatus_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["userStatus_bool_exp"], + _not?: GraphQLTypes["userStatus_bool_exp"] | undefined, _or?: Array, - name?: GraphQLTypes["String_comparison_exp"] + name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "user_status" */ ["userStatus_constraint"]: userStatus_constraint; /** input type for inserting data into table "user_status" */ ["userStatus_insert_input"]: { - name?: string + name?: string | undefined }; /** aggregate max on columns */ ["userStatus_max_fields"]: { __typename: "userStatus_max_fields", - name?: string + name?: string | undefined }; /** aggregate min on columns */ ["userStatus_min_fields"]: { __typename: "userStatus_min_fields", - name?: string + name?: string | undefined }; /** response of any mutation on the table "user_status" */ ["userStatus_mutation_response"]: { @@ -15741,17 +15741,17 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "user_status" */ ["userStatus_on_conflict"]: { constraint: GraphQLTypes["userStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["userStatus_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["userStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "user_status". */ ["userStatus_order_by"]: { - name?: GraphQLTypes["order_by"] + name?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: userStatus */ ["userStatus_pk_columns_input"]: { @@ -15761,79 +15761,79 @@ end). throws an error if top level container is not an array */ ["userStatus_select_column"]: userStatus_select_column; /** input type for updating data in table "user_status" */ ["userStatus_set_input"]: { - name?: string + name?: string | undefined }; /** update columns of table "user_status" */ ["userStatus_update_column"]: userStatus_update_column; ["uuid"]:any; /** Boolean expression to compare columns of type "uuid". All fields are combined with logical 'AND'. */ ["uuid_comparison_exp"]: { - _eq?: GraphQLTypes["uuid"], - _gt?: GraphQLTypes["uuid"], - _gte?: GraphQLTypes["uuid"], + _eq?: GraphQLTypes["uuid"] | undefined, + _gt?: GraphQLTypes["uuid"] | undefined, + _gte?: GraphQLTypes["uuid"] | undefined, _in?: Array, - _is_null?: boolean, - _lt?: GraphQLTypes["uuid"], - _lte?: GraphQLTypes["uuid"], - _neq?: GraphQLTypes["uuid"], + _is_null?: boolean | undefined, + _lt?: GraphQLTypes["uuid"] | undefined, + _lte?: GraphQLTypes["uuid"] | undefined, + _neq?: GraphQLTypes["uuid"] | undefined, _nin?: Array }; /** columns and relationships of "webhook" */ ["webhook"]: { __typename: "webhook", createdAt: GraphQLTypes["timestamptz"], - headers?: GraphQLTypes["jsonb"], + headers?: GraphQLTypes["jsonb"] | undefined, id: GraphQLTypes["uuid"], /** An object relationship */ team: GraphQLTypes["team"], teamId: GraphQLTypes["uuid"], types: GraphQLTypes["jsonb"], - types2?: GraphQLTypes["_text"], + types2?: GraphQLTypes["_text"] | undefined, url: string }; /** aggregated selection of "webhook" */ ["webhook_aggregate"]: { __typename: "webhook_aggregate", - aggregate?: GraphQLTypes["webhook_aggregate_fields"], - nodes: Array + aggregate?: GraphQLTypes["webhook_aggregate_fields"] | undefined, + nodes: Array | undefined }; /** aggregate fields of "webhook" */ ["webhook_aggregate_fields"]: { __typename: "webhook_aggregate_fields", count: number, - max?: GraphQLTypes["webhook_max_fields"], - min?: GraphQLTypes["webhook_min_fields"] + max?: GraphQLTypes["webhook_max_fields"] | undefined, + min?: GraphQLTypes["webhook_min_fields"] | undefined }; /** order by aggregate values of table "webhook" */ ["webhook_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"], - max?: GraphQLTypes["webhook_max_order_by"], - min?: GraphQLTypes["webhook_min_order_by"] + count?: GraphQLTypes["order_by"] | undefined, + max?: GraphQLTypes["webhook_max_order_by"] | undefined, + min?: GraphQLTypes["webhook_min_order_by"] | undefined }; /** append existing jsonb value of filtered columns with new jsonb value */ ["webhook_append_input"]: { - headers?: GraphQLTypes["jsonb"], - types?: GraphQLTypes["jsonb"] + headers?: GraphQLTypes["jsonb"] | undefined, + types?: GraphQLTypes["jsonb"] | undefined }; /** input type for inserting array relation for remote table "webhook" */ ["webhook_arr_rel_insert_input"]: { - data: Array, + data: Array | undefined, /** on conflict condition */ - on_conflict?: GraphQLTypes["webhook_on_conflict"] + on_conflict?: GraphQLTypes["webhook_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "webhook". All fields are combined with a logical 'AND'. */ ["webhook_bool_exp"]: { _and?: Array, - _not?: GraphQLTypes["webhook_bool_exp"], + _not?: GraphQLTypes["webhook_bool_exp"] | undefined, _or?: Array, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"], - headers?: GraphQLTypes["jsonb_comparison_exp"], - id?: GraphQLTypes["uuid_comparison_exp"], - team?: GraphQLTypes["team_bool_exp"], - teamId?: GraphQLTypes["uuid_comparison_exp"], - types?: GraphQLTypes["jsonb_comparison_exp"], - types2?: GraphQLTypes["_text_comparison_exp"], - url?: GraphQLTypes["String_comparison_exp"] + createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, + headers?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + id?: GraphQLTypes["uuid_comparison_exp"] | undefined, + team?: GraphQLTypes["team_bool_exp"] | undefined, + teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, + types?: GraphQLTypes["jsonb_comparison_exp"] | undefined, + types2?: GraphQLTypes["_text_comparison_exp"] | undefined, + url?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "webhook" */ ["webhook_constraint"]: webhook_constraint; @@ -15845,54 +15845,54 @@ end). throws an error if top level container is not an array */ /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ ["webhook_delete_elem_input"]: { - headers?: number, - types?: number + headers?: number | undefined, + types?: number | undefined }; /** delete key/value pair or string element. key/value pairs are matched based on their key value */ ["webhook_delete_key_input"]: { - headers?: string, - types?: string + headers?: string | undefined, + types?: string | undefined }; /** input type for inserting data into table "webhook" */ ["webhook_insert_input"]: { - createdAt?: GraphQLTypes["timestamptz"], - headers?: GraphQLTypes["jsonb"], - id?: GraphQLTypes["uuid"], - team?: GraphQLTypes["team_obj_rel_insert_input"], - teamId?: GraphQLTypes["uuid"], - types?: GraphQLTypes["jsonb"], - types2?: GraphQLTypes["_text"], - url?: string + createdAt?: GraphQLTypes["timestamptz"] | undefined, + headers?: GraphQLTypes["jsonb"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + types?: GraphQLTypes["jsonb"] | undefined, + types2?: GraphQLTypes["_text"] | undefined, + url?: string | undefined }; /** aggregate max on columns */ ["webhook_max_fields"]: { __typename: "webhook_max_fields", - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - url?: string + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + url?: string | undefined }; /** order by max() on columns of table "webhook" */ ["webhook_max_order_by"]: { - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - url?: GraphQLTypes["order_by"] + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + url?: GraphQLTypes["order_by"] | undefined }; /** aggregate min on columns */ ["webhook_min_fields"]: { __typename: "webhook_min_fields", - createdAt?: GraphQLTypes["timestamptz"], - id?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - url?: string + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + url?: string | undefined }; /** order by min() on columns of table "webhook" */ ["webhook_min_order_by"]: { - createdAt?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - teamId?: GraphQLTypes["order_by"], - url?: GraphQLTypes["order_by"] + createdAt?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + url?: GraphQLTypes["order_by"] | undefined }; /** response of any mutation on the table "webhook" */ ["webhook_mutation_response"]: { @@ -15900,24 +15900,24 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array + returning: Array | undefined }; /** on conflict condition type for table "webhook" */ ["webhook_on_conflict"]: { constraint: GraphQLTypes["webhook_constraint"], - update_columns: Array, - where?: GraphQLTypes["webhook_bool_exp"] + update_columns: Array | undefined, + where?: GraphQLTypes["webhook_bool_exp"] | undefined }; /** Ordering options when selecting data from "webhook". */ ["webhook_order_by"]: { - createdAt?: GraphQLTypes["order_by"], - headers?: GraphQLTypes["order_by"], - id?: GraphQLTypes["order_by"], - team?: GraphQLTypes["team_order_by"], - teamId?: GraphQLTypes["order_by"], - types?: GraphQLTypes["order_by"], - types2?: GraphQLTypes["order_by"], - url?: GraphQLTypes["order_by"] + createdAt?: GraphQLTypes["order_by"] | undefined, + headers?: GraphQLTypes["order_by"] | undefined, + id?: GraphQLTypes["order_by"] | undefined, + team?: GraphQLTypes["team_order_by"] | undefined, + teamId?: GraphQLTypes["order_by"] | undefined, + types?: GraphQLTypes["order_by"] | undefined, + types2?: GraphQLTypes["order_by"] | undefined, + url?: GraphQLTypes["order_by"] | undefined }; /** primary key columns input for table: webhook */ ["webhook_pk_columns_input"]: { @@ -15925,20 +15925,20 @@ end). throws an error if top level container is not an array */ }; /** prepend existing jsonb value of filtered columns with new jsonb value */ ["webhook_prepend_input"]: { - headers?: GraphQLTypes["jsonb"], - types?: GraphQLTypes["jsonb"] + headers?: GraphQLTypes["jsonb"] | undefined, + types?: GraphQLTypes["jsonb"] | undefined }; /** select columns of table "webhook" */ ["webhook_select_column"]: webhook_select_column; /** input type for updating data in table "webhook" */ ["webhook_set_input"]: { - createdAt?: GraphQLTypes["timestamptz"], - headers?: GraphQLTypes["jsonb"], - id?: GraphQLTypes["uuid"], - teamId?: GraphQLTypes["uuid"], - types?: GraphQLTypes["jsonb"], - types2?: GraphQLTypes["_text"], - url?: string + createdAt?: GraphQLTypes["timestamptz"] | undefined, + headers?: GraphQLTypes["jsonb"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + types?: GraphQLTypes["jsonb"] | undefined, + types2?: GraphQLTypes["_text"] | undefined, + url?: string | undefined }; /** update columns of table "webhook" */ ["webhook_update_column"]: webhook_update_column diff --git a/examples/typescript-node-big-schema/src/zeus/reactQuery.ts b/examples/typescript-node-big-schema/src/zeus/reactQuery.ts index 3667dfb4..e0791df5 100644 --- a/examples/typescript-node-big-schema/src/zeus/reactQuery.ts +++ b/examples/typescript-node-big-schema/src/zeus/reactQuery.ts @@ -6,7 +6,7 @@ import type { UseMutationOptions, UseQueryOptions } from 'react-query'; export function useTypedMutation>( - mutationKey: string, + mutationKey: string | unknown[], mutation: TData | ValueTypes[O], options?: Omit, 'mutationKey' | 'mutationFn'>, zeusOptions?: OperationOptions, @@ -16,7 +16,7 @@ export function useTypedMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } export function useTypedQuery>( - queryKey: string, + queryKey: string | unknown[], query: TData | ValueTypes[O], options?: Omit, 'queryKey' | 'queryFn'>, zeusOptions?: OperationOptions, diff --git a/examples/typescript-node/package.json b/examples/typescript-node/package.json index 13799ec0..ecd32670 100644 --- a/examples/typescript-node/package.json +++ b/examples/typescript-node/package.json @@ -10,7 +10,7 @@ "license": "ISC", "devDependencies": { "ts-node": "^8.3.0", - "typescript": "3.8.3" + "typescript": "^4.5.5" }, "dependencies": { "@apollo/client": "^3.4.16", diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index c3e4f939..199763f1 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,17 +1,10 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes } from './index'; -import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client'; -import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; +import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationName?: string, -) { - return useMutation>(gql(Zeus("mutation",mutation, operationName)), options); -} export function useTypedSubscription( subscription: Z | ValueTypes[O], options?: SubscriptionHookOptions>, @@ -19,6 +12,13 @@ export function useTypedSubscription>(gql(Zeus("subscription",subscription, operationName)), options); } +export function useTypedMutation( + mutation: Z | ValueTypes[O], + options?: MutationHookOptions>, + operationName?: string, +) { + return useMutation>(gql(Zeus("mutation",mutation, operationName)), options); +} export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index a354c72d..99b88485 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,130 +1,102 @@ /* eslint-disable */ +export const AllTypesProps = { + Card: { + attack: { + cardID: { + type: '[String!]!', + }, + }, + }, + Mutation: { + addCard: { + card: { + type: 'createCard!', + }, + }, + }, + Query: { + cardById: { + cardId: { + type: 'String', + }, + }, + }, + createCard: { + skills: { + type: '[SpecialSkills]!', + }, + name: { + type: 'String!', + }, + description: { + type: 'String!', + }, + Children: { + type: 'Int', + }, + Attack: { + type: 'Int!', + }, + Defense: { + type: 'Int!', + }, + }, + SpecialSkills: 'enum', +} as const; -export const AllTypesProps: Record = { - Card:{ - attack:{ - cardID:{ - type:"String", - array:true, - arrayRequired:true, - required:true - } - } - }, - SpecialSkills: "enum", - Mutation:{ - addCard:{ - card:{ - type:"createCard", - array:false, - arrayRequired:false, - required:true - } - } - }, - createCard:{ - Defense:{ - type:"Int", - array:false, - arrayRequired:false, - required:true - }, - skills:{ - type:"SpecialSkills", - array:true, - arrayRequired:false, - required:true - }, - name:{ - type:"String", - array:false, - arrayRequired:false, - required:true - }, - description:{ - type:"String", - array:false, - arrayRequired:false, - required:true - }, - Children:{ - type:"Int", - array:false, - arrayRequired:false, - required:false - }, - Attack:{ - type:"Int", - array:false, - arrayRequired:false, - required:true - } - }, - Query:{ - cardById:{ - cardId:{ - type:"String", - array:false, - arrayRequired:false, - required:false - } - } - } -} - -export const ReturnTypes: Record = { - Card:{ - Attack:"Int", - Children:"Int", - Defense:"Int", - attack:"Card", - cardImage:"S3Object", - description:"String", - id:"ID", - image:"String", - name:"String", - skills:"SpecialSkills" - }, - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, - SpecialCard:{ - effect:"String", - name:"String" - }, - Mutation:{ - addCard:"Card" - }, - Nameable:{ - "...on Card": "Card", - "...on SpecialCard": "SpecialCard", - "...on CardStack": "CardStack", - "...on EffectCard": "EffectCard", - name:"String" - }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, - Subscription:{ - deck:"Card" - }, - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" - }, - CardStack:{ - cards:"Card", - name:"String" - }, - EffectCard:{ - effectSize:"Float", - name:"String" - } -} \ No newline at end of file +export const ReturnTypes: Record = { + S3Object: { + bucket: 'String', + key: 'String', + region: 'String', + }, + Subscription: { + deck: 'Card', + }, + Card: { + Attack: 'Int', + Children: 'Int', + Defense: 'Int', + attack: 'Card', + cardImage: 'S3Object', + description: 'String', + id: 'ID', + image: 'String', + name: 'String', + skills: 'SpecialSkills', + }, + Nameable: { + '...on Card': 'Card', + '...on SpecialCard': 'SpecialCard', + '...on EffectCard': 'EffectCard', + '...on CardStack': 'CardStack', + name: 'String', + }, + SpecialCard: { + effect: 'String', + name: 'String', + }, + EffectCard: { + effectSize: 'Float', + name: 'String', + }, + Mutation: { + addCard: 'Card', + }, + Query: { + cardById: 'Card', + drawCard: 'Card', + drawChangeCard: 'ChangeCard', + listCards: 'Card', + myStacks: 'CardStack', + nameables: 'Nameable', + }, + CardStack: { + cards: 'Card', + name: 'String', + }, + ChangeCard: { + '...on SpecialCard': 'SpecialCard', + '...on EffectCard': 'EffectCard', + }, +}; diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 3a195547..d2556cac 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -1,286 +1,292 @@ /* eslint-disable */ import { AllTypesProps, ReturnTypes } from './const'; -type ZEUS_INTERFACES = GraphQLTypes["Nameable"] -type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] +type ZEUS_INTERFACES = GraphQLTypes['Nameable']; +type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; + +type DictArrayFunction = [Record, Dict]; +type DictValue = boolean | DictArrayFunction | Dict; +type Dict = { + [x: string]: AliasType; +}; export type ValueTypes = { - /** Card used in card game
*/ -["Card"]: AliasType<{ - /** The attack power
*/ - Attack?:boolean, - /**
How many children the greek god had
*/ - Children?:boolean, - /** The defense power
*/ - Defense?:boolean, -attack?: [{ /** Attacked card/card ids
*/ - cardID:string[]},ValueTypes["Card"]], - /** Put your description here */ - cardImage?:ValueTypes["S3Object"], - /** Description of a card
*/ - description?:boolean, - id?:boolean, - image?:boolean, - /** The name of a card
*/ - name?:boolean, - skills?:boolean, - __typename?: boolean -}>; - ["SpecialSkills"]:SpecialSkills; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean, - key?:boolean, - region?:boolean, - __typename?: boolean -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean, - name?:boolean, - __typename?: boolean -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card:ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean -}>; - ["Nameable"]:AliasType<{ - name?:boolean; - ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on CardStack']?: Omit; - ['...on EffectCard']?: Omit; - __typename?: boolean -}>; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] - __typename?: boolean -}>; - /** create card inputs
*/ -["createCard"]: { - /** The defense power
*/ - Defense:number, - /** input skills */ - skills?:ValueTypes["SpecialSkills"][], - /** The name of a card
*/ - name:string, - /** Description of a card
*/ - description:string, - /**
How many children the greek god had
*/ - Children?:number | null, - /** The attack power
*/ - Attack:number + /** Aws S3 File */ + ['S3Object']: AliasType<{ + bucket?: boolean; + key?: boolean; + region?: boolean; + __typename?: boolean; + }>; + ['Subscription']: AliasType<{ + deck?: ValueTypes['Card']; + __typename?: boolean; + }>; + /** Card used in card game
*/ + ['Card']: AliasType<{ + /** The attack power
*/ + Attack?: boolean; + /**
How many children the greek god had
*/ + Children?: boolean; + /** The defense power
*/ + Defense?: boolean; + attack?: [ + { + /** Attacked card/card ids
*/ cardID: string[] | undefined | null; + }, + ValueTypes['Card'], + ]; + /** Put your description here */ + cardImage?: ValueTypes['S3Object']; + /** Description of a card
*/ + description?: boolean; + id?: boolean; + image?: boolean; + /** The name of a card
*/ + name?: boolean; + skills?: boolean; + __typename?: boolean; + }>; + ['Nameable']: AliasType<{ + name?: boolean; + ['...on Card']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; + ['...on CardStack']?: Omit; + __typename?: boolean; + }>; + ['SpecialCard']: AliasType<{ + effect?: boolean; + name?: boolean; + __typename?: boolean; + }>; + ['EffectCard']: AliasType<{ + effectSize?: boolean; + name?: boolean; + __typename?: boolean; + }>; + ['Mutation']: AliasType<{ + addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; + __typename?: boolean; + }>; + ['Query']: AliasType<{ + cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; + /** Draw a card
*/ + drawCard?: ValueTypes['Card']; + drawChangeCard?: ValueTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards?: ValueTypes['Card']; + myStacks?: ValueTypes['CardStack']; + nameables?: ValueTypes['Nameable']; + __typename?: boolean; + }>; + /** Stack of cards */ + ['CardStack']: AliasType<{ + cards?: ValueTypes['Card']; + name?: boolean; + __typename?: boolean; + }>; + /** create card inputs
*/ + ['createCard']: { + /** input skills */ + skills?: ValueTypes['SpecialSkills'][]; + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + /**
How many children the greek god had
*/ + Children?: number | undefined | null; + /** The attack power
*/ + Attack: number; + /** The defense power
*/ + Defense: number; + }; + ['SpecialSkills']: SpecialSkills; + ['ChangeCard']: AliasType<{ + ['...on SpecialCard']: ValueTypes['SpecialCard']; + ['...on EffectCard']: ValueTypes['EffectCard']; + __typename?: boolean; + }>; }; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean -}>; - ["Query"]: AliasType<{ -cardById?: [{ cardId?:string | null},ValueTypes["Card"]], - /** Draw a card
*/ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean -}>; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean, - __typename?: boolean -}>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean, - name?:boolean, - __typename?: boolean -}> - } export type ModelTypes = { - /** Card used in card game
*/ -["Card"]: { - /** The attack power
*/ - Attack:number, - /**
How many children the greek god had
*/ - Children?:number, - /** The defense power
*/ - Defense:number, - /** Attack other cards on the table , returns Cards after attack
*/ - attack?:ModelTypes["Card"][], - /** Put your description here */ - cardImage?:ModelTypes["S3Object"], - /** Description of a card
*/ - description:string, - id:string, - image:string, - /** The name of a card
*/ - name:string, - skills?:ModelTypes["SpecialSkills"][] -}; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - /** Aws S3 File */ -["S3Object"]: { - bucket:string, - key:string, - region:string -}; - ["SpecialCard"]: { - effect:string, - name:string -}; - ["Mutation"]: { - /** add Card to Cards database
*/ - addCard:ModelTypes["Card"] -}; - ["Nameable"]: ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"] | ModelTypes["EffectCard"]; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"]; - ["Subscription"]: { - deck?:ModelTypes["Card"][] -}; - ["Query"]: { - cardById?:ModelTypes["Card"], - /** Draw a card
*/ - drawCard:ModelTypes["Card"], - drawChangeCard:ModelTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards:ModelTypes["Card"][], - myStacks?:ModelTypes["CardStack"][], - nameables:ModelTypes["Nameable"][] -}; - /** Stack of cards */ -["CardStack"]: { - cards?:ModelTypes["Card"][], - name:string + /** Aws S3 File */ + ['S3Object']: { + bucket: string; + key: string; + region: string; + }; + ['Subscription']: { + deck?: Array; + }; + /** Card used in card game
*/ + ['Card']: { + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array; + /** Put your description here */ + cardImage?: ModelTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array; + }; + ['Nameable']: ModelTypes['Card'] | ModelTypes['SpecialCard'] | ModelTypes['EffectCard'] | ModelTypes['CardStack']; + ['SpecialCard']: { + effect: string; + name: string; + }; + ['EffectCard']: { + effectSize: number; + name: string; + }; + ['Mutation']: { + /** add Card to Cards database
*/ + addCard: ModelTypes['Card']; + }; + ['Query']: { + cardById?: ModelTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: ModelTypes['Card']; + drawChangeCard: ModelTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array | undefined; + myStacks?: Array; + nameables: Array | undefined; + }; + /** Stack of cards */ + ['CardStack']: { + cards?: Array; + name: string; + }; + /** create card inputs
*/ + ['createCard']: GraphQLTypes['createCard']; + ['SpecialSkills']: GraphQLTypes['SpecialSkills']; + ['ChangeCard']: ModelTypes['SpecialCard'] | ModelTypes['EffectCard']; }; - ["EffectCard"]: { - effectSize:number, - name:string -} - } export type GraphQLTypes = { - /** Card used in card game
*/ -["Card"]: { - __typename: "Card", - /** The attack power
*/ - Attack: number, - /**
How many children the greek god had
*/ - Children?: number, - /** The defense power
*/ - Defense: number, - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array, - /** Put your description here */ - cardImage?: GraphQLTypes["S3Object"], - /** Description of a card
*/ - description: string, - id: string, - image: string, - /** The name of a card
*/ - name: string, - skills?: Array -}; - ["SpecialSkills"]: SpecialSkills; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string -}; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, - name: string -}; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - ["Nameable"]: { - __typename:"Card" | "SpecialCard" | "CardStack" | "EffectCard", - name: string - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - /** create card inputs
*/ -["createCard"]: { - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number, - /** The attack power
*/ - Attack: number -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array -}; - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"], - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array, - nameables: Array -}; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array, - name: string + /** Aws S3 File */ + ['S3Object']: { + __typename: 'S3Object'; + bucket: string; + key: string; + region: string; + }; + ['Subscription']: { + __typename: 'Subscription'; + deck?: Array; + }; + /** Card used in card game
*/ + ['Card']: { + __typename: 'Card'; + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array; + /** Put your description here */ + cardImage?: GraphQLTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array; + }; + ['Nameable']: { + __typename: 'Card' | 'SpecialCard' | 'EffectCard' | 'CardStack'; + name: string; + ['...on Card']: '__union' & GraphQLTypes['Card']; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + ['...on CardStack']: '__union' & GraphQLTypes['CardStack']; + }; + ['SpecialCard']: { + __typename: 'SpecialCard'; + effect: string; + name: string; + }; + ['EffectCard']: { + __typename: 'EffectCard'; + effectSize: number; + name: string; + }; + ['Mutation']: { + __typename: 'Mutation'; + /** add Card to Cards database
*/ + addCard: GraphQLTypes['Card']; + }; + ['Query']: { + __typename: 'Query'; + cardById?: GraphQLTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: GraphQLTypes['Card']; + drawChangeCard: GraphQLTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array | undefined; + myStacks?: Array; + nameables: Array | undefined; + }; + /** Stack of cards */ + ['CardStack']: { + __typename: 'CardStack'; + cards?: Array; + name: string; + }; + /** create card inputs
*/ + ['createCard']: { + /** input skills */ + skills?: Array; + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The attack power
*/ + Attack: number; + /** The defense power
*/ + Defense: number; + }; + ['SpecialSkills']: SpecialSkills; + ['ChangeCard']: { + __typename: 'SpecialCard' | 'EffectCard'; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + }; }; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, - name: string -} - } export const enum SpecialSkills { - THUNDER = "THUNDER", - RAIN = "RAIN", - FIRE = "FIRE" + THUNDER = 'THUNDER', + RAIN = 'RAIN', + FIRE = 'FIRE', } export class GraphQLError extends Error { - constructor(public response: GraphQLResponse) { - super(""); - console.error(response); - } - toString() { - return "GraphQL Response Error"; - } + constructor(public response: GraphQLResponse) { + super(''); + console.error(response); } - + toString() { + return 'GraphQL Response Error'; + } +} export type UnwrapPromise = T extends Promise ? R : T; -export type ZeusState Promise> = NonNullable< - UnwrapPromise> ->; +export type ZeusState Promise> = NonNullable>>; export type ZeusHook< - T extends ( - ...args: any[] - ) => Record Promise>, + T extends (...args: any[]) => Record Promise>, N extends keyof ReturnType > = ZeusState[N]>; @@ -349,30 +355,19 @@ export type SubscriptionToGraphQL = { }; export type SelectionFunction = (t: T | V) => T; export type fetchOptions = ArgsType; -type websocketOptions = typeof WebSocket extends new ( - ...args: infer R -) => WebSocket - ? R - : never; -export type chainOptions = - | [fetchOptions[0], fetchOptions[1] & {websocket?: websocketOptions}] - | [fetchOptions[0]]; -export type FetchFunction = ( - query: string, - variables?: Record, -) => Promise; +type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; +export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; +export type FetchFunction = (query: string, variables?: Record) => Promise; export type SubscriptionFunction = (query: string) => any; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; - - export const ZeusSelect = () => ((t: any) => t) as SelectionFunction; export const ScalarResolver = (scalar: string, value: any) => { switch (scalar) { case 'String': - return `${JSON.stringify(value)}`; + return `${JSON.stringify(value)}`; case 'Int': return `${value}`; case 'Float': @@ -390,96 +385,99 @@ export const ScalarResolver = (scalar: string, value: any) => { } }; - -export const TypesPropsResolver = ({ - value, - type, - name, - key, - blockArrays +export const TypesPropsResolver = < + T extends keyof typeof AllTypesProps, + U extends keyof typeof AllTypesProps[T], + L extends keyof typeof AllTypesProps[T][U] +>({ + value, + type, + name, + key, + blockArrays, }: { - value: any; - type: string; - name: string; - key?: string; - blockArrays?: boolean; + value: any; + type: T; + name: U; + key?: L; + blockArrays?: boolean; }): string => { - if (value === null) { - return `null`; - } - let resolvedValue = AllTypesProps[type][name]; - if (key) { - resolvedValue = resolvedValue[key]; - } - if (!resolvedValue) { - throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`) - } - const typeResolved = resolvedValue.type; - const isArray = resolvedValue.array; - const isArrayRequired = resolvedValue.arrayRequired; - if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { - const isRequired = resolvedValue.required ? '!' : ''; - let t = `${typeResolved}`; - if (isArray) { - if (isRequired) { - t = `${t}!`; - } - t = `[${t}]`; - if(isArrayRequired){ - t = `${t}!`; - } - }else{ - if (isRequired) { - t = `${t}!`; - } - } - return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; - } - if (isArray && !blockArrays) { - return `[${value - .map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })) - .join(',')}]`; + if (value === null) { + return `null`; + } + if (!(type in AllTypesProps)) { + throw new Error(`No type inside type props`); + } + const typeRecord = AllTypesProps[type]; + if (typeRecord === 'enum') { + throw new Error(`AllTypesProps type cannot be a string`); + } + if (!(name in typeRecord)) { + throw new Error(`No type inside type props`); + } + const resolvedValue = key ? typeRecord[name][key] : typeRecord[name]; + if (!resolvedValue) { + throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`); + } + + const typeResolved = resolvedValue.type; + const isArray = resolvedValue.array; + const isArrayRequired = resolvedValue.arrayRequired; + if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { + const isRequired = resolvedValue.required ? '!' : ''; + let t = `${typeResolved}`; + if (isArray) { + if (isRequired) { + t = `${t}!`; + } + t = `[${t}]`; + if (isArrayRequired) { + t = `${t}!`; + } + } else { + if (isRequired) { + t = `${t}!`; + } } - const reslovedScalar = ScalarResolver(typeResolved, value); - if (!reslovedScalar) { - const resolvedType = AllTypesProps[typeResolved]; - if (typeof resolvedType === 'object') { - const argsKeys = Object.keys(resolvedType); - return `{${argsKeys - .filter((ak) => value[ak] !== undefined) - .map( - (ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}` - )}}`; - } - return ScalarResolver(AllTypesProps[typeResolved], value) as string; + return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; + } + if (isArray && !blockArrays) { + return `[${value.map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })).join(',')}]`; + } + const reslovedScalar = ScalarResolver(typeResolved, value); + if (!reslovedScalar) { + const resolvedType = AllTypesProps[typeResolved]; + if (typeof resolvedType === 'object') { + const argsKeys = Object.keys(resolvedType); + return `{${argsKeys + .filter((ak) => value[ak] !== undefined) + .map((ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}`)}}`; } - return reslovedScalar; + return ScalarResolver(AllTypesProps[typeResolved], value) as string; + } + return reslovedScalar; }; - -const isArrayFunction = ( - parent: string[], - a: any[] -) => { +const isArrayFunction = (parent: string[], a: DictArrayFunction) => { const [values, r] = a; const [mainKey, key, ...keys] = parent; const keyValues = Object.keys(values).filter((k) => typeof values[k] !== 'undefined'); if (!keys.length) { - return keyValues.length > 0 - ? `(${keyValues - .map( - (v) => - `${v}:${TypesPropsResolver({ - value: values[v], - type: mainKey, - name: key, - key: v - })}` - ) - .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` - : traverseToSeekArrays(parent, r); - } + return keyValues.length > 0 + ? `(${keyValues + .map( + (v) => + `${v}:${TypesPropsResolver({ + value: values[v], + type: mainKey, + name: key, + key: v, + })}`, + ) + .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` + : traverseToSeekArrays(parent, r); + } const [typeResolverKey] = keys.splice(keys.length - 1, 1); let valueToResolve = ReturnTypes[mainKey][key]; @@ -496,24 +494,23 @@ const isArrayFunction = ( value: values[v], type: valueToResolve, name: typeResolverKey, - key: v - })}` + key: v, + })}`, ) .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` : traverseToSeekArrays(parent, r); return argumentString; }; - const resolveKV = (k: string, v: boolean | string | { [x: string]: boolean | string }) => typeof v === 'boolean' ? k : typeof v === 'object' ? `${k}{${objectToTree(v)}}` : `${k}${v}`; - const objectToTree = (o: { [x: string]: boolean | string }): string => - `{${Object.keys(o).map((k) => `${resolveKV(k, o[k])}`).join(' ')}}`; - + `{${Object.keys(o) + .map((k) => `${resolveKV(k, o[k])}`) + .join(' ')}}`; -const traverseToSeekArrays = (parent: string[], a?: any): string => { +const traverseToSeekArrays = (parent: string[], a?: DictValue): string => { if (!a) return ''; if (Object.keys(a).length === 0) { return ''; @@ -526,30 +523,28 @@ const traverseToSeekArrays = (parent: string[], a?: any): string => { Object.keys(a) .filter((k) => typeof a[k] !== 'undefined') .forEach((k) => { - if (k === '__alias') { - Object.keys(a[k]).forEach((aliasKey) => { - const aliasOperations = a[k][aliasKey]; - const aliasOperationName = Object.keys(aliasOperations)[0]; - const aliasOperation = aliasOperations[aliasOperationName]; - b[ - `${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}` - ] = traverseToSeekArrays([...parent, aliasOperationName], aliasOperation); - }); - } else { - b[k] = traverseToSeekArrays([...parent, k], a[k]); - } - }); + if (k === '__alias') { + Object.keys(a[k]).forEach((aliasKey) => { + const aliasOperations = a[k][aliasKey]; + const aliasOperationName = Object.keys(aliasOperations)[0]; + const aliasOperation = aliasOperations[aliasOperationName]; + b[`${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}`] = traverseToSeekArrays( + [...parent, aliasOperationName], + aliasOperation, + ); + }); + } else { + b[k] = traverseToSeekArrays([...parent, k], a[k]); + } + }); } else { return ''; } } return objectToTree(b); -}; - - -const buildQuery = (type: string, a?: Record) => - traverseToSeekArrays([type], a); +}; +const buildQuery = (type: string, a?: Dict) => traverseToSeekArrays([type], a); const inspectVariables = (query: string) => { const regex = /\$\b\w*__ZEUS_VAR__\[?[^!^\]^\s^,^\)^\}]*[!]?[\]]?[!]?/g; @@ -575,26 +570,23 @@ const inspectVariables = (query: string) => { .join(', ')})${filteredQuery}`; }; - -export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => (o: Record) => - `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; - +export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => ( + o: Dict, +) => `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription', tName: string) => ( - o: Record, + o: Dict, options?: OperationOptions, -) => fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r:any) => { - seekForAliases(r) - return r -}); - +) => + fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r: any) => { + seekForAliases(r); + return r; + }); export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => ( t: 'query' | 'mutation' | 'subscription', tName: string, -) => (o: Record, options?: OperationOptions) => - fn(queryConstruct(t, tName, options?.operationName)(o)); - +) => (o: Dict, options?: OperationOptions) => fn(queryConstruct(t, tName, options?.operationName)(o)); const seekForAliases = (response: any) => { const traverseAlias = (value: any) => { @@ -625,70 +617,53 @@ const seekForAliases = (response: any) => { } }; - export const $ = (t: TemplateStringsArray): any => `ZEUS_VAR$${t.join('')}`; - -export const resolverFor = < - X, - T extends keyof ValueTypes, - Z extends keyof ValueTypes[T], ->( +export const resolverFor = ( type: T, field: Z, fn: ( args: Required[Z] extends [infer Input, any] ? Input : any, source: any, ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, -) => fn as (args?: any,source?: any) => any; - +) => fn as (args?: any, source?: any) => any; const handleFetchResponse = ( - response: Parameters['then']>[0], Function>>[0] + response: Parameters['then']>[0], Function>>[0], ): Promise => { if (!response.ok) { return new Promise((_, reject) => { - response.text().then(text => { - try { reject(JSON.parse(text)); } - catch (err) { reject(text); } - }).catch(reject); + response + .text() + .then((text) => { + try { + reject(JSON.parse(text)); + } catch (err) { + reject(text); + } + }) + .catch(reject); }); } return response.json(); }; export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { - let fetchFunction; - let queryString = query; - let fetchOptions = options[1] || {}; + let fetchFunction; + let queryString = query; + let fetchOptions = options[1] || {}; + try { + fetchFunction = require('node-fetch'); + } catch (error) { + throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); + } + if (fetchOptions.method && fetchOptions.method === 'GET') { try { - fetchFunction = require('node-fetch'); + queryString = require('querystring').stringify(query); } catch (error) { - throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); + throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); } - if (fetchOptions.method && fetchOptions.method === 'GET') { - try { - queryString = require('querystring').stringify(query); - } catch (error) { - throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); - } - return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) - .then(handleFetchResponse) - .then((response: GraphQLResponse) => { - if (response.errors) { - throw new GraphQLError(response); - } - return response.data; - }); - } - return fetchFunction(`${options[0]}`, { - body: JSON.stringify({ query: queryString, variables }), - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - ...fetchOptions - }) + return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) .then(handleFetchResponse) .then((response: GraphQLResponse) => { if (response.errors) { @@ -696,61 +671,68 @@ export const apiFetch = (options: fetchOptions) => (query: string, variables: Re } return response.data; }); - }; - + } + return fetchFunction(`${options[0]}`, { + body: JSON.stringify({ query: queryString, variables }), + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + ...fetchOptions, + }) + .then(handleFetchResponse) + .then((response: GraphQLResponse) => { + if (response.errors) { + throw new GraphQLError(response); + } + return response.data; + }); +}; -export const apiSubscription = (options: chainOptions) => ( - query: string, - ) => { - try { - const WebSocket = require('ws'); - const queryString = options[0] + '?query=' + encodeURIComponent(query); - const wsString = queryString.replace('http', 'ws'); - const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; - const webSocketOptions = options[1]?.websocket || [host]; - const ws = new WebSocket(...webSocketOptions); - return { - ws, - on: (e: (args: any) => void) => { - ws.onmessage = (event:any) => { - if(event.data){ - const parsed = JSON.parse(event.data) - const data = parsed.data - if (data) { - seekForAliases(data); - } - return e(data); +export const apiSubscription = (options: chainOptions) => (query: string) => { + try { + const WebSocket = require('ws'); + const queryString = options[0] + '?query=' + encodeURIComponent(query); + const wsString = queryString.replace('http', 'ws'); + const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; + const webSocketOptions = options[1]?.websocket || [host]; + const ws = new WebSocket(...webSocketOptions); + return { + ws, + on: (e: (args: any) => void) => { + ws.onmessage = (event: any) => { + if (event.data) { + const parsed = JSON.parse(event.data); + const data = parsed.data; + if (data) { + seekForAliases(data); } - }; - }, - off: (e: (args: any) => void) => { - ws.onclose = e; - }, - error: (e: (args: any) => void) => { - ws.onerror = e; - }, - open: (e: () => void) => { - ws.onopen = e; - }, - }; - } catch { - throw new Error('No websockets implemented. Please install ws'); - } - }; - - + return e(data); + } + }; + }, + off: (e: (args: any) => void) => { + ws.onclose = e; + }, + error: (e: (args: any) => void) => { + ws.onerror = e; + }, + open: (e: () => void) => { + ws.onopen = e; + }, + }; + } catch { + throw new Error('No websockets implemented. Please install ws'); + } +}; const allOperations = { - "query": "Query", - "mutation": "Mutation", - "subscription": "Subscription" -} + query: 'Query', + mutation: 'Mutation', + subscription: 'Subscription', +}; -export type GenericOperation = O extends 'query' - ? "Query" - : O extends 'mutation' - ? "Mutation" - : "Subscription" +export type GenericOperation = O extends 'query' ? 'Query' : O extends 'mutation' ? 'Mutation' : 'Subscription'; export const Thunder = (fn: FetchFunction) => < O extends 'query' | 'mutation' | 'subscription', @@ -760,21 +742,18 @@ export const Thunder = (fn: FetchFunction) => < ) => (o: Z | ValueTypes[R], ops?: OperationOptions) => fullChainConstruct(fn)(operation, allOperations[operation])(o as any, ops) as Promise>; -export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); - +export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); + export const SubscriptionThunder = (fn: SubscriptionFunction) => < O extends 'query' | 'mutation' | 'subscription', R extends keyof ValueTypes = GenericOperation >( operation: O, -) => ( - o: Z | ValueTypes[R], - ops?: OperationOptions -)=> - fullSubscriptionConstruct(fn)(operation, allOperations[operation])( - o as any, - ops, - ) as SubscriptionToGraphQL; +) => (o: Z | ValueTypes[R], ops?: OperationOptions) => + fullSubscriptionConstruct(fn)(operation, allOperations[operation])(o as any, ops) as SubscriptionToGraphQL< + Z, + GraphQLTypes[R] + >; export const Subscription = (...options: chainOptions) => SubscriptionThunder(apiSubscription(options)); export const Zeus = < @@ -787,6 +766,5 @@ export const Zeus = < operationName?: string, ) => queryConstruct(operation, allOperations[operation], operationName)(o as any); export const Selector = (key: T) => ZeusSelect(); - -export const Gql = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql') \ No newline at end of file +export const Gql = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql'); diff --git a/examples/typescript-node/src/zeus/modified.ts b/examples/typescript-node/src/zeus/modified.ts new file mode 100644 index 00000000..2ca42663 --- /dev/null +++ b/examples/typescript-node/src/zeus/modified.ts @@ -0,0 +1,261 @@ +/* eslint-disable */ + +import { AllTypesProps, ReturnTypes } from './const'; +type DictArrayFunction = [Record, Dict]; +type DictValue = boolean | DictArrayFunction | Dict; +type Dict = { + [x: string]: DictValue; +}; + +export const ScalarResolver = (scalar: string, value: any) => { + switch (scalar) { + case 'String': + return `${JSON.stringify(value)}`; + case 'Int': + return `${value}`; + case 'Float': + return `${value}`; + case 'Boolean': + return `${value}`; + case 'ID': + return `"${value}"`; + case 'enum': + return `${value}`; + case 'scalar': + return `${value}`; + default: + return false; + } +}; + +export const TypesPropsResolver = < + T extends keyof typeof AllTypesProps, + U extends keyof typeof AllTypesProps[T], + L extends keyof typeof AllTypesProps[T][U] +>({ + value, + type, + name, + key, + blockArrays, +}: { + value: any; + type: T; + name: U; + key?: L; + blockArrays?: boolean; +}): string => { + if (value === null) { + return `null`; + } + if (!(type in AllTypesProps)) { + throw new Error(`No type inside type props`); + } + const typeRecord = AllTypesProps[type]; + if (typeRecord === 'enum') { + throw new Error(`AllTypesProps type cannot be a string`); + } + if (!(name in typeRecord)) { + throw new Error(`No type inside type props`); + } + const resolvedValue = key ? typeRecord[name][key] : typeRecord[name]; + if (!resolvedValue) { + throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`); + } + + const typeResolved = resolvedValue.type; + const isArray = resolvedValue.array; + const isArrayRequired = resolvedValue.arrayRequired; + if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { + const isRequired = resolvedValue.required ? '!' : ''; + let t = `${typeResolved}`; + if (isArray) { + if (isRequired) { + t = `${t}!`; + } + t = `[${t}]`; + if (isArrayRequired) { + t = `${t}!`; + } + } else { + if (isRequired) { + t = `${t}!`; + } + } + return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; + } + if (isArray && !blockArrays) { + return `[${value.map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })).join(',')}]`; + } + const reslovedScalar = ScalarResolver(typeResolved, value); + if (!reslovedScalar) { + const resolvedType = AllTypesProps[typeResolved]; + if (typeof resolvedType === 'object') { + const argsKeys = Object.keys(resolvedType); + return `{${argsKeys + .filter((ak) => value[ak] !== undefined) + .map((ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}`)}}`; + } + return ScalarResolver(AllTypesProps[typeResolved], value) as string; + } + return reslovedScalar; +}; + +const isArrayFunction = (parent: string[], a: DictArrayFunction) => { + const [values, r] = a; + const [mainKey, key, ...keys] = parent; + const keyValues = Object.keys(values).filter((k) => typeof values[k] !== 'undefined'); + + if (!keys.length) { + return keyValues.length > 0 + ? `(${keyValues + .map( + (v) => + `${v}:${TypesPropsResolver({ + value: values[v], + type: mainKey, + name: key, + key: v, + })}`, + ) + .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` + : traverseToSeekArrays(parent, r); + } + + const [typeResolverKey] = keys.splice(keys.length - 1, 1); + let valueToResolve = ReturnTypes[mainKey][key]; + for (const k of keys) { + valueToResolve = ReturnTypes[valueToResolve][k]; + } + + const argumentString = + keyValues.length > 0 + ? `(${keyValues + .map( + (v) => + `${v}:${TypesPropsResolver({ + value: values[v], + type: valueToResolve, + name: typeResolverKey, + key: v, + })}`, + ) + .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` + : traverseToSeekArrays(parent, r); + return argumentString; +}; + +const resolveKV = (k: string, v: boolean | string | { [x: string]: boolean | string }) => + typeof v === 'boolean' ? k : typeof v === 'object' ? `${k}{${objectToTree(v)}}` : `${k}${v}`; + +const objectToTree = (o: { [x: string]: boolean | string }): string => + `{${Object.keys(o) + .map((k) => `${resolveKV(k, o[k])}`) + .join(' ')}}`; + +const traverseToSeekArrays = (parent: string[], a?: Dict): string => { + if (!a) return ''; + if (Object.keys(a).length === 0) { + return ''; + } + let b: Record = {}; + if (Array.isArray(a)) { + return isArrayFunction([...parent], a); + } else { + if (typeof a === 'object') { + Object.keys(a) + .filter((k) => typeof a[k] !== 'undefined') + .forEach((k) => { + if (k === '__alias') { + Object.keys(a[k]).forEach((aliasKey) => { + const aliasOperations = a[k][aliasKey]; + const aliasOperationName = Object.keys(aliasOperations)[0]; + const aliasOperation = aliasOperations[aliasOperationName]; + b[`${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}`] = traverseToSeekArrays( + [...parent, aliasOperationName], + aliasOperation, + ); + }); + } else { + b[k] = traverseToSeekArrays([...parent, k], a[k]); + } + }); + } else { + return ''; + } + } + return objectToTree(b); +}; + +const buildQuery = (type: string, a?: Dict) => traverseToSeekArrays([type], a); + +const inspectVariables = (query: string) => { + const regex = /\$\b\w*__ZEUS_VAR__\[?[^!^\]^\s^,^\)^\}]*[!]?[\]]?[!]?/g; + let result; + const AllVariables: string[] = []; + while ((result = regex.exec(query))) { + if (AllVariables.includes(result[0])) { + continue; + } + AllVariables.push(result[0]); + } + if (!AllVariables.length) { + return query; + } + let filteredQuery = query; + AllVariables.forEach((variable) => { + while (filteredQuery.includes(variable)) { + filteredQuery = filteredQuery.replace(variable, variable.split('__ZEUS_VAR__')[0]); + } + }); + return `(${AllVariables.map((a) => a.split('__ZEUS_VAR__')) + .map(([variableName, variableType]) => `${variableName}:${variableType}`) + .join(', ')})${filteredQuery}`; +}; + +export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => ( + o: Dict, +) => `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; + +export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription', tName: string) => ( + o: Dict, + options?: OperationOptions, +) => + fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r: any) => { + seekForAliases(r); + return r; + }); + +export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => ( + t: 'query' | 'mutation' | 'subscription', + tName: string, +) => (o: Dict, options?: OperationOptions) => fn(queryConstruct(t, tName, options?.operationName)(o)); + +const seekForAliases = (response: any) => { + const traverseAlias = (value: any) => { + if (Array.isArray(value)) { + value.forEach(seekForAliases); + } else { + if (typeof value === 'object') { + seekForAliases(value); + } + } + }; + if (typeof response === 'object' && response) { + const keys = Object.keys(response); + if (keys.length < 1) { + return; + } + keys.forEach((k) => { + const value = response[k]; + if (k.indexOf('__alias__') !== -1) { + const [operation, alias] = k.split('__alias__'); + response[alias] = { + [operation]: value, + }; + delete response[k]; + } + traverseAlias(value); + }); + } +}; diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 7b274f03..0c742c2d 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -6,7 +6,7 @@ import type { UseMutationOptions, UseQueryOptions } from 'react-query'; export function useTypedMutation>( - mutationKey: string, + mutationKey: string | unknown[], mutation: TData | ValueTypes[O], options?: Omit, 'mutationKey' | 'mutationFn'>, zeusOptions?: OperationOptions, @@ -16,7 +16,7 @@ export function useTypedMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } export function useTypedQuery>( - queryKey: string, + queryKey: string | unknown[], query: TData | ValueTypes[O], options?: Omit, 'queryKey' | 'queryFn'>, zeusOptions?: OperationOptions, diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 5b2e6e13..6459e7d9 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,3 +1,21 @@ +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! + + """""" + key: String! + + """""" + region: String! +} + +"""""" +type Subscription { + """""" + deck: [Card!] +} + """Card used in card game
""" type Card implements Nameable { """The attack power
""" @@ -35,27 +53,9 @@ type Card implements Nameable { } """""" -enum SpecialSkills { - """Lower enemy defense -5
""" - THUNDER - - """Attack multiple Cards at once
""" - RAIN - - """50% chance to avoid any attack
""" - FIRE -} - -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - - """""" - key: String! - +interface Nameable { """""" - region: String! + name: String! } """""" @@ -68,45 +68,18 @@ type SpecialCard implements Nameable { } """""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! -} - -"""""" -interface Nameable { +type EffectCard implements Nameable { """""" - name: String! -} - -"""""" -union ChangeCard = SpecialCard | EffectCard - -"""create card inputs
""" -input createCard { - """The defense power
""" - Defense: Int! - - """input skills""" - skills: [SpecialSkills!] + effectSize: Float! - """The name of a card
""" + """""" name: String! - - """Description of a card
""" - description: String! - - """
How many children the greek god had
""" - Children: Int - - """The attack power
""" - Attack: Int! } """""" -type Subscription { - """""" - deck: [Card!] +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! } """""" @@ -139,15 +112,42 @@ type CardStack implements Nameable { name: String! } -"""""" -type EffectCard implements Nameable { - """""" - effectSize: Float! +"""create card inputs
""" +input createCard { + """input skills""" + skills: [SpecialSkills!] - """""" + """The name of a card
""" name: String! + + """Description of a card
""" + description: String! + + """
How many children the greek god had
""" + Children: Int + + """The attack power
""" + Attack: Int! + + """The defense power
""" + Defense: Int! } +"""""" +enum SpecialSkills { + """Lower enemy defense -5
""" + THUNDER + + """Attack multiple Cards at once
""" + RAIN + + """50% chance to avoid any attack
""" + FIRE +} + +"""""" +union ChangeCard = SpecialCard | EffectCard + schema{ query: Query, mutation: Mutation, diff --git a/package.json b/package.json index 27304c5e..164cac15 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "dependencies": { "cross-fetch": "^3.0.4", "graphql": "^15.4.0", - "graphql-js-tree": "0.0.3", + "graphql-js-tree": "^0.1.1", "yargs": "^16.1.1" }, "config": { diff --git a/src/Models/DisplayMap.ts b/src/Models/DisplayMap.ts deleted file mode 100644 index 13256d57..00000000 --- a/src/Models/DisplayMap.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { TypeDefinition, TypeExtension, TypeSystemDefinition } from './Spec'; - -export enum TypeDefinitionDisplayStrings { - type = 'type', - enum = 'enum', - interface = 'interface', - input = 'input', - scalar = 'scalar', - union = 'union', - directive = 'directive', -} -export enum TypeSystemDefinitionDisplayStrings { - directive = 'directive', - schema = 'schema', - definition = 'definition', - field = 'field', - member = 'member', -} - -export const TypeDefinitionDisplayMap: Record< - TypeDefinition | TypeExtension | TypeSystemDefinition.DirectiveDefinition, - TypeDefinitionDisplayStrings -> = { - [TypeDefinition.ObjectTypeDefinition]: TypeDefinitionDisplayStrings.type, - [TypeDefinition.EnumTypeDefinition]: TypeDefinitionDisplayStrings.enum, - [TypeDefinition.InterfaceTypeDefinition]: TypeDefinitionDisplayStrings.interface, - [TypeDefinition.InputObjectTypeDefinition]: TypeDefinitionDisplayStrings.input, - [TypeDefinition.ScalarTypeDefinition]: TypeDefinitionDisplayStrings.scalar, - [TypeDefinition.UnionTypeDefinition]: TypeDefinitionDisplayStrings.union, - [TypeExtension.ObjectTypeExtension]: TypeDefinitionDisplayStrings.type, - [TypeExtension.EnumTypeExtension]: TypeDefinitionDisplayStrings.enum, - [TypeExtension.InterfaceTypeExtension]: TypeDefinitionDisplayStrings.interface, - [TypeExtension.InputObjectTypeExtension]: TypeDefinitionDisplayStrings.input, - [TypeExtension.ScalarTypeExtension]: TypeDefinitionDisplayStrings.scalar, - [TypeExtension.UnionTypeExtension]: TypeDefinitionDisplayStrings.union, - [TypeSystemDefinition.DirectiveDefinition]: TypeDefinitionDisplayStrings.directive, -}; - -export const TypeSystemDefinitionDisplayMap: Record = { - [TypeSystemDefinition.DirectiveDefinition]: TypeSystemDefinitionDisplayStrings.directive, - [TypeSystemDefinition.FieldDefinition]: TypeSystemDefinitionDisplayStrings.field, - [TypeSystemDefinition.SchemaDefinition]: TypeSystemDefinitionDisplayStrings.schema, - [TypeSystemDefinition.TypeDefinition]: TypeSystemDefinitionDisplayStrings.definition, - [TypeSystemDefinition.UnionMemberDefinition]: TypeSystemDefinitionDisplayStrings.member, -}; diff --git a/src/Models/Options.ts b/src/Models/Options.ts deleted file mode 100644 index d75b893c..00000000 --- a/src/Models/Options.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum Options { - array = 'array', - required = 'required', - arrayRequired = 'arrayRequired', -} diff --git a/src/Models/ParserTree.ts b/src/Models/ParserTree.ts deleted file mode 100644 index e4a4d97b..00000000 --- a/src/Models/ParserTree.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Options } from './Options'; -import { Directive, OperationType } from './Spec'; -import { GraphQLNodeParams } from './Types'; - -export interface ParserField { - name: string; - type: { - name: string; - options?: Options[]; - operations?: OperationType[]; - directiveOptions?: Directive[]; - }; - data: GraphQLNodeParams; - args?: ParserField[]; - interfaces?: string[]; - directives?: ParserField[]; - description?: string; -} - -export interface ParserTree { - nodes: ParserField[]; -} diff --git a/src/Models/Spec.ts b/src/Models/Spec.ts deleted file mode 100644 index 87f328ce..00000000 --- a/src/Models/Spec.ts +++ /dev/null @@ -1,93 +0,0 @@ -export enum ScalarTypes { - Boolean = 'Boolean', - Float = 'Float', - ID = 'ID', - Int = 'Int', - String = 'String', -} - -export enum Directive { - SCHEMA = 'SCHEMA', - SCALAR = 'SCALAR', - OBJECT = 'OBJECT', - FIELD_DEFINITION = 'FIELD_DEFINITION', - ARGUMENT_DEFINITION = 'ARGUMENT_DEFINITION', - INTERFACE = 'INTERFACE', - UNION = 'UNION', - ENUM = 'ENUM', - ENUM_VALUE = 'ENUM_VALUE', - INPUT_OBJECT = 'INPUT_OBJECT', - INPUT_FIELD_DEFINITION = 'INPUT_FIELD_DEFINITION', -} -export enum Value { - Variable = 'Variable', - IntValue = 'IntValue', - FloatValue = 'FloatValue', - StringValue = 'StringValue', - BooleanValue = 'BooleanValue', - NullValue = 'NullValue', - EnumValue = 'EnumValue', - ListValue = 'ListValue', - ObjectValue = 'ObjectValue', -} -export enum Type { - NamedType = 'NamedType', - ListType = 'ListType', - NonNullType = 'NonNullType', -} - -export enum TypeSystemDefinition { - SchemaDefinition = 'SchemaDefinition', - TypeDefinition = 'TypeDefinition', - DirectiveDefinition = 'DirectiveDefinition', - FieldDefinition = 'FieldDefinition', - UnionMemberDefinition = 'UnionMemberDefinition', // NOT IN SPEC -} - -export enum TypeSystemExtension { - SchemaExtension = 'SchemaExtension', - TypeExtension = 'TypeExtension', -} - -export enum TypeDefinition { - ScalarTypeDefinition = 'ScalarTypeDefinition', - ObjectTypeDefinition = 'ObjectTypeDefinition', - InterfaceTypeDefinition = 'InterfaceTypeDefinition', - UnionTypeDefinition = 'UnionTypeDefinition', - EnumTypeDefinition = 'EnumTypeDefinition', - InputObjectTypeDefinition = 'InputObjectTypeDefinition', -} - -export enum ValueDefinition { - EnumValueDefinition = 'EnumValueDefinition', - InputValueDefinition = 'InputValueDefinition', -} - -export enum TypeExtension { - ScalarTypeExtension = 'ScalarTypeExtension', - ObjectTypeExtension = 'ObjectTypeExtension', - InterfaceTypeExtension = 'InterfaceTypeExtension', - UnionTypeExtension = 'UnionTypeExtension', - EnumTypeExtension = 'EnumTypeExtension', - InputObjectTypeExtension = 'InputObjectTypeExtension', -} - -export enum OperationType { - query = 'query', - mutation = 'mutation', - subscription = 'subscription', -} - -// below this line this is out of spec - -export enum Instances { - Argument = 'Argument', - Directive = 'Directive', - Implement = 'Implement', -} -export enum Helpers { - Directives = 'Directives', - Implements = 'Implements', - Extend = 'Extend', - Comment = 'Comment', -} diff --git a/src/Models/Types.ts b/src/Models/Types.ts deleted file mode 100644 index a7edf0a1..00000000 --- a/src/Models/Types.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { TypeDefinitionDisplayStrings, TypeSystemDefinitionDisplayStrings } from './DisplayMap'; -import { - Helpers, - Instances, - ScalarTypes, - Type, - TypeDefinition, - TypeExtension, - TypeSystemDefinition, - Value, - ValueDefinition, -} from './Spec'; - -export enum BuiltInDirectives { - skip = 'skip', - include = 'include', - deprecated = 'deprecated', -} -export type AllTypes = - | ScalarTypes - | Value - | ValueDefinition - | TypeDefinition - | TypeDefinitionDisplayStrings - | TypeSystemDefinition - | TypeSystemDefinitionDisplayStrings - | TypeExtension - | Instances - | Helpers - | Type; - -export interface GraphQLNodeParams { - type?: AllTypes; - for?: AllTypes[]; -} diff --git a/src/Models/index.ts b/src/Models/index.ts index a3f7833f..0237587c 100644 --- a/src/Models/index.ts +++ b/src/Models/index.ts @@ -1,6 +1 @@ -export * from './ParserTree'; -export * from './Options'; -export * from './Types'; -export * from './Spec'; -export * from './DisplayMap'; export * from './Environment'; diff --git a/src/TreeToJSONSchema/index.ts b/src/TreeToJSONSchema/index.ts index 2f1d5982..22497669 100644 --- a/src/TreeToJSONSchema/index.ts +++ b/src/TreeToJSONSchema/index.ts @@ -1,4 +1,12 @@ -import { Options, ParserField, ParserTree, ScalarTypes, TypeDefinition, ValueDefinition } from '@/Models'; +import { + getTypeName, + Options, + ParserField, + ParserTree, + ScalarTypes, + TypeDefinition, + ValueDefinition, +} from 'graphql-js-tree'; import { JSONSchema7 } from 'json-schema'; export type JSONSchemaOverrideProperties = Omit & { @@ -30,23 +38,24 @@ type ConvertField = { const getDataType = ({ f, tree, override }: ConvertField): JSONSchema7 => { if (f.data.type === ValueDefinition.InputValueDefinition) { - if (f.type.name === ScalarTypes.Boolean) { + const typeName = getTypeName(f.type.fieldType); + if (typeName === ScalarTypes.Boolean) { return { type: 'boolean' }; } - if (f.type.name === ScalarTypes.Float) { + if (typeName === ScalarTypes.Float) { return { type: 'number' }; } - if (f.type.name === ScalarTypes.Int) { + if (typeName === ScalarTypes.Int) { return { type: 'integer' }; } - if (f.type.name === ScalarTypes.ID) { + if (typeName === ScalarTypes.ID) { return { type: 'string' }; } - if (f.type.name === ScalarTypes.String) { + if (typeName === ScalarTypes.String) { return { type: 'string' }; } - const lookForField = tree.nodes.find((r) => r.name === f.type.name); + const lookForField = tree.nodes.find((r) => r.name === typeName); if (lookForField?.data.type === TypeDefinition.ScalarTypeDefinition) { return { type: 'string', @@ -65,7 +74,7 @@ const getDataType = ({ f, tree, override }: ConvertField): JSONSchema7 => { // It must be a field then return { type: 'object', - required: f?.args?.filter((a) => a.type.options?.includes(Options.required)).map((n) => n.name), + required: f?.args?.filter((a) => a.type.fieldType.type === Options.required).map((n) => n.name), properties: f.args?.reduce((a, b) => { a[b.name] = convertField({ f: b, tree, override }); return a; @@ -85,7 +94,7 @@ const convertType = (props: ConvertField): JSONSchema7 => { return type; }; const convertField = (props: ConvertField): JSONSchema7 => { - if (props.f.type.options?.includes(Options.array)) { + if (props.f.type.fieldType.type === Options.array) { return { type: 'array', items: convertType(props), diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index 018041d0..f48f8feb 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -1,4 +1,5 @@ -import { Environment, OperationType, ParserField, ParserTree, TypeDefinition } from '../Models'; +import { ParserField, OperationType, ParserTree, TypeDefinition } from 'graphql-js-tree'; +import { Environment } from '../Models'; import { resolveValueTypes } from './templates/resolveValueTypes'; import { resolveModelTypes } from './templates/returnedModelTypes'; import { resolvePropTypeFromRoot } from './templates/returnedPropTypes'; diff --git a/src/TreeToTS/templates/resolveValueTypes.ts b/src/TreeToTS/templates/resolveValueTypes.ts index f971f65e..f200b6e8 100644 --- a/src/TreeToTS/templates/resolveValueTypes.ts +++ b/src/TreeToTS/templates/resolveValueTypes.ts @@ -1,6 +1,13 @@ -import { Options, ParserField } from '@/Models'; -import { Helpers, TypeDefinition, TypeSystemDefinition } from '@/Models/Spec'; import { truthyType } from '@/TreeToTS/templates/truthy'; +import { + ParserField, + Options, + TypeSystemDefinition, + Helpers, + TypeDefinition, + getTypeName, + FieldType, +} from 'graphql-js-tree'; export const VALUETYPES = 'ValueTypes'; @@ -20,42 +27,52 @@ const toTypeScriptPrimitive = (a: GqlTypes): string => typeScriptMap[a] || a; const plusDescription = (description?: string, prefix = ''): string => description ? `${prefix}/** ${description} */\n` : ''; +const resolveFieldType = ( + name: string, + fType: FieldType, + fn: (str: string) => string = (x) => x, + isRequired = false, +): string => { + if (fType.type === Options.name) { + return fn(isRequired ? name : `${name} | undefined | null`); + } + if (fType.type === Options.array) { + return resolveFieldType( + name, + fType.nest, + isRequired ? (x) => `(${fn(x)})[] | undefined | null` : (x) => `(${fn(x)})[]`, + false, + ); + } + if (fType.type === Options.required) { + return resolveFieldType(name, fType.nest, fn, true); + } + throw new Error('Invalid field type'); +}; const resolveArg = (f: ParserField): string => { const { - type: { options }, + type: { fieldType }, } = f; - const isArray = !!(options && options.find((o) => o === Options.array)); - const isArrayRequired = !!(options && options.find((o) => o === Options.arrayRequired)); - const isRequired = !!(options && options.find((o) => o === Options.required)); const isRequiredName = (name: string): string => { - if ((isArray && isArrayRequired) || (isRequired && !isArray)) { + if (fieldType.type === Options.required) { return name; } return `${name}?`; }; - const concatArray = (name: string): string => { - if (isArray) { - if (!isRequired) { - return `(${name} | undefined | null)[]`; - } - return `${name}[]`; - } - if (!isRequired) { - return `${name} | null`; - } - return name; - }; const resolveArgsName = (name: string): string => { - return isRequiredName(name) + ':'; + return isRequiredName(name) + ': '; }; - return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${concatArray( - f.type.name in typeScriptMap ? toTypeScriptPrimitive(f.type.name as GqlTypes) : resolveValueType(f.type.name), + const typeName = getTypeName(f.type.fieldType); + return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${resolveFieldType( + typeName in typeScriptMap ? toTypeScriptPrimitive(typeName as GqlTypes) : resolveValueType(typeName), + f.type.fieldType, )}`; }; const resolveField = (f: ParserField, enumsAndScalars: string[]): string => { const { args } = f; + const typeName = getTypeName(f.type.fieldType); const resolvedTypeName = - f.type.name in typeScriptMap || enumsAndScalars.includes(f.type.name) ? truthyType : resolveValueType(f.type.name); + typeName in typeScriptMap || enumsAndScalars.includes(typeName) ? truthyType : resolveValueType(typeName); if (args && args.length) { return `${f.name}?: [{${args.map(resolveArg).join(',')}},${resolvedTypeName}]`; } @@ -78,7 +95,9 @@ const resolveValueTypeFromRoot = (i: ParserField, rootNodes: ParserField[], enum if (i.data.type === TypeDefinition.UnionTypeDefinition) { return `${plusDescription(i.description)}["${i.name}"]: ${AliasType( `{${i.args - .map((f) => `\t\t["...on ${f.type.name}"] : ${resolveValueType(f.type.name)}`) + .map( + (f) => `\t\t["...on ${getTypeName(f.type.fieldType)}"] : ${VALUETYPES}["${getTypeName(f.type.fieldType)}"]`, + ) .join(',\n')}\n\t\t__typename?: ${truthyType}\n}`, )}`; } diff --git a/src/TreeToTS/templates/returnedModelTypes.ts b/src/TreeToTS/templates/returnedModelTypes.ts index 0c3b1255..3a96e18e 100644 --- a/src/TreeToTS/templates/returnedModelTypes.ts +++ b/src/TreeToTS/templates/returnedModelTypes.ts @@ -1,5 +1,4 @@ -import { Options, ParserField } from '@/Models'; -import { TypeDefinition, TypeSystemDefinition } from '@/Models/Spec'; +import { ParserField, Options, TypeSystemDefinition, TypeDefinition, FieldType, getTypeName } from 'graphql-js-tree'; import { TYPES } from './returnedTypes'; export const MODEL_TYPES = 'ModelTypes'; @@ -16,39 +15,43 @@ const toTypeScriptPrimitive = (a: string): string => typeScriptMap[a] || `${MODE const plusDescription = (description?: string, prefix = ''): string => description ? `${prefix}/** ${description} */\n` : ''; +const resolveFieldType = ( + name: string, + fType: FieldType, + fn: (str: string) => string = (x) => x, + isRequired = false, +): string => { + if (fType.type === Options.name) { + return fn(isRequired ? name : `${name} | undefined`); + } + if (fType.type === Options.array) { + return resolveFieldType( + name, + fType.nest, + isRequired ? (x) => `Array<${fn(x)}> | undefined` : (x) => `Array<${fn(x)}>`, + false, + ); + } + if (fType.type === Options.required) { + return resolveFieldType(name, fType.nest, fn, true); + } + throw new Error('Invalid field type'); +}; + const resolveField = (f: ParserField): string => { - const { - type: { options }, - } = f; - const isArray = !!(options && options.find((o) => o === Options.array)); - const isArrayRequired = !!(options && options.find((o) => o === Options.arrayRequired)); - const isRequired = !!(options && options.find((o) => o === Options.required)); const isRequiredName = (name: string): string => { - if (isArray) { - if (isArrayRequired) { - return name; - } - return `${name}?`; + if (f.type.fieldType.type === Options.required) { + return `${name}:`; } - if (isRequired) { - return name; - } - return `${name}?`; - }; - const concatArray = (name: string): string => { - if (isArray) { - if (!isRequired) { - return `(${name} | undefined)[]`; - } - return `${name}[]`; - } - return name; + return `${name}?:`; }; + const resolveArgsName = (name: string): string => { - return isRequiredName(name) + ':'; + return isRequiredName(name); }; - return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${concatArray( - toTypeScriptPrimitive(f.type.name), + return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${resolveFieldType( + toTypeScriptPrimitive(getTypeName(f.type.fieldType)), + f.type.fieldType, )}`; }; diff --git a/src/TreeToTS/templates/returnedPropTypes.ts b/src/TreeToTS/templates/returnedPropTypes.ts index 709eb149..10b949d3 100644 --- a/src/TreeToTS/templates/returnedPropTypes.ts +++ b/src/TreeToTS/templates/returnedPropTypes.ts @@ -1,20 +1,16 @@ -import { Options, ParserField } from '@/Models'; -import { TypeDefinition, TypeSystemDefinition } from '@/Models/Spec'; +import { ParserField, TypeSystemDefinition, TypeDefinition, compileType } from 'graphql-js-tree'; + const resolveArg = (f: ParserField, tabs = '\t\t\t'): string => { const { - type: { options }, + type: { fieldType }, } = f; - const isArray = !!(options && options.find((o) => o === Options.array)); - const isArrayRequired = !!(options && options.find((o) => o === Options.arrayRequired)); - const isRequired = !!(options && options.find((o) => o === Options.required)); const aTabs = `\n${tabs}\t`; - return `${tabs}${f.name}:{${aTabs}type:"${ - f.type.name - }",${aTabs}array:${!!isArray},${aTabs}arrayRequired:${!!isArrayRequired},${aTabs}required:${!!isRequired}\n${tabs}}`; + + return `${tabs}${f.name}:{${aTabs}type:"${compileType(fieldType)}"\n${tabs}}`; }; -const resolveField = (f: ParserField, resolveArgs = true): string => { +const resolveField = (f: ParserField): string => { const { args, name } = f; - return `\t\t${name}:{\n${args!.map((a) => resolveArg(a)).join(',\n')}\n\t\t}`; + return `\t\t${name}:{\n${args.map((a) => resolveArg(a)).join(',\n')}\n\t\t}`; }; export const resolvePropTypeFromRoot = (i: ParserField): string => { @@ -28,9 +24,9 @@ export const resolvePropTypeFromRoot = (i: ParserField): string => { return `\t${i.name}: "String"`; } if (i.data.type === TypeDefinition.InputObjectTypeDefinition) { - return `\t${i.name}:{\n${i.args!.map((f) => resolveArg(f, '\t\t')).join(',\n')}\n\t}`; + return `\t${i.name}:{\n${i.args.map((f) => resolveArg(f, '\t\t')).join(',\n')}\n\t}`; } - if (!i.args) { + if (!i.args.length) { return ''; } if (i.args.filter((f) => f.args && f.args.length > 0).length === 0) { diff --git a/src/TreeToTS/templates/returnedReturns.ts b/src/TreeToTS/templates/returnedReturns.ts index 002e16ec..8f1cba5c 100644 --- a/src/TreeToTS/templates/returnedReturns.ts +++ b/src/TreeToTS/templates/returnedReturns.ts @@ -1,9 +1,8 @@ -import { ParserField } from '@/Models'; -import { TypeDefinition, TypeSystemDefinition } from '@/Models/Spec'; +import { getTypeName, ParserField, TypeDefinition, TypeSystemDefinition } from 'graphql-js-tree'; const resolveField = (f: ParserField): string => { const { type, name } = f; - return `\t\t${name}:"${type.name}"`; + return `\t\t${name}:"${getTypeName(type.fieldType)}"`; }; export const resolveReturnFromRoot = (i: ParserField, usages?: string[]): string => { diff --git a/src/TreeToTS/templates/returnedTypes.ts b/src/TreeToTS/templates/returnedTypes.ts index 4a6ca0c7..9c3622ca 100644 --- a/src/TreeToTS/templates/returnedTypes.ts +++ b/src/TreeToTS/templates/returnedTypes.ts @@ -1,5 +1,12 @@ -import { Options, ParserField } from '@/Models'; -import { Helpers, TypeDefinition, TypeSystemDefinition } from '@/Models/Spec'; +import { + ParserField, + Options, + TypeDefinition, + TypeSystemDefinition, + Helpers, + FieldType, + getTypeName, +} from 'graphql-js-tree'; export const TYPES = 'GraphQLTypes'; @@ -15,32 +22,36 @@ const toTypeScriptPrimitive = (a: string): string => typeScriptMap[a] || `${TYPE const plusDescription = (description?: string, prefix = ''): string => description ? `${prefix}/** ${description} */\n` : ''; +const resolveFieldType = ( + name: string, + fType: FieldType, + fn: (str: string) => string = (x) => x, + isRequired = false, +): string => { + if (fType.type === Options.name) { + return fn(isRequired ? name : `${name} | undefined`); + } + if (fType.type === Options.array) { + return resolveFieldType( + name, + fType.nest, + isRequired ? (x) => `Array<${fn(x)}> | undefined` : (x) => `Array<${fn(x)}>`, + false, + ); + } + if (fType.type === Options.required) { + return resolveFieldType(name, fType.nest, fn, true); + } + throw new Error('Invalid field type'); +}; + const resolveField = (f: ParserField): string => { - const { - type: { options }, - } = f; - const isArray = !!(options && options.find((o) => o === Options.array)); - const isArrayRequired = !!(options && options.find((o) => o === Options.arrayRequired)); - const isRequired = !!(options && options.find((o) => o === Options.required)); const isNullType = (type: string): string => { - if (isArray && isRequired && isArrayRequired) { - return `: Array<${type}>`; - } - if (isArray && isRequired && !isArrayRequired) { - return `?: Array<${type}>`; - } - if (isArray && !isRequired && isArrayRequired) { - return `: Array<${type} | undefined>`; - } - if (isArray && !isRequired && !isArrayRequired) { - return `?: Array<${type} | undefined>`; - } - if (isRequired) { - return `: ${type}`; - } - return `?: ${type}`; + return f.type.fieldType.type === Options.required ? `: ${type}` : `?: ${type}`; }; - return `${plusDescription(f.description, '\t')}\t${f.name}${isNullType(toTypeScriptPrimitive(f.type.name))}`; + return `${plusDescription(f.description, '\t')}\t${f.name}${isNullType( + resolveFieldType(toTypeScriptPrimitive(getTypeName(f.type.fieldType)), f.type.fieldType), + )}`; }; export const resolveUnions = (rootNodes: ParserField[]): string => { const unionTypes = rootNodes @@ -78,7 +89,11 @@ export const resolveTypeFromRoot = (i: ParserField, rootNodes: ParserField[]): s if (i.data.type === TypeDefinition.UnionTypeDefinition) { return `${plusDescription(i.description)}["${i.name}"]:{ \t__typename:${i.args.length ? i.args.map((ti) => `"${ti.name}"`).join(' | ') : 'never'} -\t${i.args.map((f) => `['...on ${f.type.name}']: '__union' & ${TYPES}["${f.type.name}"];`).join('\n\t')}\n}`; +\t${i.args + .map( + (f) => `['...on ${getTypeName(f.type.fieldType)}']: '__union' & ${TYPES}["${getTypeName(f.type.fieldType)}"];`, + ) + .join('\n\t')}\n}`; } if (i.data.type === TypeDefinition.EnumTypeDefinition) { return `${plusDescription(i.description)}["${i.name}"]: ${i.name}`; diff --git a/src/TreeToTS/templates/typescript/operations.ts b/src/TreeToTS/templates/typescript/operations.ts index 313bd94e..1c01723a 100644 --- a/src/TreeToTS/templates/typescript/operations.ts +++ b/src/TreeToTS/templates/typescript/operations.ts @@ -1,7 +1,8 @@ import { ResolvedOperations } from 'TreeToTS'; -import { OperationType, Environment } from '@/Models'; +import { Environment } from '@/Models'; import { VALUETYPES } from '../resolveValueTypes'; import { TYPES } from '@/TreeToTS/templates/returnedTypes'; +import { OperationType } from 'graphql-js-tree'; export const generateOperationsChaining = ({ query, mutation, subscription }: Partial) => { const allOps: Record = { diff --git a/src/__tests__/TreeToTS/Field.spec.ts b/src/__tests__/TreeToTS/Field.spec.ts index ca3f30c8..1efdf0d2 100644 --- a/src/__tests__/TreeToTS/Field.spec.ts +++ b/src/__tests__/TreeToTS/Field.spec.ts @@ -1,6 +1,5 @@ import { TYPES } from '@/TreeToTS/templates/returnedTypes'; -import { ScalarTypes } from '../../Models'; -import { Parser } from 'graphql-js-tree'; +import { Parser, ScalarTypes } from 'graphql-js-tree'; import { TreeToTS } from '../../TreeToTS'; describe('Fields tests on TypeScript code', () => { @@ -99,6 +98,6 @@ describe('Fields tests on TypeScript code', () => { const tree = Parser.parse(schema); const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`name?:string | null`); + expect(typeScriptCode).toContain(`name?: string | undefined | null`); }); }); diff --git a/src/__tests__/TreeToTS/Interface.spec.ts b/src/__tests__/TreeToTS/Interface.spec.ts index 04d757f3..b7b5e775 100644 --- a/src/__tests__/TreeToTS/Interface.spec.ts +++ b/src/__tests__/TreeToTS/Interface.spec.ts @@ -33,8 +33,7 @@ type Motorcycle implements Vehicle { describe('Interface tests', () => { it('TypeScript: Interfaces with Unique Fields', () => { const tree = Parser.parseAddExtensions(schemaWithUnique); - const typeScriptCode = TreeToTS.resolveTree({ tree }).replace(/\n\t/g, '').replace(/\s/g, ' '); - + const typeScriptCode = TreeToTS.resolveTree({ tree }); // should have wheels as a field on vehicle expect(typeScriptCode).toContain( `["Vehicle"]:AliasType<{ wheels?:boolean; ['...on Car']?: Omit; ['...on Motorcycle']?: Omit; __typename?: boolean }>;`, @@ -53,7 +52,7 @@ describe('Interface tests', () => { it('TypeScript: Interfaces without Unique Fields', () => { const tree = Parser.parseAddExtensions(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }).replace(/\n\t/g, '').replace(/\s/g, ' '); + const typeScriptCode = TreeToTS.resolveTree({ tree }); // should have wheels as a field on vehicle expect(typeScriptCode).toContain( From 1ab7737e17d89cd20602081f54e0b9f156f2fce0 Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 25 Mar 2022 22:54:54 +0100 Subject: [PATCH 03/74] :construction: WIP on new tree --- examples/typescript-node/src/zeus/apollo.ts | 32 +- examples/typescript-node/src/zeus/const.ts | 201 ++-- examples/typescript-node/src/zeus/index.ts | 980 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- examples/typescript-node/zeus.graphql | 116 +-- src/__tests__/TestUtils.ts | 3 + src/__tests__/TreeToTS/Interface.spec.ts | 33 +- 7 files changed, 709 insertions(+), 680 deletions(-) diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 199763f1..81b4cb99 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,24 +1,10 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes } from './index'; -import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; -import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +import { gql, useQuery, useLazyQuery, useSubscription, useMutation } from '@apollo/client'; +import type { QueryHookOptions, LazyQueryHookOptions, SubscriptionHookOptions, MutationHookOptions } from '@apollo/client'; -export function useTypedSubscription( - subscription: Z | ValueTypes[O], - options?: SubscriptionHookOptions>, - operationName?: string, -) { - return useSubscription>(gql(Zeus("subscription",subscription, operationName)), options); -} -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationName?: string, -) { - return useMutation>(gql(Zeus("mutation",mutation, operationName)), options); -} export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, @@ -33,3 +19,17 @@ export function useTypedLazyQuery( ) { return useLazyQuery>(gql(Zeus("query",LazyQuery, operationName)), options); } +export function useTypedSubscription( + subscription: Z | ValueTypes[O], + options?: SubscriptionHookOptions>, + operationName?: string, +) { + return useSubscription>(gql(Zeus("subscription",subscription, operationName)), options); +} +export function useTypedMutation( + mutation: Z | ValueTypes[O], + options?: MutationHookOptions>, + operationName?: string, +) { + return useMutation>(gql(Zeus("mutation",mutation, operationName)), options); +} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 99b88485..398112c2 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,102 +1,103 @@ /* eslint-disable */ -export const AllTypesProps = { - Card: { - attack: { - cardID: { - type: '[String!]!', - }, - }, - }, - Mutation: { - addCard: { - card: { - type: 'createCard!', - }, - }, - }, - Query: { - cardById: { - cardId: { - type: 'String', - }, - }, - }, - createCard: { - skills: { - type: '[SpecialSkills]!', - }, - name: { - type: 'String!', - }, - description: { - type: 'String!', - }, - Children: { - type: 'Int', - }, - Attack: { - type: 'Int!', - }, - Defense: { - type: 'Int!', - }, - }, - SpecialSkills: 'enum', -} as const; -export const ReturnTypes: Record = { - S3Object: { - bucket: 'String', - key: 'String', - region: 'String', - }, - Subscription: { - deck: 'Card', - }, - Card: { - Attack: 'Int', - Children: 'Int', - Defense: 'Int', - attack: 'Card', - cardImage: 'S3Object', - description: 'String', - id: 'ID', - image: 'String', - name: 'String', - skills: 'SpecialSkills', - }, - Nameable: { - '...on Card': 'Card', - '...on SpecialCard': 'SpecialCard', - '...on EffectCard': 'EffectCard', - '...on CardStack': 'CardStack', - name: 'String', - }, - SpecialCard: { - effect: 'String', - name: 'String', - }, - EffectCard: { - effectSize: 'Float', - name: 'String', - }, - Mutation: { - addCard: 'Card', - }, - Query: { - cardById: 'Card', - drawCard: 'Card', - drawChangeCard: 'ChangeCard', - listCards: 'Card', - myStacks: 'CardStack', - nameables: 'Nameable', - }, - CardStack: { - cards: 'Card', - name: 'String', - }, - ChangeCard: { - '...on SpecialCard': 'SpecialCard', - '...on EffectCard': 'EffectCard', - }, -}; +export const AllTypesProps: Record = { + Query:{ + cardById:{ + cardId:{ + type:"String" + } + } + }, + SpecialSkills: "enum", + Card:{ + attack:{ + cardID:{ + type:"[String!]!" + } + } + }, + Mutation:{ + addCard:{ + card:{ + type:"createCard!" + } + } + }, + createCard:{ + Children:{ + type:"Int" + }, + Attack:{ + type:"Int!" + }, + Defense:{ + type:"Int!" + }, + skills:{ + type:"[SpecialSkills]!" + }, + name:{ + type:"String!" + }, + description:{ + type:"String!" + } + } +} + +export const ReturnTypes: Record = { + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" + }, + Nameable:{ + "...on Card": "Card", + "...on SpecialCard": "SpecialCard", + "...on CardStack": "CardStack", + "...on EffectCard": "EffectCard", + name:"String" + }, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" + }, + Card:{ + Attack:"Int", + Children:"Int", + Defense:"Int", + attack:"Card", + cardImage:"S3Object", + description:"String", + id:"ID", + image:"String", + name:"String", + skills:"SpecialSkills" + }, + SpecialCard:{ + effect:"String", + name:"String" + }, + CardStack:{ + cards:"Card", + name:"String" + }, + Subscription:{ + deck:"Card" + }, + EffectCard:{ + effectSize:"Float", + name:"String" + }, + Mutation:{ + addCard:"Card" + } +} \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index d2556cac..420c410f 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -1,292 +1,286 @@ /* eslint-disable */ import { AllTypesProps, ReturnTypes } from './const'; -type ZEUS_INTERFACES = GraphQLTypes['Nameable']; -type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; - -type DictArrayFunction = [Record, Dict]; -type DictValue = boolean | DictArrayFunction | Dict; -type Dict = { - [x: string]: AliasType; -}; +type ZEUS_INTERFACES = GraphQLTypes["Nameable"] +type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - /** Aws S3 File */ - ['S3Object']: AliasType<{ - bucket?: boolean; - key?: boolean; - region?: boolean; - __typename?: boolean; - }>; - ['Subscription']: AliasType<{ - deck?: ValueTypes['Card']; - __typename?: boolean; - }>; - /** Card used in card game
*/ - ['Card']: AliasType<{ - /** The attack power
*/ - Attack?: boolean; - /**
How many children the greek god had
*/ - Children?: boolean; - /** The defense power
*/ - Defense?: boolean; - attack?: [ - { - /** Attacked card/card ids
*/ cardID: string[] | undefined | null; - }, - ValueTypes['Card'], - ]; - /** Put your description here */ - cardImage?: ValueTypes['S3Object']; - /** Description of a card
*/ - description?: boolean; - id?: boolean; - image?: boolean; - /** The name of a card
*/ - name?: boolean; - skills?: boolean; - __typename?: boolean; - }>; - ['Nameable']: AliasType<{ - name?: boolean; - ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on EffectCard']?: Omit; - ['...on CardStack']?: Omit; - __typename?: boolean; - }>; - ['SpecialCard']: AliasType<{ - effect?: boolean; - name?: boolean; - __typename?: boolean; - }>; - ['EffectCard']: AliasType<{ - effectSize?: boolean; - name?: boolean; - __typename?: boolean; - }>; - ['Mutation']: AliasType<{ - addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; - __typename?: boolean; - }>; - ['Query']: AliasType<{ - cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; - /** Draw a card
*/ - drawCard?: ValueTypes['Card']; - drawChangeCard?: ValueTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards?: ValueTypes['Card']; - myStacks?: ValueTypes['CardStack']; - nameables?: ValueTypes['Nameable']; - __typename?: boolean; - }>; - /** Stack of cards */ - ['CardStack']: AliasType<{ - cards?: ValueTypes['Card']; - name?: boolean; - __typename?: boolean; - }>; - /** create card inputs
*/ - ['createCard']: { - /** input skills */ - skills?: ValueTypes['SpecialSkills'][]; - /** The name of a card
*/ - name: string; - /** Description of a card
*/ - description: string; - /**
How many children the greek god had
*/ - Children?: number | undefined | null; - /** The attack power
*/ - Attack: number; - /** The defense power
*/ - Defense: number; - }; - ['SpecialSkills']: SpecialSkills; - ['ChangeCard']: AliasType<{ - ['...on SpecialCard']: ValueTypes['SpecialCard']; - ['...on EffectCard']: ValueTypes['EffectCard']; - __typename?: boolean; - }>; -}; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], + /** Draw a card
*/ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean +}>; + ["Nameable"]:AliasType<{ + name?:boolean; + ['...on Card']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on CardStack']?: Omit; + ['...on EffectCard']?: Omit; + __typename?: boolean +}>; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean, + key?:boolean, + region?:boolean, + __typename?: boolean +}>; + ["SpecialSkills"]:SpecialSkills; + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean +}>; + /** Card used in card game
*/ +["Card"]: AliasType<{ + /** The attack power
*/ + Attack?:boolean, + /**
How many children the greek god had
*/ + Children?:boolean, + /** The defense power
*/ + Defense?:boolean, +attack?: [{ /** Attacked card/card ids
*/ + cardID: (string)[] | undefined | null},ValueTypes["Card"]], + /** Put your description here */ + cardImage?:ValueTypes["S3Object"], + /** Description of a card
*/ + description?:boolean, + id?:boolean, + image?:boolean, + /** The name of a card
*/ + name?:boolean, + skills?:boolean, + __typename?: boolean +}>; + ["SpecialCard"]: AliasType<{ + effect?:boolean, + name?:boolean, + __typename?: boolean +}>; + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean, + __typename?: boolean +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean +}>; + ["EffectCard"]: AliasType<{ + effectSize?:boolean, + name?:boolean, + __typename?: boolean +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean +}>; + /** create card inputs
*/ +["createCard"]: { + /**
How many children the greek god had
*/ + Children?: number | undefined | null, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: (ValueTypes["SpecialSkills"])[], + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string +} + } export type ModelTypes = { - /** Aws S3 File */ - ['S3Object']: { - bucket: string; - key: string; - region: string; - }; - ['Subscription']: { - deck?: Array; - }; - /** Card used in card game
*/ - ['Card']: { - /** The attack power
*/ - Attack: number; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The defense power
*/ - Defense: number; - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array; - /** Put your description here */ - cardImage?: ModelTypes['S3Object'] | undefined; - /** Description of a card
*/ - description: string; - id: string; - image: string; - /** The name of a card
*/ - name: string; - skills?: Array; - }; - ['Nameable']: ModelTypes['Card'] | ModelTypes['SpecialCard'] | ModelTypes['EffectCard'] | ModelTypes['CardStack']; - ['SpecialCard']: { - effect: string; - name: string; - }; - ['EffectCard']: { - effectSize: number; - name: string; - }; - ['Mutation']: { - /** add Card to Cards database
*/ - addCard: ModelTypes['Card']; - }; - ['Query']: { - cardById?: ModelTypes['Card'] | undefined; - /** Draw a card
*/ - drawCard: ModelTypes['Card']; - drawChangeCard: ModelTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards: Array | undefined; - myStacks?: Array; - nameables: Array | undefined; - }; - /** Stack of cards */ - ['CardStack']: { - cards?: Array; - name: string; - }; - /** create card inputs
*/ - ['createCard']: GraphQLTypes['createCard']; - ['SpecialSkills']: GraphQLTypes['SpecialSkills']; - ['ChangeCard']: ModelTypes['SpecialCard'] | ModelTypes['EffectCard']; + ["Query"]: { + cardById?:ModelTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard:ModelTypes["Card"], + drawChangeCard:ModelTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards:Array | undefined, + myStacks?:Array, + nameables:Array | undefined +}; + ["Nameable"]: ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"] | ModelTypes["EffectCard"]; + /** Aws S3 File */ +["S3Object"]: { + bucket:string, + key:string, + region:string +}; + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + /** Card used in card game
*/ +["Card"]: { + /** The attack power
*/ + Attack:number, + /**
How many children the greek god had
*/ + Children?:number | undefined, + /** The defense power
*/ + Defense:number, + /** Attack other cards on the table , returns Cards after attack
*/ + attack?:Array, + /** Put your description here */ + cardImage?:ModelTypes["S3Object"] | undefined, + /** Description of a card
*/ + description:string, + id:string, + image:string, + /** The name of a card
*/ + name:string, + skills?:Array +}; + ["SpecialCard"]: { + effect:string, + name:string +}; + /** Stack of cards */ +["CardStack"]: { + cards?:Array, + name:string }; + ["Subscription"]: { + deck?:Array +}; + ["EffectCard"]: { + effectSize:number, + name:string +}; + ["Mutation"]: { + /** add Card to Cards database
*/ + addCard:ModelTypes["Card"] +}; + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"] + } export type GraphQLTypes = { - /** Aws S3 File */ - ['S3Object']: { - __typename: 'S3Object'; - bucket: string; - key: string; - region: string; - }; - ['Subscription']: { - __typename: 'Subscription'; - deck?: Array; - }; - /** Card used in card game
*/ - ['Card']: { - __typename: 'Card'; - /** The attack power
*/ - Attack: number; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The defense power
*/ - Defense: number; - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array; - /** Put your description here */ - cardImage?: GraphQLTypes['S3Object'] | undefined; - /** Description of a card
*/ - description: string; - id: string; - image: string; - /** The name of a card
*/ - name: string; - skills?: Array; - }; - ['Nameable']: { - __typename: 'Card' | 'SpecialCard' | 'EffectCard' | 'CardStack'; - name: string; - ['...on Card']: '__union' & GraphQLTypes['Card']; - ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; - ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; - ['...on CardStack']: '__union' & GraphQLTypes['CardStack']; - }; - ['SpecialCard']: { - __typename: 'SpecialCard'; - effect: string; - name: string; - }; - ['EffectCard']: { - __typename: 'EffectCard'; - effectSize: number; - name: string; - }; - ['Mutation']: { - __typename: 'Mutation'; - /** add Card to Cards database
*/ - addCard: GraphQLTypes['Card']; - }; - ['Query']: { - __typename: 'Query'; - cardById?: GraphQLTypes['Card'] | undefined; - /** Draw a card
*/ - drawCard: GraphQLTypes['Card']; - drawChangeCard: GraphQLTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards: Array | undefined; - myStacks?: Array; - nameables: Array | undefined; - }; - /** Stack of cards */ - ['CardStack']: { - __typename: 'CardStack'; - cards?: Array; - name: string; - }; - /** create card inputs
*/ - ['createCard']: { - /** input skills */ - skills?: Array; - /** The name of a card
*/ - name: string; - /** Description of a card
*/ - description: string; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The attack power
*/ - Attack: number; - /** The defense power
*/ - Defense: number; - }; - ['SpecialSkills']: SpecialSkills; - ['ChangeCard']: { - __typename: 'SpecialCard' | 'EffectCard'; - ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; - ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; - }; + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array | undefined, + myStacks?: Array, + nameables: Array | undefined +}; + ["Nameable"]: { + __typename:"Card" | "SpecialCard" | "CardStack" | "EffectCard", + name: string + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string +}; + ["SpecialSkills"]: SpecialSkills; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + /** Card used in card game
*/ +["Card"]: { + __typename: "Card", + /** The attack power
*/ + Attack: number, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The defense power
*/ + Defense: number, + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array, + /** Put your description here */ + cardImage?: GraphQLTypes["S3Object"] | undefined, + /** Description of a card
*/ + description: string, + id: string, + image: string, + /** The name of a card
*/ + name: string, + skills?: Array }; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string +}; + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array, + name: string +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array +}; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string +}; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] +}; + /** create card inputs
*/ +["createCard"]: { + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string +} + } export const enum SpecialSkills { - THUNDER = 'THUNDER', - RAIN = 'RAIN', - FIRE = 'FIRE', + THUNDER = "THUNDER", + RAIN = "RAIN", + FIRE = "FIRE" } export class GraphQLError extends Error { - constructor(public response: GraphQLResponse) { - super(''); - console.error(response); - } - toString() { - return 'GraphQL Response Error'; + constructor(public response: GraphQLResponse) { + super(""); + console.error(response); + } + toString() { + return "GraphQL Response Error"; + } } -} + export type UnwrapPromise = T extends Promise ? R : T; -export type ZeusState Promise> = NonNullable>>; +export type ZeusState Promise> = NonNullable< + UnwrapPromise> +>; export type ZeusHook< - T extends (...args: any[]) => Record Promise>, + T extends ( + ...args: any[] + ) => Record Promise>, N extends keyof ReturnType > = ZeusState[N]>; @@ -355,19 +349,30 @@ export type SubscriptionToGraphQL = { }; export type SelectionFunction = (t: T | V) => T; export type fetchOptions = ArgsType; -type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; -export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; -export type FetchFunction = (query: string, variables?: Record) => Promise; +type websocketOptions = typeof WebSocket extends new ( + ...args: infer R +) => WebSocket + ? R + : never; +export type chainOptions = + | [fetchOptions[0], fetchOptions[1] & {websocket?: websocketOptions}] + | [fetchOptions[0]]; +export type FetchFunction = ( + query: string, + variables?: Record, +) => Promise; export type SubscriptionFunction = (query: string) => any; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; + + export const ZeusSelect = () => ((t: any) => t) as SelectionFunction; export const ScalarResolver = (scalar: string, value: any) => { switch (scalar) { case 'String': - return `${JSON.stringify(value)}`; + return `${JSON.stringify(value)}`; case 'Int': return `${value}`; case 'Float': @@ -385,99 +390,96 @@ export const ScalarResolver = (scalar: string, value: any) => { } }; -export const TypesPropsResolver = < - T extends keyof typeof AllTypesProps, - U extends keyof typeof AllTypesProps[T], - L extends keyof typeof AllTypesProps[T][U] ->({ - value, - type, - name, - key, - blockArrays, + +export const TypesPropsResolver = ({ + value, + type, + name, + key, + blockArrays }: { - value: any; - type: T; - name: U; - key?: L; - blockArrays?: boolean; + value: any; + type: string; + name: string; + key?: string; + blockArrays?: boolean; }): string => { - if (value === null) { - return `null`; - } - if (!(type in AllTypesProps)) { - throw new Error(`No type inside type props`); - } - const typeRecord = AllTypesProps[type]; - if (typeRecord === 'enum') { - throw new Error(`AllTypesProps type cannot be a string`); - } - if (!(name in typeRecord)) { - throw new Error(`No type inside type props`); - } - const resolvedValue = key ? typeRecord[name][key] : typeRecord[name]; - if (!resolvedValue) { - throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`); - } - - const typeResolved = resolvedValue.type; - const isArray = resolvedValue.array; - const isArrayRequired = resolvedValue.arrayRequired; - if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { - const isRequired = resolvedValue.required ? '!' : ''; - let t = `${typeResolved}`; - if (isArray) { - if (isRequired) { - t = `${t}!`; - } - t = `[${t}]`; - if (isArrayRequired) { - t = `${t}!`; - } - } else { - if (isRequired) { - t = `${t}!`; - } + if (value === null) { + return `null`; } - return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; - } - if (isArray && !blockArrays) { - return `[${value.map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })).join(',')}]`; - } - const reslovedScalar = ScalarResolver(typeResolved, value); - if (!reslovedScalar) { - const resolvedType = AllTypesProps[typeResolved]; - if (typeof resolvedType === 'object') { - const argsKeys = Object.keys(resolvedType); - return `{${argsKeys - .filter((ak) => value[ak] !== undefined) - .map((ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}`)}}`; + let resolvedValue = AllTypesProps[type][name]; + if (key) { + resolvedValue = resolvedValue[key]; } - return ScalarResolver(AllTypesProps[typeResolved], value) as string; - } - return reslovedScalar; + if (!resolvedValue) { + throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`) + } + const typeResolved = resolvedValue.type; + const isArray = resolvedValue.array; + const isArrayRequired = resolvedValue.arrayRequired; + if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { + const isRequired = resolvedValue.required ? '!' : ''; + let t = `${typeResolved}`; + if (isArray) { + if (isRequired) { + t = `${t}!`; + } + t = `[${t}]`; + if(isArrayRequired){ + t = `${t}!`; + } + }else{ + if (isRequired) { + t = `${t}!`; + } + } + return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; + } + if (isArray && !blockArrays) { + return `[${value + .map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })) + .join(',')}]`; + } + const reslovedScalar = ScalarResolver(typeResolved, value); + if (!reslovedScalar) { + const resolvedType = AllTypesProps[typeResolved]; + if (typeof resolvedType === 'object') { + const argsKeys = Object.keys(resolvedType); + return `{${argsKeys + .filter((ak) => value[ak] !== undefined) + .map( + (ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}` + )}}`; + } + return ScalarResolver(AllTypesProps[typeResolved], value) as string; + } + return reslovedScalar; }; -const isArrayFunction = (parent: string[], a: DictArrayFunction) => { + +const isArrayFunction = ( + parent: string[], + a: any[] +) => { const [values, r] = a; const [mainKey, key, ...keys] = parent; const keyValues = Object.keys(values).filter((k) => typeof values[k] !== 'undefined'); if (!keys.length) { - return keyValues.length > 0 - ? `(${keyValues - .map( - (v) => - `${v}:${TypesPropsResolver({ - value: values[v], - type: mainKey, - name: key, - key: v, - })}`, - ) - .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` - : traverseToSeekArrays(parent, r); - } + return keyValues.length > 0 + ? `(${keyValues + .map( + (v) => + `${v}:${TypesPropsResolver({ + value: values[v], + type: mainKey, + name: key, + key: v + })}` + ) + .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` + : traverseToSeekArrays(parent, r); + } const [typeResolverKey] = keys.splice(keys.length - 1, 1); let valueToResolve = ReturnTypes[mainKey][key]; @@ -494,23 +496,24 @@ const isArrayFunction = (parent: string[], a: DictArrayFunction) => { value: values[v], type: valueToResolve, name: typeResolverKey, - key: v, - })}`, + key: v + })}` ) .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` : traverseToSeekArrays(parent, r); return argumentString; }; + const resolveKV = (k: string, v: boolean | string | { [x: string]: boolean | string }) => typeof v === 'boolean' ? k : typeof v === 'object' ? `${k}{${objectToTree(v)}}` : `${k}${v}`; + const objectToTree = (o: { [x: string]: boolean | string }): string => - `{${Object.keys(o) - .map((k) => `${resolveKV(k, o[k])}`) - .join(' ')}}`; + `{${Object.keys(o).map((k) => `${resolveKV(k, o[k])}`).join(' ')}}`; + -const traverseToSeekArrays = (parent: string[], a?: DictValue): string => { +const traverseToSeekArrays = (parent: string[], a?: any): string => { if (!a) return ''; if (Object.keys(a).length === 0) { return ''; @@ -523,28 +526,30 @@ const traverseToSeekArrays = (parent: string[], a?: DictValue): string => { Object.keys(a) .filter((k) => typeof a[k] !== 'undefined') .forEach((k) => { - if (k === '__alias') { - Object.keys(a[k]).forEach((aliasKey) => { - const aliasOperations = a[k][aliasKey]; - const aliasOperationName = Object.keys(aliasOperations)[0]; - const aliasOperation = aliasOperations[aliasOperationName]; - b[`${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}`] = traverseToSeekArrays( - [...parent, aliasOperationName], - aliasOperation, - ); - }); - } else { - b[k] = traverseToSeekArrays([...parent, k], a[k]); - } - }); + if (k === '__alias') { + Object.keys(a[k]).forEach((aliasKey) => { + const aliasOperations = a[k][aliasKey]; + const aliasOperationName = Object.keys(aliasOperations)[0]; + const aliasOperation = aliasOperations[aliasOperationName]; + b[ + `${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}` + ] = traverseToSeekArrays([...parent, aliasOperationName], aliasOperation); + }); + } else { + b[k] = traverseToSeekArrays([...parent, k], a[k]); + } + }); } else { return ''; } } return objectToTree(b); -}; +}; + + +const buildQuery = (type: string, a?: Record) => + traverseToSeekArrays([type], a); -const buildQuery = (type: string, a?: Dict) => traverseToSeekArrays([type], a); const inspectVariables = (query: string) => { const regex = /\$\b\w*__ZEUS_VAR__\[?[^!^\]^\s^,^\)^\}]*[!]?[\]]?[!]?/g; @@ -570,23 +575,26 @@ const inspectVariables = (query: string) => { .join(', ')})${filteredQuery}`; }; -export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => ( - o: Dict, -) => `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; + +export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => (o: Record) => + `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; + export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription', tName: string) => ( - o: Dict, + o: Record, options?: OperationOptions, -) => - fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r: any) => { - seekForAliases(r); - return r; - }); +) => fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r:any) => { + seekForAliases(r) + return r +}); + export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => ( t: 'query' | 'mutation' | 'subscription', tName: string, -) => (o: Dict, options?: OperationOptions) => fn(queryConstruct(t, tName, options?.operationName)(o)); +) => (o: Record, options?: OperationOptions) => + fn(queryConstruct(t, tName, options?.operationName)(o)); + const seekForAliases = (response: any) => { const traverseAlias = (value: any) => { @@ -617,53 +625,70 @@ const seekForAliases = (response: any) => { } }; + export const $ = (t: TemplateStringsArray): any => `ZEUS_VAR$${t.join('')}`; -export const resolverFor = ( + +export const resolverFor = < + X, + T extends keyof ValueTypes, + Z extends keyof ValueTypes[T], +>( type: T, field: Z, fn: ( args: Required[Z] extends [infer Input, any] ? Input : any, source: any, ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, -) => fn as (args?: any, source?: any) => any; +) => fn as (args?: any,source?: any) => any; + const handleFetchResponse = ( - response: Parameters['then']>[0], Function>>[0], + response: Parameters['then']>[0], Function>>[0] ): Promise => { if (!response.ok) { return new Promise((_, reject) => { - response - .text() - .then((text) => { - try { - reject(JSON.parse(text)); - } catch (err) { - reject(text); - } - }) - .catch(reject); + response.text().then(text => { + try { reject(JSON.parse(text)); } + catch (err) { reject(text); } + }).catch(reject); }); } return response.json(); }; export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { - let fetchFunction; - let queryString = query; - let fetchOptions = options[1] || {}; - try { - fetchFunction = require('node-fetch'); - } catch (error) { - throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); - } - if (fetchOptions.method && fetchOptions.method === 'GET') { + let fetchFunction; + let queryString = query; + let fetchOptions = options[1] || {}; try { - queryString = require('querystring').stringify(query); + fetchFunction = require('node-fetch'); } catch (error) { - throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); + throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); } - return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) + if (fetchOptions.method && fetchOptions.method === 'GET') { + try { + queryString = require('querystring').stringify(query); + } catch (error) { + throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); + } + return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) + .then(handleFetchResponse) + .then((response: GraphQLResponse) => { + if (response.errors) { + throw new GraphQLError(response); + } + return response.data; + }); + } + return fetchFunction(`${options[0]}`, { + body: JSON.stringify({ query: queryString, variables }), + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + ...fetchOptions + }) .then(handleFetchResponse) .then((response: GraphQLResponse) => { if (response.errors) { @@ -671,68 +696,61 @@ export const apiFetch = (options: fetchOptions) => (query: string, variables: Re } return response.data; }); - } - return fetchFunction(`${options[0]}`, { - body: JSON.stringify({ query: queryString, variables }), - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - ...fetchOptions, - }) - .then(handleFetchResponse) - .then((response: GraphQLResponse) => { - if (response.errors) { - throw new GraphQLError(response); - } - return response.data; - }); -}; + }; + -export const apiSubscription = (options: chainOptions) => (query: string) => { - try { - const WebSocket = require('ws'); - const queryString = options[0] + '?query=' + encodeURIComponent(query); - const wsString = queryString.replace('http', 'ws'); - const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; - const webSocketOptions = options[1]?.websocket || [host]; - const ws = new WebSocket(...webSocketOptions); - return { - ws, - on: (e: (args: any) => void) => { - ws.onmessage = (event: any) => { - if (event.data) { - const parsed = JSON.parse(event.data); - const data = parsed.data; - if (data) { - seekForAliases(data); +export const apiSubscription = (options: chainOptions) => ( + query: string, + ) => { + try { + const WebSocket = require('ws'); + const queryString = options[0] + '?query=' + encodeURIComponent(query); + const wsString = queryString.replace('http', 'ws'); + const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; + const webSocketOptions = options[1]?.websocket || [host]; + const ws = new WebSocket(...webSocketOptions); + return { + ws, + on: (e: (args: any) => void) => { + ws.onmessage = (event:any) => { + if(event.data){ + const parsed = JSON.parse(event.data) + const data = parsed.data + if (data) { + seekForAliases(data); + } + return e(data); } - return e(data); - } - }; - }, - off: (e: (args: any) => void) => { - ws.onclose = e; - }, - error: (e: (args: any) => void) => { - ws.onerror = e; - }, - open: (e: () => void) => { - ws.onopen = e; - }, - }; - } catch { - throw new Error('No websockets implemented. Please install ws'); - } -}; + }; + }, + off: (e: (args: any) => void) => { + ws.onclose = e; + }, + error: (e: (args: any) => void) => { + ws.onerror = e; + }, + open: (e: () => void) => { + ws.onopen = e; + }, + }; + } catch { + throw new Error('No websockets implemented. Please install ws'); + } + }; + + const allOperations = { - query: 'Query', - mutation: 'Mutation', - subscription: 'Subscription', -}; + "query": "Query", + "mutation": "Mutation", + "subscription": "Subscription" +} -export type GenericOperation = O extends 'query' ? 'Query' : O extends 'mutation' ? 'Mutation' : 'Subscription'; +export type GenericOperation = O extends 'query' + ? "Query" + : O extends 'mutation' + ? "Mutation" + : "Subscription" export const Thunder = (fn: FetchFunction) => < O extends 'query' | 'mutation' | 'subscription', @@ -742,18 +760,21 @@ export const Thunder = (fn: FetchFunction) => < ) => (o: Z | ValueTypes[R], ops?: OperationOptions) => fullChainConstruct(fn)(operation, allOperations[operation])(o as any, ops) as Promise>; -export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); - +export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); + export const SubscriptionThunder = (fn: SubscriptionFunction) => < O extends 'query' | 'mutation' | 'subscription', R extends keyof ValueTypes = GenericOperation >( operation: O, -) => (o: Z | ValueTypes[R], ops?: OperationOptions) => - fullSubscriptionConstruct(fn)(operation, allOperations[operation])(o as any, ops) as SubscriptionToGraphQL< - Z, - GraphQLTypes[R] - >; +) => ( + o: Z | ValueTypes[R], + ops?: OperationOptions +)=> + fullSubscriptionConstruct(fn)(operation, allOperations[operation])( + o as any, + ops, + ) as SubscriptionToGraphQL; export const Subscription = (...options: chainOptions) => SubscriptionThunder(apiSubscription(options)); export const Zeus = < @@ -766,5 +787,6 @@ export const Zeus = < operationName?: string, ) => queryConstruct(operation, allOperations[operation], operationName)(o as any); export const Selector = (key: T) => ZeusSelect(); + -export const Gql = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql'); +export const Gql = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql') \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 0c742c2d..77ddaaaf 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useMutation, useQuery } from 'react-query'; -import type { UseMutationOptions, UseQueryOptions } from 'react-query'; +import { useQuery, useMutation } from 'react-query'; +import type { UseQueryOptions, UseMutationOptions } from 'react-query'; -export function useTypedMutation>( - mutationKey: string | unknown[], - mutation: TData | ValueTypes[O], - options?: Omit, 'mutationKey' | 'mutationFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); -} export function useTypedQuery>( queryKey: string | unknown[], query: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); } +export function useTypedMutation>( + mutationKey: string | unknown[], + mutation: TData | ValueTypes[O], + options?: Omit, 'mutationKey' | 'mutationFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 6459e7d9..297b3087 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,3 +1,30 @@ +"""""" +type Query { + """""" + cardById(cardId: String): Card + + """Draw a card
""" + drawCard: Card! + + """""" + drawChangeCard: ChangeCard! + + """list All Cards availble
""" + listCards: [Card!]! + + """""" + myStacks: [CardStack!] + + """""" + nameables: [Nameable!]! +} + +"""""" +interface Nameable { + """""" + name: String! +} + """Aws S3 File""" type S3Object { """""" @@ -11,11 +38,20 @@ type S3Object { } """""" -type Subscription { - """""" - deck: [Card!] +enum SpecialSkills { + """Lower enemy defense -5
""" + THUNDER + + """Attack multiple Cards at once
""" + RAIN + + """50% chance to avoid any attack
""" + FIRE } +"""""" +union ChangeCard = SpecialCard | EffectCard + """Card used in card game
""" type Card implements Nameable { """The attack power
""" @@ -52,12 +88,6 @@ type Card implements Nameable { skills: [SpecialSkills!] } -"""""" -interface Nameable { - """""" - name: String! -} - """""" type SpecialCard implements Nameable { """""" @@ -67,62 +97,38 @@ type SpecialCard implements Nameable { name: String! } -"""""" -type EffectCard implements Nameable { +"""Stack of cards""" +type CardStack implements Nameable { """""" - effectSize: Float! + cards: [Card!] """""" name: String! } """""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! +type Subscription { + """""" + deck: [Card!] } """""" -type Query { - """""" - cardById(cardId: String): Card - - """Draw a card
""" - drawCard: Card! - - """""" - drawChangeCard: ChangeCard! - - """list All Cards availble
""" - listCards: [Card!]! - +type EffectCard implements Nameable { """""" - myStacks: [CardStack!] + effectSize: Float! """""" - nameables: [Nameable!]! + name: String! } -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - - """""" - name: String! +"""""" +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! } """create card inputs
""" input createCard { - """input skills""" - skills: [SpecialSkills!] - - """The name of a card
""" - name: String! - - """Description of a card
""" - description: String! - """
How many children the greek god had
""" Children: Int @@ -131,23 +137,17 @@ input createCard { """The defense power
""" Defense: Int! -} -"""""" -enum SpecialSkills { - """Lower enemy defense -5
""" - THUNDER + """input skills""" + skills: [SpecialSkills!] - """Attack multiple Cards at once
""" - RAIN + """The name of a card
""" + name: String! - """50% chance to avoid any attack
""" - FIRE + """Description of a card
""" + description: String! } -"""""" -union ChangeCard = SpecialCard | EffectCard - schema{ query: Query, mutation: Mutation, diff --git a/src/__tests__/TestUtils.ts b/src/__tests__/TestUtils.ts index 4cc77624..8f4b42ed 100644 --- a/src/__tests__/TestUtils.ts +++ b/src/__tests__/TestUtils.ts @@ -1 +1,4 @@ export const trimGraphQL = (s: string) => s.replace(/\s\s+/g, ' ').replace(/(\r\n|\n|\r)/gm, ''); + +export const replSpace = (baseString: string) => (s: string) => + expect(baseString.replace(/\s+/g, '')).toContain(s.replace(/\s+/g, '')); diff --git a/src/__tests__/TreeToTS/Interface.spec.ts b/src/__tests__/TreeToTS/Interface.spec.ts index b7b5e775..0a184d9d 100644 --- a/src/__tests__/TreeToTS/Interface.spec.ts +++ b/src/__tests__/TreeToTS/Interface.spec.ts @@ -1,3 +1,4 @@ +import { replSpace } from '@/__tests__/TestUtils'; import { Parser } from 'graphql-js-tree'; import { TreeToTS } from '../../TreeToTS'; @@ -33,38 +34,40 @@ type Motorcycle implements Vehicle { describe('Interface tests', () => { it('TypeScript: Interfaces with Unique Fields', () => { const tree = Parser.parseAddExtensions(schemaWithUnique); - const typeScriptCode = TreeToTS.resolveTree({ tree }); + const m = replSpace(TreeToTS.resolveTree({ tree })); // should have wheels as a field on vehicle - expect(typeScriptCode).toContain( - `["Vehicle"]:AliasType<{ wheels?:boolean; ['...on Car']?: Omit; ['...on Motorcycle']?: Omit; __typename?: boolean }>;`, + m( + `["Vehicle"]:AliasType<{ + wheels?:boolean; ['...on Car']?: Omit; + ['...on Motorcycle']?: Omit; + __typename?: boolean + }>;`, ); // since wheels already exists on vehicle and is common, should not be on subtypes - expect(typeScriptCode).toContain(`["Car"]: AliasType<{wheels?:boolean,color?:boolean, __typename?: boolean }>`); - expect(typeScriptCode).toContain( - `["Motorcycle"]: AliasType<{wheels?:boolean,visor?:boolean, __typename?: boolean }>`, - ); + m(`["Car"]: AliasType<{wheels?:boolean,color?:boolean, __typename?: boolean }>`); + m(`["Motorcycle"]: AliasType<{wheels?:boolean,visor?:boolean, __typename?: boolean }>`); // full type should have all the fields - expect(typeScriptCode).toContain(`["Car"]: {__typename: "Car",wheels?: number,color?: string }`); - expect(typeScriptCode).toContain(`["Motorcycle"]: {__typename: "Motorcycle",wheels?: number,visor?: boolean }`); + m(`["Car"]: {__typename: "Car",wheels?: number | undefined,color?: string | undefined }`); + m(`["Motorcycle"]: {__typename: "Motorcycle",wheels?: number | undefined,visor?: boolean | undefined}`); }); it('TypeScript: Interfaces without Unique Fields', () => { const tree = Parser.parseAddExtensions(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); + const m = replSpace(TreeToTS.resolveTree({ tree })); // should have wheels as a field on vehicle - expect(typeScriptCode).toContain( + m( `["Vehicle"]:AliasType<{ wheels?:boolean; ['...on Car']?: Omit; ['...on Motorcycle']?: Omit; __typename?: boolean }>;`, ); // should support an empty subtype - expect(typeScriptCode).toContain(`["Car"]: AliasType<{wheels?:boolean, __typename?: boolean }>`); - expect(typeScriptCode).toContain(`["Motorcycle"]: AliasType<{wheels?:boolean, __typename?: boolean }>`); + m(`["Car"]: AliasType<{wheels?:boolean, __typename?: boolean }>`); + m(`["Motorcycle"]: AliasType<{wheels?:boolean, __typename?: boolean }>`); // full type should have all the fields - expect(typeScriptCode).toContain(`["Car"]: {__typename: "Car",wheels?: number }`); - expect(typeScriptCode).toContain(`["Motorcycle"]: {__typename: "Motorcycle",wheels?: number }`); + m(`["Car"]: {__typename: "Car",wheels?: number | undefined }`); + m(`["Motorcycle"]: {__typename: "Motorcycle",wheels?: number | undefined }`); }); }); From 32472d05ea38b1eb08574aca593f60b1d63d9a85 Mon Sep 17 00:00:00 2001 From: aexol Date: Mon, 28 Mar 2022 15:43:08 +0200 Subject: [PATCH 04/74] :construction: Work in progress --- .../src/zeus/index.ts | 3214 ++++++++--------- examples/typescript-node/src/zeus/apollo.ts | 32 +- examples/typescript-node/src/zeus/const.ts | 88 +- examples/typescript-node/src/zeus/index.ts | 290 +- .../typescript-node/src/zeus/reactQuery.ts | 24 +- examples/typescript-node/zeus.graphql | 128 +- src/TreeToTS/functions/resolverFor.ts | 2 +- src/TreeToTS/index.ts | 8 +- src/TreeToTS/templates/modelTypes/index.ts | 42 + src/TreeToTS/templates/resolveValueTypes.ts | 135 - src/TreeToTS/templates/returnedModelTypes.ts | 92 - src/TreeToTS/templates/returnedTypes.ts | 129 - .../templates/returnedTypes/enum.spec.ts | 57 + src/TreeToTS/templates/returnedTypes/enum.ts | 11 + src/TreeToTS/templates/returnedTypes/index.ts | 59 + .../returnedTypes/interfaces.spec.ts | 65 + .../templates/returnedTypes/interfaces.ts | 10 + .../templates/returnedTypes/models.ts | 3 + .../returnedTypes/unionMember.spec.ts | 25 + .../templates/returnedTypes/unionMember.ts | 5 + .../templates/returnedTypes/unions.spec.ts | 65 + .../templates/returnedTypes/unions.ts | 10 + .../templates/shared/description.spec.ts | 6 + src/TreeToTS/templates/shared/description.ts | 2 + src/TreeToTS/templates/shared/field.spec.ts | 61 + src/TreeToTS/templates/shared/field.ts | 35 + .../templates/shared/primitive.spec.ts | 28 + src/TreeToTS/templates/shared/primitive.ts | 11 + .../templates/typescript/operations.ts | 4 +- src/TreeToTS/templates/valueTypes/arg.ts | 61 + src/TreeToTS/templates/valueTypes/index.ts | 63 + src/TreeToTS/templates/valueTypes/models.ts | 1 + src/__tests__/TreeToTS/Chain.spec.ts | 5 +- src/__tests__/TreeToTS/EsModule.spec.ts | 5 +- src/__tests__/TreeToTS/Extend.spec.ts | 5 +- src/__tests__/TreeToTS/Field.spec.ts | 41 +- src/__tests__/TreeToTS/Selectors.spec.ts | 5 +- src/__tests__/TreeToTS/Thunder.spec.ts | 17 +- .../TreeToTS/TypeDefinitions.spec.ts | 29 +- 39 files changed, 2573 insertions(+), 2300 deletions(-) create mode 100644 src/TreeToTS/templates/modelTypes/index.ts delete mode 100644 src/TreeToTS/templates/resolveValueTypes.ts delete mode 100644 src/TreeToTS/templates/returnedModelTypes.ts delete mode 100644 src/TreeToTS/templates/returnedTypes.ts create mode 100644 src/TreeToTS/templates/returnedTypes/enum.spec.ts create mode 100644 src/TreeToTS/templates/returnedTypes/enum.ts create mode 100644 src/TreeToTS/templates/returnedTypes/index.ts create mode 100644 src/TreeToTS/templates/returnedTypes/interfaces.spec.ts create mode 100644 src/TreeToTS/templates/returnedTypes/interfaces.ts create mode 100644 src/TreeToTS/templates/returnedTypes/models.ts create mode 100644 src/TreeToTS/templates/returnedTypes/unionMember.spec.ts create mode 100644 src/TreeToTS/templates/returnedTypes/unionMember.ts create mode 100644 src/TreeToTS/templates/returnedTypes/unions.spec.ts create mode 100644 src/TreeToTS/templates/returnedTypes/unions.ts create mode 100644 src/TreeToTS/templates/shared/description.spec.ts create mode 100644 src/TreeToTS/templates/shared/description.ts create mode 100644 src/TreeToTS/templates/shared/field.spec.ts create mode 100644 src/TreeToTS/templates/shared/field.ts create mode 100644 src/TreeToTS/templates/shared/primitive.spec.ts create mode 100644 src/TreeToTS/templates/shared/primitive.ts create mode 100644 src/TreeToTS/templates/valueTypes/arg.ts create mode 100644 src/TreeToTS/templates/valueTypes/index.ts create mode 100644 src/TreeToTS/templates/valueTypes/models.ts diff --git a/examples/typescript-node-big-schema/src/zeus/index.ts b/examples/typescript-node-big-schema/src/zeus/index.ts index 67d70549..46916cf0 100644 --- a/examples/typescript-node-big-schema/src/zeus/index.ts +++ b/examples/typescript-node-big-schema/src/zeus/index.ts @@ -6779,69 +6779,69 @@ export type ModelTypes = { ["_text_comparison_exp"]: GraphQLTypes["_text_comparison_exp"]; /** columns and relationships of "booking" */ ["booking"]: { - bookedAt?:ModelTypes["timestamptz"] | undefined, - bookerName?:string | undefined, - bookingChannel?:ModelTypes["booking_channel_enum"] | undefined, - checkIn?:ModelTypes["timestamptz"] | undefined, - checkOut?:ModelTypes["timestamptz"] | undefined, - confirmationCode?:string | undefined, + bookedAt?: GraphQLTypes["timestamptz"] | undefined, + bookerName?: string | undefined, + bookingChannel?: GraphQLTypes["booking_channel_enum"] | undefined, + checkIn?: GraphQLTypes["timestamptz"] | undefined, + checkOut?: GraphQLTypes["timestamptz"] | undefined, + confirmationCode?: string | undefined, /** An object relationship */ - connection?:ModelTypes["connection"] | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - currency?:ModelTypes["currency_enum"] | undefined, + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + currency?: GraphQLTypes["currency_enum"] | undefined, /** An object relationship */ - entity?:ModelTypes["entity"] | undefined, - entityId?:ModelTypes["uuid"] | undefined, - guestName?:string | undefined, - guests?:number | undefined, - id:ModelTypes["uuid"], - isOTA?:boolean | undefined, + entity?: GraphQLTypes["entity"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + guestName?: string | undefined, + guests?: number | undefined, + id: GraphQLTypes["uuid"], + isOTA?: boolean | undefined, /** An array relationship */ - lines:Array | undefined, + lines: Array, /** An aggregate relationship */ - lines_aggregate:ModelTypes["line_aggregate"], - metadata?:ModelTypes["jsonb"] | undefined, - nights?:number | undefined, + lines_aggregate: GraphQLTypes["line_aggregate"], + metadata?: GraphQLTypes["jsonb"] | undefined, + nights?: number | undefined, /** An object relationship */ - otaBooking?:ModelTypes["booking"] | undefined, - otaBookingId?:ModelTypes["uuid"] | undefined, + otaBooking?: GraphQLTypes["booking"] | undefined, + otaBookingId?: GraphQLTypes["uuid"] | undefined, /** An array relationship */ - relatedBookings:Array | undefined, + relatedBookings: Array, /** An aggregate relationship */ - relatedBookings_aggregate:ModelTypes["booking_aggregate"], - status?:ModelTypes["booking_status_enum"] | undefined, + relatedBookings_aggregate: GraphQLTypes["booking_aggregate"], + status?: GraphQLTypes["booking_status_enum"] | undefined, /** An array relationship */ - tags:Array | undefined, + tags: Array, /** An aggregate relationship */ - tags_aggregate:ModelTypes["tag_aggregate"], + tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ - team?:ModelTypes["team"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - uniqueRef?:string | undefined, + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, /** An object relationship */ - unit?:ModelTypes["unit"] | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + unit?: GraphQLTypes["unit"] | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "booking" */ ["booking_aggregate"]: { - aggregate?:ModelTypes["booking_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["booking_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "booking" */ ["booking_aggregate_fields"]: { - avg?:ModelTypes["booking_avg_fields"] | undefined, - count:number, - max?:ModelTypes["booking_max_fields"] | undefined, - min?:ModelTypes["booking_min_fields"] | undefined, - stddev?:ModelTypes["booking_stddev_fields"] | undefined, - stddev_pop?:ModelTypes["booking_stddev_pop_fields"] | undefined, - stddev_samp?:ModelTypes["booking_stddev_samp_fields"] | undefined, - sum?:ModelTypes["booking_sum_fields"] | undefined, - var_pop?:ModelTypes["booking_var_pop_fields"] | undefined, - var_samp?:ModelTypes["booking_var_samp_fields"] | undefined, - variance?:ModelTypes["booking_variance_fields"] | undefined + avg?: GraphQLTypes["booking_avg_fields"] | undefined, + count: number, + max?: GraphQLTypes["booking_max_fields"] | undefined, + min?: GraphQLTypes["booking_min_fields"] | undefined, + stddev?: GraphQLTypes["booking_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["booking_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["booking_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["booking_sum_fields"] | undefined, + var_pop?: GraphQLTypes["booking_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["booking_var_samp_fields"] | undefined, + variance?: GraphQLTypes["booking_variance_fields"] | undefined }; /** order by aggregate values of table "booking" */ ["booking_aggregate_order_by"]: GraphQLTypes["booking_aggregate_order_by"]; @@ -6851,8 +6851,8 @@ export type ModelTypes = { ["booking_arr_rel_insert_input"]: GraphQLTypes["booking_arr_rel_insert_input"]; /** aggregate avg on columns */ ["booking_avg_fields"]: { - guests?:number | undefined, - nights?:number | undefined + guests?: number | undefined, + nights?: number | undefined }; /** order by avg() on columns of table "booking" */ ["booking_avg_order_by"]: GraphQLTypes["booking_avg_order_by"]; @@ -6860,18 +6860,18 @@ export type ModelTypes = { ["booking_bool_exp"]: GraphQLTypes["booking_bool_exp"]; /** columns and relationships of "booking_channel" */ ["booking_channel"]: { - name:string + name: string }; /** aggregated selection of "booking_channel" */ ["booking_channel_aggregate"]: { - aggregate?:ModelTypes["booking_channel_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["booking_channel_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "booking_channel" */ ["booking_channel_aggregate_fields"]: { - count:number, - max?:ModelTypes["booking_channel_max_fields"] | undefined, - min?:ModelTypes["booking_channel_min_fields"] | undefined + count: number, + max?: GraphQLTypes["booking_channel_max_fields"] | undefined, + min?: GraphQLTypes["booking_channel_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "booking_channel". All fields are combined with a logical 'AND'. */ ["booking_channel_bool_exp"]: GraphQLTypes["booking_channel_bool_exp"]; @@ -6884,18 +6884,18 @@ export type ModelTypes = { ["booking_channel_insert_input"]: GraphQLTypes["booking_channel_insert_input"]; /** aggregate max on columns */ ["booking_channel_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["booking_channel_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "booking_channel" */ ["booking_channel_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "booking_channel" */ ["booking_channel_on_conflict"]: GraphQLTypes["booking_channel_on_conflict"]; @@ -6924,54 +6924,54 @@ end). throws an error if top level container is not an array */ ["booking_insert_input"]: GraphQLTypes["booking_insert_input"]; /** aggregate max on columns */ ["booking_max_fields"]: { - bookedAt?:ModelTypes["timestamptz"] | undefined, - bookerName?:string | undefined, - checkIn?:ModelTypes["timestamptz"] | undefined, - checkOut?:ModelTypes["timestamptz"] | undefined, - confirmationCode?:string | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - entityId?:ModelTypes["uuid"] | undefined, - guestName?:string | undefined, - guests?:number | undefined, - id?:ModelTypes["uuid"] | undefined, - nights?:number | undefined, - otaBookingId?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + bookedAt?: GraphQLTypes["timestamptz"] | undefined, + bookerName?: string | undefined, + checkIn?: GraphQLTypes["timestamptz"] | undefined, + checkOut?: GraphQLTypes["timestamptz"] | undefined, + confirmationCode?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + guestName?: string | undefined, + guests?: number | undefined, + id?: GraphQLTypes["uuid"] | undefined, + nights?: number | undefined, + otaBookingId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "booking" */ ["booking_max_order_by"]: GraphQLTypes["booking_max_order_by"]; /** aggregate min on columns */ ["booking_min_fields"]: { - bookedAt?:ModelTypes["timestamptz"] | undefined, - bookerName?:string | undefined, - checkIn?:ModelTypes["timestamptz"] | undefined, - checkOut?:ModelTypes["timestamptz"] | undefined, - confirmationCode?:string | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - entityId?:ModelTypes["uuid"] | undefined, - guestName?:string | undefined, - guests?:number | undefined, - id?:ModelTypes["uuid"] | undefined, - nights?:number | undefined, - otaBookingId?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + bookedAt?: GraphQLTypes["timestamptz"] | undefined, + bookerName?: string | undefined, + checkIn?: GraphQLTypes["timestamptz"] | undefined, + checkOut?: GraphQLTypes["timestamptz"] | undefined, + confirmationCode?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + guestName?: string | undefined, + guests?: number | undefined, + id?: GraphQLTypes["uuid"] | undefined, + nights?: number | undefined, + otaBookingId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "booking" */ ["booking_min_order_by"]: GraphQLTypes["booking_min_order_by"]; /** response of any mutation on the table "booking" */ ["booking_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "booking" */ ["booking_obj_rel_insert_input"]: GraphQLTypes["booking_obj_rel_insert_input"]; @@ -6992,29 +6992,29 @@ end). throws an error if top level container is not an array */ ["booking_status_enum_comparison_exp"]: GraphQLTypes["booking_status_enum_comparison_exp"]; /** aggregate stddev on columns */ ["booking_stddev_fields"]: { - guests?:number | undefined, - nights?:number | undefined + guests?: number | undefined, + nights?: number | undefined }; /** order by stddev() on columns of table "booking" */ ["booking_stddev_order_by"]: GraphQLTypes["booking_stddev_order_by"]; /** aggregate stddev_pop on columns */ ["booking_stddev_pop_fields"]: { - guests?:number | undefined, - nights?:number | undefined + guests?: number | undefined, + nights?: number | undefined }; /** order by stddev_pop() on columns of table "booking" */ ["booking_stddev_pop_order_by"]: GraphQLTypes["booking_stddev_pop_order_by"]; /** aggregate stddev_samp on columns */ ["booking_stddev_samp_fields"]: { - guests?:number | undefined, - nights?:number | undefined + guests?: number | undefined, + nights?: number | undefined }; /** order by stddev_samp() on columns of table "booking" */ ["booking_stddev_samp_order_by"]: GraphQLTypes["booking_stddev_samp_order_by"]; /** aggregate sum on columns */ ["booking_sum_fields"]: { - guests?:number | undefined, - nights?:number | undefined + guests?: number | undefined, + nights?: number | undefined }; /** order by sum() on columns of table "booking" */ ["booking_sum_order_by"]: GraphQLTypes["booking_sum_order_by"]; @@ -7022,39 +7022,39 @@ end). throws an error if top level container is not an array */ ["booking_update_column"]: GraphQLTypes["booking_update_column"]; /** aggregate var_pop on columns */ ["booking_var_pop_fields"]: { - guests?:number | undefined, - nights?:number | undefined + guests?: number | undefined, + nights?: number | undefined }; /** order by var_pop() on columns of table "booking" */ ["booking_var_pop_order_by"]: GraphQLTypes["booking_var_pop_order_by"]; /** aggregate var_samp on columns */ ["booking_var_samp_fields"]: { - guests?:number | undefined, - nights?:number | undefined + guests?: number | undefined, + nights?: number | undefined }; /** order by var_samp() on columns of table "booking" */ ["booking_var_samp_order_by"]: GraphQLTypes["booking_var_samp_order_by"]; /** aggregate variance on columns */ ["booking_variance_fields"]: { - guests?:number | undefined, - nights?:number | undefined + guests?: number | undefined, + nights?: number | undefined }; /** order by variance() on columns of table "booking" */ ["booking_variance_order_by"]: GraphQLTypes["booking_variance_order_by"]; /** columns and relationships of "booking_status" */ ["bookingStatus"]: { - name:string + name: string }; /** aggregated selection of "booking_status" */ ["bookingStatus_aggregate"]: { - aggregate?:ModelTypes["bookingStatus_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["bookingStatus_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "booking_status" */ ["bookingStatus_aggregate_fields"]: { - count:number, - max?:ModelTypes["bookingStatus_max_fields"] | undefined, - min?:ModelTypes["bookingStatus_min_fields"] | undefined + count: number, + max?: GraphQLTypes["bookingStatus_max_fields"] | undefined, + min?: GraphQLTypes["bookingStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "booking_status". All fields are combined with a logical 'AND'. */ ["bookingStatus_bool_exp"]: GraphQLTypes["bookingStatus_bool_exp"]; @@ -7064,18 +7064,18 @@ end). throws an error if top level container is not an array */ ["bookingStatus_insert_input"]: GraphQLTypes["bookingStatus_insert_input"]; /** aggregate max on columns */ ["bookingStatus_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["bookingStatus_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "booking_status" */ ["bookingStatus_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "booking_status" */ ["bookingStatus_on_conflict"]: GraphQLTypes["bookingStatus_on_conflict"]; @@ -7093,18 +7093,18 @@ end). throws an error if top level container is not an array */ ["Boolean_comparison_exp"]: GraphQLTypes["Boolean_comparison_exp"]; /** columns and relationships of "classification" */ ["classification"]: { - name:string + name: string }; /** aggregated selection of "classification" */ ["classification_aggregate"]: { - aggregate?:ModelTypes["classification_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["classification_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "classification" */ ["classification_aggregate_fields"]: { - count:number, - max?:ModelTypes["classification_max_fields"] | undefined, - min?:ModelTypes["classification_min_fields"] | undefined + count: number, + max?: GraphQLTypes["classification_max_fields"] | undefined, + min?: GraphQLTypes["classification_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "classification". All fields are combined with a logical 'AND'. */ ["classification_bool_exp"]: GraphQLTypes["classification_bool_exp"]; @@ -7117,18 +7117,18 @@ end). throws an error if top level container is not an array */ ["classification_insert_input"]: GraphQLTypes["classification_insert_input"]; /** aggregate max on columns */ ["classification_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["classification_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "classification" */ ["classification_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "classification" */ ["classification_on_conflict"]: GraphQLTypes["classification_on_conflict"]; @@ -7145,61 +7145,61 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "connection" */ ["connection"]: { /** An array relationship */ - bookings:Array | undefined, + bookings: Array, /** An aggregate relationship */ - bookings_aggregate:ModelTypes["booking_aggregate"], - createdAt:ModelTypes["timestamptz"], - credentials?:ModelTypes["jsonb"] | undefined, + bookings_aggregate: GraphQLTypes["booking_aggregate"], + createdAt: GraphQLTypes["timestamptz"], + credentials?: GraphQLTypes["jsonb"] | undefined, /** An array relationship */ - entities:Array | undefined, + entities: Array, /** An aggregate relationship */ - entities_aggregate:ModelTypes["entity_aggregate"], - id:ModelTypes["uuid"], + entities_aggregate: GraphQLTypes["entity_aggregate"], + id: GraphQLTypes["uuid"], /** An object relationship */ - integration:ModelTypes["integration"], - integrationId:ModelTypes["uuid"], + integration: GraphQLTypes["integration"], + integrationId: GraphQLTypes["uuid"], /** An array relationship */ - jobs:Array | undefined, + jobs: Array, /** An aggregate relationship */ - jobs_aggregate:ModelTypes["job_aggregate"], + jobs_aggregate: GraphQLTypes["job_aggregate"], /** An array relationship */ - lines:Array | undefined, + lines: Array, /** An aggregate relationship */ - lines_aggregate:ModelTypes["line_aggregate"], + lines_aggregate: GraphQLTypes["line_aggregate"], /** An array relationship */ - metrics:Array | undefined, + metrics: Array, /** An aggregate relationship */ - metrics_aggregate:ModelTypes["metric_aggregate"], - name:string, + metrics_aggregate: GraphQLTypes["metric_aggregate"], + name: string, /** An array relationship */ - payments:Array | undefined, + payments: Array, /** An aggregate relationship */ - payments_aggregate:ModelTypes["payment_aggregate"], - persistentState?:ModelTypes["jsonb"] | undefined, - status?:string | undefined, + payments_aggregate: GraphQLTypes["payment_aggregate"], + persistentState?: GraphQLTypes["jsonb"] | undefined, + status?: string | undefined, /** An array relationship */ - tags:Array | undefined, + tags: Array, /** An aggregate relationship */ - tags_aggregate:ModelTypes["tag_aggregate"], + tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ - team:ModelTypes["team"], - teamId:ModelTypes["uuid"], + team: GraphQLTypes["team"], + teamId: GraphQLTypes["uuid"], /** An array relationship */ - units:Array | undefined, + units: Array, /** An aggregate relationship */ - units_aggregate:ModelTypes["unit_aggregate"], - webhookKey?:string | undefined + units_aggregate: GraphQLTypes["unit_aggregate"], + webhookKey?: string | undefined }; /** aggregated selection of "connection" */ ["connection_aggregate"]: { - aggregate?:ModelTypes["connection_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["connection_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "connection" */ ["connection_aggregate_fields"]: { - count:number, - max?:ModelTypes["connection_max_fields"] | undefined, - min?:ModelTypes["connection_min_fields"] | undefined + count: number, + max?: GraphQLTypes["connection_max_fields"] | undefined, + min?: GraphQLTypes["connection_min_fields"] | undefined }; /** order by aggregate values of table "connection" */ ["connection_aggregate_order_by"]: GraphQLTypes["connection_aggregate_order_by"]; @@ -7222,34 +7222,34 @@ end). throws an error if top level container is not an array */ ["connection_insert_input"]: GraphQLTypes["connection_insert_input"]; /** aggregate max on columns */ ["connection_max_fields"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - integrationId?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - status?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - webhookKey?:string | undefined + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + webhookKey?: string | undefined }; /** order by max() on columns of table "connection" */ ["connection_max_order_by"]: GraphQLTypes["connection_max_order_by"]; /** aggregate min on columns */ ["connection_min_fields"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - integrationId?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - status?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - webhookKey?:string | undefined + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + webhookKey?: string | undefined }; /** order by min() on columns of table "connection" */ ["connection_min_order_by"]: GraphQLTypes["connection_min_order_by"]; /** response of any mutation on the table "connection" */ ["connection_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "connection" */ ["connection_obj_rel_insert_input"]: GraphQLTypes["connection_obj_rel_insert_input"]; @@ -7269,18 +7269,18 @@ end). throws an error if top level container is not an array */ ["connection_update_column"]: GraphQLTypes["connection_update_column"]; /** columns and relationships of "currency" */ ["currency"]: { - name:string + name: string }; /** aggregated selection of "currency" */ ["currency_aggregate"]: { - aggregate?:ModelTypes["currency_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["currency_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "currency" */ ["currency_aggregate_fields"]: { - count:number, - max?:ModelTypes["currency_max_fields"] | undefined, - min?:ModelTypes["currency_min_fields"] | undefined + count: number, + max?: GraphQLTypes["currency_max_fields"] | undefined, + min?: GraphQLTypes["currency_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "currency". All fields are combined with a logical 'AND'. */ ["currency_bool_exp"]: GraphQLTypes["currency_bool_exp"]; @@ -7293,18 +7293,18 @@ end). throws an error if top level container is not an array */ ["currency_insert_input"]: GraphQLTypes["currency_insert_input"]; /** aggregate max on columns */ ["currency_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["currency_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "currency" */ ["currency_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "currency" */ ["currency_on_conflict"]: GraphQLTypes["currency_on_conflict"]; @@ -7321,58 +7321,58 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "entity" */ ["entity"]: { /** An array relationship */ - bookings:Array | undefined, + bookings: Array, /** An aggregate relationship */ - bookings_aggregate:ModelTypes["booking_aggregate"], + bookings_aggregate: GraphQLTypes["booking_aggregate"], /** An object relationship */ - connection:ModelTypes["connection"], - connectionId:ModelTypes["uuid"], - createdAt:ModelTypes["timestamptz"], - description:string, - diffJson?:ModelTypes["jsonb"] | undefined, - hash?:string | undefined, - id:ModelTypes["uuid"], + connection: GraphQLTypes["connection"], + connectionId: GraphQLTypes["uuid"], + createdAt: GraphQLTypes["timestamptz"], + description: string, + diffJson?: GraphQLTypes["jsonb"] | undefined, + hash?: string | undefined, + id: GraphQLTypes["uuid"], /** An object relationship */ - job?:ModelTypes["job"] | undefined, - jobId?:ModelTypes["uuid"] | undefined, - json?:ModelTypes["jsonb"] | undefined, - normalizedJson?:ModelTypes["jsonb"] | undefined, - normalizedType?:ModelTypes["normalized_type_enum"] | undefined, - parsedAt?:ModelTypes["timestamptz"] | undefined, + job?: GraphQLTypes["job"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + json?: GraphQLTypes["jsonb"] | undefined, + normalizedJson?: GraphQLTypes["jsonb"] | undefined, + normalizedType?: GraphQLTypes["normalized_type_enum"] | undefined, + parsedAt?: GraphQLTypes["timestamptz"] | undefined, /** An array relationship */ - payments:Array | undefined, + payments: Array, /** An aggregate relationship */ - payments_aggregate:ModelTypes["payment_aggregate"], + payments_aggregate: GraphQLTypes["payment_aggregate"], /** An object relationship */ - predecessorEntity?:ModelTypes["entity"] | undefined, - predecessorEntityId?:ModelTypes["uuid"] | undefined, - status:ModelTypes["entity_status_enum"], - statusText?:string | undefined, + predecessorEntity?: GraphQLTypes["entity"] | undefined, + predecessorEntityId?: GraphQLTypes["uuid"] | undefined, + status: GraphQLTypes["entity_status_enum"], + statusText?: string | undefined, /** An array relationship */ - successorEntities:Array | undefined, + successorEntities: Array, /** An aggregate relationship */ - successorEntities_aggregate:ModelTypes["entity_aggregate"], + successorEntities_aggregate: GraphQLTypes["entity_aggregate"], /** An object relationship */ - team?:ModelTypes["team"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type:string, - uniqueRef?:string | undefined, + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type: string, + uniqueRef?: string | undefined, /** An array relationship */ - units:Array | undefined, + units: Array, /** An aggregate relationship */ - units_aggregate:ModelTypes["unit_aggregate"], - updatedAt:ModelTypes["timestamptz"] + units_aggregate: GraphQLTypes["unit_aggregate"], + updatedAt: GraphQLTypes["timestamptz"] }; /** aggregated selection of "entity" */ ["entity_aggregate"]: { - aggregate?:ModelTypes["entity_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["entity_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "entity" */ ["entity_aggregate_fields"]: { - count:number, - max?:ModelTypes["entity_max_fields"] | undefined, - min?:ModelTypes["entity_min_fields"] | undefined + count: number, + max?: GraphQLTypes["entity_max_fields"] | undefined, + min?: GraphQLTypes["entity_min_fields"] | undefined }; /** order by aggregate values of table "entity" */ ["entity_aggregate_order_by"]: GraphQLTypes["entity_aggregate_order_by"]; @@ -7395,46 +7395,46 @@ end). throws an error if top level container is not an array */ ["entity_insert_input"]: GraphQLTypes["entity_insert_input"]; /** aggregate max on columns */ ["entity_max_fields"]: { - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - description?:string | undefined, - hash?:string | undefined, - id?:ModelTypes["uuid"] | undefined, - jobId?:ModelTypes["uuid"] | undefined, - parsedAt?:ModelTypes["timestamptz"] | undefined, - predecessorEntityId?:ModelTypes["uuid"] | undefined, - statusText?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + hash?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + parsedAt?: GraphQLTypes["timestamptz"] | undefined, + predecessorEntityId?: GraphQLTypes["uuid"] | undefined, + statusText?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "entity" */ ["entity_max_order_by"]: GraphQLTypes["entity_max_order_by"]; /** aggregate min on columns */ ["entity_min_fields"]: { - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - description?:string | undefined, - hash?:string | undefined, - id?:ModelTypes["uuid"] | undefined, - jobId?:ModelTypes["uuid"] | undefined, - parsedAt?:ModelTypes["timestamptz"] | undefined, - predecessorEntityId?:ModelTypes["uuid"] | undefined, - statusText?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + hash?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + parsedAt?: GraphQLTypes["timestamptz"] | undefined, + predecessorEntityId?: GraphQLTypes["uuid"] | undefined, + statusText?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "entity" */ ["entity_min_order_by"]: GraphQLTypes["entity_min_order_by"]; /** response of any mutation on the table "entity" */ ["entity_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "entity" */ ["entity_obj_rel_insert_input"]: GraphQLTypes["entity_obj_rel_insert_input"]; @@ -7457,18 +7457,18 @@ end). throws an error if top level container is not an array */ ["entity_update_column"]: GraphQLTypes["entity_update_column"]; /** columns and relationships of "entity_status" */ ["entityStatus"]: { - name:string + name: string }; /** aggregated selection of "entity_status" */ ["entityStatus_aggregate"]: { - aggregate?:ModelTypes["entityStatus_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["entityStatus_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "entity_status" */ ["entityStatus_aggregate_fields"]: { - count:number, - max?:ModelTypes["entityStatus_max_fields"] | undefined, - min?:ModelTypes["entityStatus_min_fields"] | undefined + count: number, + max?: GraphQLTypes["entityStatus_max_fields"] | undefined, + min?: GraphQLTypes["entityStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "entity_status". All fields are combined with a logical 'AND'. */ ["entityStatus_bool_exp"]: GraphQLTypes["entityStatus_bool_exp"]; @@ -7478,18 +7478,18 @@ end). throws an error if top level container is not an array */ ["entityStatus_insert_input"]: GraphQLTypes["entityStatus_insert_input"]; /** aggregate max on columns */ ["entityStatus_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["entityStatus_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "entity_status" */ ["entityStatus_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "entity_status" */ ["entityStatus_on_conflict"]: GraphQLTypes["entityStatus_on_conflict"]; @@ -7510,37 +7510,37 @@ end). throws an error if top level container is not an array */ ["Int_comparison_exp"]: GraphQLTypes["Int_comparison_exp"]; /** columns and relationships of "integration" */ ["integration"]: { - apiDevUrl?:string | undefined, - apiUrl:string, + apiDevUrl?: string | undefined, + apiUrl: string, /** An array relationship */ - connections:Array | undefined, + connections: Array, /** An aggregate relationship */ - connections_aggregate:ModelTypes["connection_aggregate"], - icon?:string | undefined, - id:ModelTypes["uuid"], - isApproved?:boolean | undefined, - isPrivate:boolean, + connections_aggregate: GraphQLTypes["connection_aggregate"], + icon?: string | undefined, + id: GraphQLTypes["uuid"], + isApproved?: boolean | undefined, + isPrivate: boolean, /** An array relationship */ - jobs:Array | undefined, + jobs: Array, /** An aggregate relationship */ - jobs_aggregate:ModelTypes["job_aggregate"], - name:string, + jobs_aggregate: GraphQLTypes["job_aggregate"], + name: string, /** An object relationship */ - team?:ModelTypes["team"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type:ModelTypes["integration_type_enum"], - uniqueRef:string + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type: GraphQLTypes["integration_type_enum"], + uniqueRef: string }; /** aggregated selection of "integration" */ ["integration_aggregate"]: { - aggregate?:ModelTypes["integration_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["integration_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "integration" */ ["integration_aggregate_fields"]: { - count:number, - max?:ModelTypes["integration_max_fields"] | undefined, - min?:ModelTypes["integration_min_fields"] | undefined + count: number, + max?: GraphQLTypes["integration_max_fields"] | undefined, + min?: GraphQLTypes["integration_min_fields"] | undefined }; /** order by aggregate values of table "integration" */ ["integration_aggregate_order_by"]: GraphQLTypes["integration_aggregate_order_by"]; @@ -7554,34 +7554,34 @@ end). throws an error if top level container is not an array */ ["integration_insert_input"]: GraphQLTypes["integration_insert_input"]; /** aggregate max on columns */ ["integration_max_fields"]: { - apiDevUrl?:string | undefined, - apiUrl?:string | undefined, - icon?:string | undefined, - id?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - uniqueRef?:string | undefined + apiDevUrl?: string | undefined, + apiUrl?: string | undefined, + icon?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined }; /** order by max() on columns of table "integration" */ ["integration_max_order_by"]: GraphQLTypes["integration_max_order_by"]; /** aggregate min on columns */ ["integration_min_fields"]: { - apiDevUrl?:string | undefined, - apiUrl?:string | undefined, - icon?:string | undefined, - id?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - uniqueRef?:string | undefined + apiDevUrl?: string | undefined, + apiUrl?: string | undefined, + icon?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined }; /** order by min() on columns of table "integration" */ ["integration_min_order_by"]: GraphQLTypes["integration_min_order_by"]; /** response of any mutation on the table "integration" */ ["integration_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "integration" */ ["integration_obj_rel_insert_input"]: GraphQLTypes["integration_obj_rel_insert_input"]; @@ -7602,18 +7602,18 @@ end). throws an error if top level container is not an array */ ["integration_update_column"]: GraphQLTypes["integration_update_column"]; /** columns and relationships of "integration_type" */ ["integrationType"]: { - name:string + name: string }; /** aggregated selection of "integration_type" */ ["integrationType_aggregate"]: { - aggregate?:ModelTypes["integrationType_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["integrationType_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "integration_type" */ ["integrationType_aggregate_fields"]: { - count:number, - max?:ModelTypes["integrationType_max_fields"] | undefined, - min?:ModelTypes["integrationType_min_fields"] | undefined + count: number, + max?: GraphQLTypes["integrationType_max_fields"] | undefined, + min?: GraphQLTypes["integrationType_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "integration_type". All fields are combined with a logical 'AND'. */ ["integrationType_bool_exp"]: GraphQLTypes["integrationType_bool_exp"]; @@ -7623,18 +7623,18 @@ end). throws an error if top level container is not an array */ ["integrationType_insert_input"]: GraphQLTypes["integrationType_insert_input"]; /** aggregate max on columns */ ["integrationType_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["integrationType_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "integration_type" */ ["integrationType_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "integration_type" */ ["integrationType_on_conflict"]: GraphQLTypes["integrationType_on_conflict"]; @@ -7650,33 +7650,33 @@ end). throws an error if top level container is not an array */ ["integrationType_update_column"]: GraphQLTypes["integrationType_update_column"]; /** columns and relationships of "issue" */ ["issue"]: { - code?:string | undefined, - createdAt:ModelTypes["timestamptz"], - id:ModelTypes["uuid"], - isPublic?:boolean | undefined, - isResolved?:boolean | undefined, - /** An object relationship */ - job:ModelTypes["job"], - jobId:ModelTypes["uuid"], - message?:string | undefined, - requestParams?:ModelTypes["jsonb"] | undefined, - resolveParams?:ModelTypes["jsonb"] | undefined, + code?: string | undefined, + createdAt: GraphQLTypes["timestamptz"], + id: GraphQLTypes["uuid"], + isPublic?: boolean | undefined, + isResolved?: boolean | undefined, /** An object relationship */ - team:ModelTypes["team"], - teamId:ModelTypes["uuid"], - type?:string | undefined, - updatedAt:ModelTypes["timestamptz"] -}; - /** aggregated selection of "issue" */ + job: GraphQLTypes["job"], + jobId: GraphQLTypes["uuid"], + message?: string | undefined, + requestParams?: GraphQLTypes["jsonb"] | undefined, + resolveParams?: GraphQLTypes["jsonb"] | undefined, + /** An object relationship */ + team: GraphQLTypes["team"], + teamId: GraphQLTypes["uuid"], + type?: string | undefined, + updatedAt: GraphQLTypes["timestamptz"] +}; + /** aggregated selection of "issue" */ ["issue_aggregate"]: { - aggregate?:ModelTypes["issue_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["issue_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "issue" */ ["issue_aggregate_fields"]: { - count:number, - max?:ModelTypes["issue_max_fields"] | undefined, - min?:ModelTypes["issue_min_fields"] | undefined + count: number, + max?: GraphQLTypes["issue_max_fields"] | undefined, + min?: GraphQLTypes["issue_min_fields"] | undefined }; /** order by aggregate values of table "issue" */ ["issue_aggregate_order_by"]: GraphQLTypes["issue_aggregate_order_by"]; @@ -7699,36 +7699,36 @@ end). throws an error if top level container is not an array */ ["issue_insert_input"]: GraphQLTypes["issue_insert_input"]; /** aggregate max on columns */ ["issue_max_fields"]: { - code?:string | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - jobId?:ModelTypes["uuid"] | undefined, - message?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + code?: string | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + message?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "issue" */ ["issue_max_order_by"]: GraphQLTypes["issue_max_order_by"]; /** aggregate min on columns */ ["issue_min_fields"]: { - code?:string | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - jobId?:ModelTypes["uuid"] | undefined, - message?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + code?: string | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + jobId?: GraphQLTypes["uuid"] | undefined, + message?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "issue" */ ["issue_min_order_by"]: GraphQLTypes["issue_min_order_by"]; /** response of any mutation on the table "issue" */ ["issue_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "issue" */ ["issue_on_conflict"]: GraphQLTypes["issue_on_conflict"]; @@ -7746,51 +7746,51 @@ end). throws an error if top level container is not an array */ ["issue_update_column"]: GraphQLTypes["issue_update_column"]; /** columns and relationships of "job" */ ["job"]: { - apiVersion?:string | undefined, + apiVersion?: string | undefined, /** An object relationship */ - connection?:ModelTypes["connection"] | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt:ModelTypes["timestamptz"], - endedAt?:ModelTypes["timestamptz"] | undefined, + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt: GraphQLTypes["timestamptz"], + endedAt?: GraphQLTypes["timestamptz"] | undefined, /** An array relationship */ - entities:Array | undefined, + entities: Array, /** An aggregate relationship */ - entities_aggregate:ModelTypes["entity_aggregate"], - id:ModelTypes["uuid"], + entities_aggregate: GraphQLTypes["entity_aggregate"], + id: GraphQLTypes["uuid"], /** An object relationship */ - integration?:ModelTypes["integration"] | undefined, - integrationId?:ModelTypes["uuid"] | undefined, - integrationSdkVersion?:string | undefined, - integrationVersion?:string | undefined, + integration?: GraphQLTypes["integration"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + integrationSdkVersion?: string | undefined, + integrationVersion?: string | undefined, /** An array relationship */ - issues:Array | undefined, + issues: Array, /** An aggregate relationship */ - issues_aggregate:ModelTypes["issue_aggregate"], - logFile?:string | undefined, - logLink?:string | undefined, - logs?:ModelTypes["jsonb"] | undefined, - method?:ModelTypes["job_method_enum"] | undefined, - params?:ModelTypes["jsonb"] | undefined, - requestId?:string | undefined, - response?:ModelTypes["jsonb"] | undefined, - sdkVersion?:string | undefined, - startedAt?:ModelTypes["timestamptz"] | undefined, - status?:ModelTypes["job_status_enum"] | undefined, + issues_aggregate: GraphQLTypes["issue_aggregate"], + logFile?: string | undefined, + logLink?: string | undefined, + logs?: GraphQLTypes["jsonb"] | undefined, + method?: GraphQLTypes["job_method_enum"] | undefined, + params?: GraphQLTypes["jsonb"] | undefined, + requestId?: string | undefined, + response?: GraphQLTypes["jsonb"] | undefined, + sdkVersion?: string | undefined, + startedAt?: GraphQLTypes["timestamptz"] | undefined, + status?: GraphQLTypes["job_status_enum"] | undefined, /** An object relationship */ - team?:ModelTypes["team"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - updatedAt:ModelTypes["timestamptz"] + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt: GraphQLTypes["timestamptz"] }; /** aggregated selection of "job" */ ["job_aggregate"]: { - aggregate?:ModelTypes["job_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["job_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "job" */ ["job_aggregate_fields"]: { - count:number, - max?:ModelTypes["job_max_fields"] | undefined, - min?:ModelTypes["job_min_fields"] | undefined + count: number, + max?: GraphQLTypes["job_max_fields"] | undefined, + min?: GraphQLTypes["job_min_fields"] | undefined }; /** order by aggregate values of table "job" */ ["job_aggregate_order_by"]: GraphQLTypes["job_aggregate_order_by"]; @@ -7813,21 +7813,21 @@ end). throws an error if top level container is not an array */ ["job_insert_input"]: GraphQLTypes["job_insert_input"]; /** aggregate max on columns */ ["job_max_fields"]: { - apiVersion?:string | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - endedAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - integrationId?:ModelTypes["uuid"] | undefined, - integrationSdkVersion?:string | undefined, - integrationVersion?:string | undefined, - logFile?:string | undefined, - logLink?:string | undefined, - requestId?:string | undefined, - sdkVersion?:string | undefined, - startedAt?:ModelTypes["timestamptz"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + apiVersion?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + endedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + integrationSdkVersion?: string | undefined, + integrationVersion?: string | undefined, + logFile?: string | undefined, + logLink?: string | undefined, + requestId?: string | undefined, + sdkVersion?: string | undefined, + startedAt?: GraphQLTypes["timestamptz"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "job" */ ["job_max_order_by"]: GraphQLTypes["job_max_order_by"]; @@ -7836,30 +7836,30 @@ end). throws an error if top level container is not an array */ ["job_method_enum_comparison_exp"]: GraphQLTypes["job_method_enum_comparison_exp"]; /** aggregate min on columns */ ["job_min_fields"]: { - apiVersion?:string | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - endedAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - integrationId?:ModelTypes["uuid"] | undefined, - integrationSdkVersion?:string | undefined, - integrationVersion?:string | undefined, - logFile?:string | undefined, - logLink?:string | undefined, - requestId?:string | undefined, - sdkVersion?:string | undefined, - startedAt?:ModelTypes["timestamptz"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + apiVersion?: string | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + endedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + integrationId?: GraphQLTypes["uuid"] | undefined, + integrationSdkVersion?: string | undefined, + integrationVersion?: string | undefined, + logFile?: string | undefined, + logLink?: string | undefined, + requestId?: string | undefined, + sdkVersion?: string | undefined, + startedAt?: GraphQLTypes["timestamptz"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "job" */ ["job_min_order_by"]: GraphQLTypes["job_min_order_by"]; /** response of any mutation on the table "job" */ ["job_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "job" */ ["job_obj_rel_insert_input"]: GraphQLTypes["job_obj_rel_insert_input"]; @@ -7882,18 +7882,18 @@ end). throws an error if top level container is not an array */ ["job_update_column"]: GraphQLTypes["job_update_column"]; /** columns and relationships of "job_method" */ ["jobMethod"]: { - name:string + name: string }; /** aggregated selection of "job_method" */ ["jobMethod_aggregate"]: { - aggregate?:ModelTypes["jobMethod_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["jobMethod_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "job_method" */ ["jobMethod_aggregate_fields"]: { - count:number, - max?:ModelTypes["jobMethod_max_fields"] | undefined, - min?:ModelTypes["jobMethod_min_fields"] | undefined + count: number, + max?: GraphQLTypes["jobMethod_max_fields"] | undefined, + min?: GraphQLTypes["jobMethod_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "job_method". All fields are combined with a logical 'AND'. */ ["jobMethod_bool_exp"]: GraphQLTypes["jobMethod_bool_exp"]; @@ -7903,18 +7903,18 @@ end). throws an error if top level container is not an array */ ["jobMethod_insert_input"]: GraphQLTypes["jobMethod_insert_input"]; /** aggregate max on columns */ ["jobMethod_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["jobMethod_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "job_method" */ ["jobMethod_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "job_method" */ ["jobMethod_on_conflict"]: GraphQLTypes["jobMethod_on_conflict"]; @@ -7930,18 +7930,18 @@ end). throws an error if top level container is not an array */ ["jobMethod_update_column"]: GraphQLTypes["jobMethod_update_column"]; /** columns and relationships of "job_status" */ ["jobStatus"]: { - name:string + name: string }; /** aggregated selection of "job_status" */ ["jobStatus_aggregate"]: { - aggregate?:ModelTypes["jobStatus_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["jobStatus_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "job_status" */ ["jobStatus_aggregate_fields"]: { - count:number, - max?:ModelTypes["jobStatus_max_fields"] | undefined, - min?:ModelTypes["jobStatus_min_fields"] | undefined + count: number, + max?: GraphQLTypes["jobStatus_max_fields"] | undefined, + min?: GraphQLTypes["jobStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "job_status". All fields are combined with a logical 'AND'. */ ["jobStatus_bool_exp"]: GraphQLTypes["jobStatus_bool_exp"]; @@ -7951,18 +7951,18 @@ end). throws an error if top level container is not an array */ ["jobStatus_insert_input"]: GraphQLTypes["jobStatus_insert_input"]; /** aggregate max on columns */ ["jobStatus_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["jobStatus_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "job_status" */ ["jobStatus_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "job_status" */ ["jobStatus_on_conflict"]: GraphQLTypes["jobStatus_on_conflict"]; @@ -7982,59 +7982,59 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "line" */ ["line"]: { /** An object relationship */ - booking?:ModelTypes["booking"] | undefined, - bookingId?:ModelTypes["uuid"] | undefined, - centTotal?:number | undefined, - classification?:ModelTypes["classification_enum"] | undefined, + booking?: GraphQLTypes["booking"] | undefined, + bookingId?: GraphQLTypes["uuid"] | undefined, + centTotal?: number | undefined, + classification?: GraphQLTypes["classification_enum"] | undefined, /** An object relationship */ - connection?:ModelTypes["connection"] | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt:ModelTypes["timestamptz"], - description?:string | undefined, + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt: GraphQLTypes["timestamptz"], + description?: string | undefined, /** An array relationship */ - enhancementLines:Array | undefined, + enhancementLines: Array, /** An aggregate relationship */ - enhancementLines_aggregate:ModelTypes["line_aggregate"], + enhancementLines_aggregate: GraphQLTypes["line_aggregate"], /** An object relationship */ - enhancingLine?:ModelTypes["line"] | undefined, - enhancingLineId?:ModelTypes["uuid"] | undefined, - id:ModelTypes["uuid"], - invoiceStatus?:string | undefined, - isEnhanced?:boolean | undefined, - metadata?:ModelTypes["jsonb"] | undefined, - originCentTotal?:number | undefined, - originCurrency?:string | undefined, - originExchangeRate?:ModelTypes["numeric"] | undefined, + enhancingLine?: GraphQLTypes["line"] | undefined, + enhancingLineId?: GraphQLTypes["uuid"] | undefined, + id: GraphQLTypes["uuid"], + invoiceStatus?: string | undefined, + isEnhanced?: boolean | undefined, + metadata?: GraphQLTypes["jsonb"] | undefined, + originCentTotal?: number | undefined, + originCurrency?: string | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined, /** An object relationship */ - payment?:ModelTypes["payment"] | undefined, - paymentId?:ModelTypes["uuid"] | undefined, - subclassification?:ModelTypes["subclassification_enum"] | undefined, + payment?: GraphQLTypes["payment"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + subclassification?: GraphQLTypes["subclassification_enum"] | undefined, /** An object relationship */ - team?:ModelTypes["team"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "line" */ ["line_aggregate"]: { - aggregate?:ModelTypes["line_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["line_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "line" */ ["line_aggregate_fields"]: { - avg?:ModelTypes["line_avg_fields"] | undefined, - count:number, - max?:ModelTypes["line_max_fields"] | undefined, - min?:ModelTypes["line_min_fields"] | undefined, - stddev?:ModelTypes["line_stddev_fields"] | undefined, - stddev_pop?:ModelTypes["line_stddev_pop_fields"] | undefined, - stddev_samp?:ModelTypes["line_stddev_samp_fields"] | undefined, - sum?:ModelTypes["line_sum_fields"] | undefined, - var_pop?:ModelTypes["line_var_pop_fields"] | undefined, - var_samp?:ModelTypes["line_var_samp_fields"] | undefined, - variance?:ModelTypes["line_variance_fields"] | undefined + avg?: GraphQLTypes["line_avg_fields"] | undefined, + count: number, + max?: GraphQLTypes["line_max_fields"] | undefined, + min?: GraphQLTypes["line_min_fields"] | undefined, + stddev?: GraphQLTypes["line_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["line_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["line_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["line_sum_fields"] | undefined, + var_pop?: GraphQLTypes["line_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["line_var_samp_fields"] | undefined, + variance?: GraphQLTypes["line_variance_fields"] | undefined }; /** order by aggregate values of table "line" */ ["line_aggregate_order_by"]: GraphQLTypes["line_aggregate_order_by"]; @@ -8044,9 +8044,9 @@ end). throws an error if top level container is not an array */ ["line_arr_rel_insert_input"]: GraphQLTypes["line_arr_rel_insert_input"]; /** aggregate avg on columns */ ["line_avg_fields"]: { - centTotal?:number | undefined, - originCentTotal?:number | undefined, - originExchangeRate?:number | undefined + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by avg() on columns of table "line" */ ["line_avg_order_by"]: GraphQLTypes["line_avg_order_by"]; @@ -8067,54 +8067,54 @@ end). throws an error if top level container is not an array */ ["line_insert_input"]: GraphQLTypes["line_insert_input"]; /** aggregate max on columns */ ["line_max_fields"]: { - bookingId?:ModelTypes["uuid"] | undefined, - centTotal?:number | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - description?:string | undefined, - enhancingLineId?:ModelTypes["uuid"] | undefined, - id?:ModelTypes["uuid"] | undefined, - invoiceStatus?:string | undefined, - originCentTotal?:number | undefined, - originCurrency?:string | undefined, - originExchangeRate?:ModelTypes["numeric"] | undefined, - paymentId?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + bookingId?: GraphQLTypes["uuid"] | undefined, + centTotal?: number | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + enhancingLineId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + invoiceStatus?: string | undefined, + originCentTotal?: number | undefined, + originCurrency?: string | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "line" */ ["line_max_order_by"]: GraphQLTypes["line_max_order_by"]; /** aggregate min on columns */ ["line_min_fields"]: { - bookingId?:ModelTypes["uuid"] | undefined, - centTotal?:number | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - description?:string | undefined, - enhancingLineId?:ModelTypes["uuid"] | undefined, - id?:ModelTypes["uuid"] | undefined, - invoiceStatus?:string | undefined, - originCentTotal?:number | undefined, - originCurrency?:string | undefined, - originExchangeRate?:ModelTypes["numeric"] | undefined, - paymentId?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + bookingId?: GraphQLTypes["uuid"] | undefined, + centTotal?: number | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + enhancingLineId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + invoiceStatus?: string | undefined, + originCentTotal?: number | undefined, + originCurrency?: string | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "line" */ ["line_min_order_by"]: GraphQLTypes["line_min_order_by"]; /** response of any mutation on the table "line" */ ["line_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "line" */ ["line_obj_rel_insert_input"]: GraphQLTypes["line_obj_rel_insert_input"]; @@ -8132,33 +8132,33 @@ end). throws an error if top level container is not an array */ ["line_set_input"]: GraphQLTypes["line_set_input"]; /** aggregate stddev on columns */ ["line_stddev_fields"]: { - centTotal?:number | undefined, - originCentTotal?:number | undefined, - originExchangeRate?:number | undefined + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by stddev() on columns of table "line" */ ["line_stddev_order_by"]: GraphQLTypes["line_stddev_order_by"]; /** aggregate stddev_pop on columns */ ["line_stddev_pop_fields"]: { - centTotal?:number | undefined, - originCentTotal?:number | undefined, - originExchangeRate?:number | undefined + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by stddev_pop() on columns of table "line" */ ["line_stddev_pop_order_by"]: GraphQLTypes["line_stddev_pop_order_by"]; /** aggregate stddev_samp on columns */ ["line_stddev_samp_fields"]: { - centTotal?:number | undefined, - originCentTotal?:number | undefined, - originExchangeRate?:number | undefined + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by stddev_samp() on columns of table "line" */ ["line_stddev_samp_order_by"]: GraphQLTypes["line_stddev_samp_order_by"]; /** aggregate sum on columns */ ["line_sum_fields"]: { - centTotal?:number | undefined, - originCentTotal?:number | undefined, - originExchangeRate?:ModelTypes["numeric"] | undefined + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: GraphQLTypes["numeric"] | undefined }; /** order by sum() on columns of table "line" */ ["line_sum_order_by"]: GraphQLTypes["line_sum_order_by"]; @@ -8166,65 +8166,65 @@ end). throws an error if top level container is not an array */ ["line_update_column"]: GraphQLTypes["line_update_column"]; /** aggregate var_pop on columns */ ["line_var_pop_fields"]: { - centTotal?:number | undefined, - originCentTotal?:number | undefined, - originExchangeRate?:number | undefined + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by var_pop() on columns of table "line" */ ["line_var_pop_order_by"]: GraphQLTypes["line_var_pop_order_by"]; /** aggregate var_samp on columns */ ["line_var_samp_fields"]: { - centTotal?:number | undefined, - originCentTotal?:number | undefined, - originExchangeRate?:number | undefined + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by var_samp() on columns of table "line" */ ["line_var_samp_order_by"]: GraphQLTypes["line_var_samp_order_by"]; /** aggregate variance on columns */ ["line_variance_fields"]: { - centTotal?:number | undefined, - originCentTotal?:number | undefined, - originExchangeRate?:number | undefined + centTotal?: number | undefined, + originCentTotal?: number | undefined, + originExchangeRate?: number | undefined }; /** order by variance() on columns of table "line" */ ["line_variance_order_by"]: GraphQLTypes["line_variance_order_by"]; /** columns and relationships of "metric" */ ["metric"]: { /** An object relationship */ - connection:ModelTypes["connection"], - connectionId:ModelTypes["uuid"], - createdAt:ModelTypes["timestamptz"], - ensuedAt:ModelTypes["timestamptz"], - id:ModelTypes["uuid"], - metadata:ModelTypes["jsonb"], + connection: GraphQLTypes["connection"], + connectionId: GraphQLTypes["uuid"], + createdAt: GraphQLTypes["timestamptz"], + ensuedAt: GraphQLTypes["timestamptz"], + id: GraphQLTypes["uuid"], + metadata: GraphQLTypes["jsonb"], /** An object relationship */ - team:ModelTypes["team"], - teamId:ModelTypes["uuid"], - text?:string | undefined, - type:string, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt:ModelTypes["timestamptz"], - value?:ModelTypes["float8"] | undefined + team: GraphQLTypes["team"], + teamId: GraphQLTypes["uuid"], + text?: string | undefined, + type: string, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt: GraphQLTypes["timestamptz"], + value?: GraphQLTypes["float8"] | undefined }; /** aggregated selection of "metric" */ ["metric_aggregate"]: { - aggregate?:ModelTypes["metric_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["metric_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "metric" */ ["metric_aggregate_fields"]: { - avg?:ModelTypes["metric_avg_fields"] | undefined, - count:number, - max?:ModelTypes["metric_max_fields"] | undefined, - min?:ModelTypes["metric_min_fields"] | undefined, - stddev?:ModelTypes["metric_stddev_fields"] | undefined, - stddev_pop?:ModelTypes["metric_stddev_pop_fields"] | undefined, - stddev_samp?:ModelTypes["metric_stddev_samp_fields"] | undefined, - sum?:ModelTypes["metric_sum_fields"] | undefined, - var_pop?:ModelTypes["metric_var_pop_fields"] | undefined, - var_samp?:ModelTypes["metric_var_samp_fields"] | undefined, - variance?:ModelTypes["metric_variance_fields"] | undefined + avg?: GraphQLTypes["metric_avg_fields"] | undefined, + count: number, + max?: GraphQLTypes["metric_max_fields"] | undefined, + min?: GraphQLTypes["metric_min_fields"] | undefined, + stddev?: GraphQLTypes["metric_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["metric_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["metric_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["metric_sum_fields"] | undefined, + var_pop?: GraphQLTypes["metric_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["metric_var_samp_fields"] | undefined, + variance?: GraphQLTypes["metric_variance_fields"] | undefined }; /** order by aggregate values of table "metric" */ ["metric_aggregate_order_by"]: GraphQLTypes["metric_aggregate_order_by"]; @@ -8234,7 +8234,7 @@ end). throws an error if top level container is not an array */ ["metric_arr_rel_insert_input"]: GraphQLTypes["metric_arr_rel_insert_input"]; /** aggregate avg on columns */ ["metric_avg_fields"]: { - value?:number | undefined + value?: number | undefined }; /** order by avg() on columns of table "metric" */ ["metric_avg_order_by"]: GraphQLTypes["metric_avg_order_by"]; @@ -8255,42 +8255,42 @@ end). throws an error if top level container is not an array */ ["metric_insert_input"]: GraphQLTypes["metric_insert_input"]; /** aggregate max on columns */ ["metric_max_fields"]: { - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - ensuedAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - text?:string | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined, - value?:ModelTypes["float8"] | undefined + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + ensuedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + text?: string | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + value?: GraphQLTypes["float8"] | undefined }; /** order by max() on columns of table "metric" */ ["metric_max_order_by"]: GraphQLTypes["metric_max_order_by"]; /** aggregate min on columns */ ["metric_min_fields"]: { - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - ensuedAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - text?:string | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined, - value?:ModelTypes["float8"] | undefined + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + ensuedAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + text?: string | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + value?: GraphQLTypes["float8"] | undefined }; /** order by min() on columns of table "metric" */ ["metric_min_order_by"]: GraphQLTypes["metric_min_order_by"]; /** response of any mutation on the table "metric" */ ["metric_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "metric" */ ["metric_on_conflict"]: GraphQLTypes["metric_on_conflict"]; @@ -8306,25 +8306,25 @@ end). throws an error if top level container is not an array */ ["metric_set_input"]: GraphQLTypes["metric_set_input"]; /** aggregate stddev on columns */ ["metric_stddev_fields"]: { - value?:number | undefined + value?: number | undefined }; /** order by stddev() on columns of table "metric" */ ["metric_stddev_order_by"]: GraphQLTypes["metric_stddev_order_by"]; /** aggregate stddev_pop on columns */ ["metric_stddev_pop_fields"]: { - value?:number | undefined + value?: number | undefined }; /** order by stddev_pop() on columns of table "metric" */ ["metric_stddev_pop_order_by"]: GraphQLTypes["metric_stddev_pop_order_by"]; /** aggregate stddev_samp on columns */ ["metric_stddev_samp_fields"]: { - value?:number | undefined + value?: number | undefined }; /** order by stddev_samp() on columns of table "metric" */ ["metric_stddev_samp_order_by"]: GraphQLTypes["metric_stddev_samp_order_by"]; /** aggregate sum on columns */ ["metric_sum_fields"]: { - value?:ModelTypes["float8"] | undefined + value?: GraphQLTypes["float8"] | undefined }; /** order by sum() on columns of table "metric" */ ["metric_sum_order_by"]: GraphQLTypes["metric_sum_order_by"]; @@ -8332,378 +8332,378 @@ end). throws an error if top level container is not an array */ ["metric_update_column"]: GraphQLTypes["metric_update_column"]; /** aggregate var_pop on columns */ ["metric_var_pop_fields"]: { - value?:number | undefined + value?: number | undefined }; /** order by var_pop() on columns of table "metric" */ ["metric_var_pop_order_by"]: GraphQLTypes["metric_var_pop_order_by"]; /** aggregate var_samp on columns */ ["metric_var_samp_fields"]: { - value?:number | undefined + value?: number | undefined }; /** order by var_samp() on columns of table "metric" */ ["metric_var_samp_order_by"]: GraphQLTypes["metric_var_samp_order_by"]; /** aggregate variance on columns */ ["metric_variance_fields"]: { - value?:number | undefined + value?: number | undefined }; /** order by variance() on columns of table "metric" */ ["metric_variance_order_by"]: GraphQLTypes["metric_variance_order_by"]; /** mutation root */ ["mutation_root"]: { /** delete single row from the table: "booking" */ - deleteBooking?:ModelTypes["booking"] | undefined, + deleteBooking?: GraphQLTypes["booking"] | undefined, /** delete single row from the table: "booking_status" */ - deleteBookingStatus?:ModelTypes["bookingStatus"] | undefined, + deleteBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** delete data from the table: "booking_status" */ - deleteBookingStatuses?:ModelTypes["bookingStatus_mutation_response"] | undefined, + deleteBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, /** delete data from the table: "booking" */ - deleteBookings?:ModelTypes["booking_mutation_response"] | undefined, + deleteBookings?: GraphQLTypes["booking_mutation_response"] | undefined, /** delete single row from the table: "classification" */ - deleteClassification?:ModelTypes["classification"] | undefined, + deleteClassification?: GraphQLTypes["classification"] | undefined, /** delete data from the table: "classification" */ - deleteClassifications?:ModelTypes["classification_mutation_response"] | undefined, + deleteClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, /** delete single row from the table: "connection" */ - deleteConnection?:ModelTypes["connection"] | undefined, + deleteConnection?: GraphQLTypes["connection"] | undefined, /** delete data from the table: "connection" */ - deleteConnections?:ModelTypes["connection_mutation_response"] | undefined, + deleteConnections?: GraphQLTypes["connection_mutation_response"] | undefined, /** delete data from the table: "currency" */ - deleteCurrencies?:ModelTypes["currency_mutation_response"] | undefined, + deleteCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, /** delete single row from the table: "currency" */ - deleteCurrency?:ModelTypes["currency"] | undefined, + deleteCurrency?: GraphQLTypes["currency"] | undefined, /** delete data from the table: "entity" */ - deleteEntities?:ModelTypes["entity_mutation_response"] | undefined, + deleteEntities?: GraphQLTypes["entity_mutation_response"] | undefined, /** delete single row from the table: "entity" */ - deleteEntity?:ModelTypes["entity"] | undefined, + deleteEntity?: GraphQLTypes["entity"] | undefined, /** delete single row from the table: "entity_status" */ - deleteEntityStatus?:ModelTypes["entityStatus"] | undefined, + deleteEntityStatus?: GraphQLTypes["entityStatus"] | undefined, /** delete data from the table: "entity_status" */ - deleteEntityStatuses?:ModelTypes["entityStatus_mutation_response"] | undefined, + deleteEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, /** delete single row from the table: "integration" */ - deleteIntegration?:ModelTypes["integration"] | undefined, + deleteIntegration?: GraphQLTypes["integration"] | undefined, /** delete single row from the table: "integration_type" */ - deleteIntegrationType?:ModelTypes["integrationType"] | undefined, + deleteIntegrationType?: GraphQLTypes["integrationType"] | undefined, /** delete data from the table: "integration_type" */ - deleteIntegrationTypes?:ModelTypes["integrationType_mutation_response"] | undefined, + deleteIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, /** delete data from the table: "integration" */ - deleteIntegrations?:ModelTypes["integration_mutation_response"] | undefined, + deleteIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, /** delete single row from the table: "issue" */ - deleteIssue?:ModelTypes["issue"] | undefined, + deleteIssue?: GraphQLTypes["issue"] | undefined, /** delete data from the table: "issue" */ - deleteIssues?:ModelTypes["issue_mutation_response"] | undefined, + deleteIssues?: GraphQLTypes["issue_mutation_response"] | undefined, /** delete single row from the table: "job" */ - deleteJob?:ModelTypes["job"] | undefined, + deleteJob?: GraphQLTypes["job"] | undefined, /** delete single row from the table: "job_method" */ - deleteJobMethod?:ModelTypes["jobMethod"] | undefined, + deleteJobMethod?: GraphQLTypes["jobMethod"] | undefined, /** delete data from the table: "job_method" */ - deleteJobMethods?:ModelTypes["jobMethod_mutation_response"] | undefined, + deleteJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, /** delete single row from the table: "job_status" */ - deleteJobStatus?:ModelTypes["jobStatus"] | undefined, + deleteJobStatus?: GraphQLTypes["jobStatus"] | undefined, /** delete data from the table: "job_status" */ - deleteJobStatuses?:ModelTypes["jobStatus_mutation_response"] | undefined, + deleteJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, /** delete data from the table: "job" */ - deleteJobs?:ModelTypes["job_mutation_response"] | undefined, + deleteJobs?: GraphQLTypes["job_mutation_response"] | undefined, /** delete single row from the table: "line" */ - deleteLine?:ModelTypes["line"] | undefined, + deleteLine?: GraphQLTypes["line"] | undefined, /** delete data from the table: "line" */ - deleteLines?:ModelTypes["line_mutation_response"] | undefined, + deleteLines?: GraphQLTypes["line_mutation_response"] | undefined, /** delete single row from the table: "metric" */ - deleteMetric?:ModelTypes["metric"] | undefined, + deleteMetric?: GraphQLTypes["metric"] | undefined, /** delete data from the table: "metric" */ - deleteMetrics?:ModelTypes["metric_mutation_response"] | undefined, + deleteMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, /** delete single row from the table: "normalized_type" */ - deleteNormalizedType?:ModelTypes["normalizedType"] | undefined, + deleteNormalizedType?: GraphQLTypes["normalizedType"] | undefined, /** delete data from the table: "normalized_type" */ - deleteNormalizedTypes?:ModelTypes["normalizedType_mutation_response"] | undefined, + deleteNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, /** delete single row from the table: "payment" */ - deletePayment?:ModelTypes["payment"] | undefined, + deletePayment?: GraphQLTypes["payment"] | undefined, /** delete single row from the table: "payment_status" */ - deletePaymentStatus?:ModelTypes["paymentStatus"] | undefined, + deletePaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** delete data from the table: "payment_status" */ - deletePaymentStatuses?:ModelTypes["paymentStatus_mutation_response"] | undefined, + deletePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, /** delete single row from the table: "payment_type" */ - deletePaymentType?:ModelTypes["paymentType"] | undefined, + deletePaymentType?: GraphQLTypes["paymentType"] | undefined, /** delete data from the table: "payment_type" */ - deletePaymentTypes?:ModelTypes["paymentType_mutation_response"] | undefined, + deletePaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, /** delete data from the table: "payment" */ - deletePayments?:ModelTypes["payment_mutation_response"] | undefined, + deletePayments?: GraphQLTypes["payment_mutation_response"] | undefined, /** delete single row from the table: "subclassification" */ - deleteSubclassification?:ModelTypes["subclassification"] | undefined, + deleteSubclassification?: GraphQLTypes["subclassification"] | undefined, /** delete data from the table: "subclassification" */ - deleteSubclassifications?:ModelTypes["subclassification_mutation_response"] | undefined, + deleteSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, /** delete single row from the table: "tag" */ - deleteTag?:ModelTypes["tag"] | undefined, + deleteTag?: GraphQLTypes["tag"] | undefined, /** delete data from the table: "tag" */ - deleteTags?:ModelTypes["tag_mutation_response"] | undefined, + deleteTags?: GraphQLTypes["tag_mutation_response"] | undefined, /** delete single row from the table: "team" */ - deleteTeam?:ModelTypes["team"] | undefined, + deleteTeam?: GraphQLTypes["team"] | undefined, /** delete single row from the table: "team_user" */ - deleteTeamUser?:ModelTypes["teamUser"] | undefined, + deleteTeamUser?: GraphQLTypes["teamUser"] | undefined, /** delete data from the table: "team_user" */ - deleteTeamUsers?:ModelTypes["teamUser_mutation_response"] | undefined, + deleteTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, /** delete data from the table: "team" */ - deleteTeams?:ModelTypes["team_mutation_response"] | undefined, + deleteTeams?: GraphQLTypes["team_mutation_response"] | undefined, /** delete single row from the table: "unit" */ - deleteUnit?:ModelTypes["unit"] | undefined, + deleteUnit?: GraphQLTypes["unit"] | undefined, /** delete data from the table: "unit" */ - deleteUnits?:ModelTypes["unit_mutation_response"] | undefined, + deleteUnits?: GraphQLTypes["unit_mutation_response"] | undefined, /** delete single row from the table: "user" */ - deleteUser?:ModelTypes["user"] | undefined, + deleteUser?: GraphQLTypes["user"] | undefined, /** delete single row from the table: "user_status" */ - deleteUserStatus?:ModelTypes["userStatus"] | undefined, + deleteUserStatus?: GraphQLTypes["userStatus"] | undefined, /** delete data from the table: "user_status" */ - deleteUserStatuses?:ModelTypes["userStatus_mutation_response"] | undefined, + deleteUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, /** delete data from the table: "user" */ - deleteUsers?:ModelTypes["user_mutation_response"] | undefined, + deleteUsers?: GraphQLTypes["user_mutation_response"] | undefined, /** delete single row from the table: "webhook" */ - deleteWebhook?:ModelTypes["webhook"] | undefined, + deleteWebhook?: GraphQLTypes["webhook"] | undefined, /** delete data from the table: "webhook" */ - deleteWebhooks?:ModelTypes["webhook_mutation_response"] | undefined, + deleteWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, /** delete data from the table: "booking_channel" */ - delete_booking_channel?:ModelTypes["booking_channel_mutation_response"] | undefined, + delete_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, /** delete single row from the table: "booking_channel" */ - delete_booking_channel_by_pk?:ModelTypes["booking_channel"] | undefined, + delete_booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, /** insert a single row into the table: "booking" */ - insertBooking?:ModelTypes["booking"] | undefined, + insertBooking?: GraphQLTypes["booking"] | undefined, /** insert a single row into the table: "booking_status" */ - insertBookingStatus?:ModelTypes["bookingStatus"] | undefined, + insertBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** insert data into the table: "booking_status" */ - insertBookingStatuses?:ModelTypes["bookingStatus_mutation_response"] | undefined, + insertBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, /** insert data into the table: "booking" */ - insertBookings?:ModelTypes["booking_mutation_response"] | undefined, + insertBookings?: GraphQLTypes["booking_mutation_response"] | undefined, /** insert a single row into the table: "classification" */ - insertClassification?:ModelTypes["classification"] | undefined, + insertClassification?: GraphQLTypes["classification"] | undefined, /** insert data into the table: "classification" */ - insertClassifications?:ModelTypes["classification_mutation_response"] | undefined, + insertClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, /** insert a single row into the table: "connection" */ - insertConnection?:ModelTypes["connection"] | undefined, + insertConnection?: GraphQLTypes["connection"] | undefined, /** insert data into the table: "connection" */ - insertConnections?:ModelTypes["connection_mutation_response"] | undefined, + insertConnections?: GraphQLTypes["connection_mutation_response"] | undefined, /** insert data into the table: "currency" */ - insertCurrencies?:ModelTypes["currency_mutation_response"] | undefined, + insertCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, /** insert a single row into the table: "currency" */ - insertCurrency?:ModelTypes["currency"] | undefined, + insertCurrency?: GraphQLTypes["currency"] | undefined, /** insert data into the table: "entity" */ - insertEntities?:ModelTypes["entity_mutation_response"] | undefined, + insertEntities?: GraphQLTypes["entity_mutation_response"] | undefined, /** insert a single row into the table: "entity" */ - insertEntity?:ModelTypes["entity"] | undefined, + insertEntity?: GraphQLTypes["entity"] | undefined, /** insert a single row into the table: "entity_status" */ - insertEntityStatus?:ModelTypes["entityStatus"] | undefined, + insertEntityStatus?: GraphQLTypes["entityStatus"] | undefined, /** insert data into the table: "entity_status" */ - insertEntityStatuses?:ModelTypes["entityStatus_mutation_response"] | undefined, + insertEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, /** insert a single row into the table: "integration" */ - insertIntegration?:ModelTypes["integration"] | undefined, + insertIntegration?: GraphQLTypes["integration"] | undefined, /** insert a single row into the table: "integration_type" */ - insertIntegrationType?:ModelTypes["integrationType"] | undefined, + insertIntegrationType?: GraphQLTypes["integrationType"] | undefined, /** insert data into the table: "integration_type" */ - insertIntegrationTypes?:ModelTypes["integrationType_mutation_response"] | undefined, + insertIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, /** insert data into the table: "integration" */ - insertIntegrations?:ModelTypes["integration_mutation_response"] | undefined, + insertIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, /** insert a single row into the table: "issue" */ - insertIssue?:ModelTypes["issue"] | undefined, + insertIssue?: GraphQLTypes["issue"] | undefined, /** insert data into the table: "issue" */ - insertIssues?:ModelTypes["issue_mutation_response"] | undefined, + insertIssues?: GraphQLTypes["issue_mutation_response"] | undefined, /** insert a single row into the table: "job" */ - insertJob?:ModelTypes["job"] | undefined, + insertJob?: GraphQLTypes["job"] | undefined, /** insert a single row into the table: "job_method" */ - insertJobMethod?:ModelTypes["jobMethod"] | undefined, + insertJobMethod?: GraphQLTypes["jobMethod"] | undefined, /** insert data into the table: "job_method" */ - insertJobMethods?:ModelTypes["jobMethod_mutation_response"] | undefined, + insertJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, /** insert a single row into the table: "job_status" */ - insertJobStatus?:ModelTypes["jobStatus"] | undefined, + insertJobStatus?: GraphQLTypes["jobStatus"] | undefined, /** insert data into the table: "job_status" */ - insertJobStatuses?:ModelTypes["jobStatus_mutation_response"] | undefined, + insertJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, /** insert data into the table: "job" */ - insertJobs?:ModelTypes["job_mutation_response"] | undefined, + insertJobs?: GraphQLTypes["job_mutation_response"] | undefined, /** insert a single row into the table: "line" */ - insertLine?:ModelTypes["line"] | undefined, + insertLine?: GraphQLTypes["line"] | undefined, /** insert data into the table: "line" */ - insertLines?:ModelTypes["line_mutation_response"] | undefined, + insertLines?: GraphQLTypes["line_mutation_response"] | undefined, /** insert a single row into the table: "metric" */ - insertMetric?:ModelTypes["metric"] | undefined, + insertMetric?: GraphQLTypes["metric"] | undefined, /** insert data into the table: "metric" */ - insertMetrics?:ModelTypes["metric_mutation_response"] | undefined, + insertMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, /** insert a single row into the table: "normalized_type" */ - insertNormalizedType?:ModelTypes["normalizedType"] | undefined, + insertNormalizedType?: GraphQLTypes["normalizedType"] | undefined, /** insert data into the table: "normalized_type" */ - insertNormalizedTypes?:ModelTypes["normalizedType_mutation_response"] | undefined, + insertNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, /** insert a single row into the table: "payment" */ - insertPayment?:ModelTypes["payment"] | undefined, + insertPayment?: GraphQLTypes["payment"] | undefined, /** insert a single row into the table: "payment_status" */ - insertPaymentStatus?:ModelTypes["paymentStatus"] | undefined, + insertPaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** insert data into the table: "payment_status" */ - insertPaymentStatuses?:ModelTypes["paymentStatus_mutation_response"] | undefined, + insertPaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, /** insert a single row into the table: "payment_type" */ - insertPaymentType?:ModelTypes["paymentType"] | undefined, + insertPaymentType?: GraphQLTypes["paymentType"] | undefined, /** insert data into the table: "payment_type" */ - insertPaymentTypes?:ModelTypes["paymentType_mutation_response"] | undefined, + insertPaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, /** insert data into the table: "payment" */ - insertPayments?:ModelTypes["payment_mutation_response"] | undefined, + insertPayments?: GraphQLTypes["payment_mutation_response"] | undefined, /** insert a single row into the table: "subclassification" */ - insertSubclassification?:ModelTypes["subclassification"] | undefined, + insertSubclassification?: GraphQLTypes["subclassification"] | undefined, /** insert data into the table: "subclassification" */ - insertSubclassifications?:ModelTypes["subclassification_mutation_response"] | undefined, + insertSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, /** insert a single row into the table: "tag" */ - insertTag?:ModelTypes["tag"] | undefined, + insertTag?: GraphQLTypes["tag"] | undefined, /** insert data into the table: "tag" */ - insertTags?:ModelTypes["tag_mutation_response"] | undefined, + insertTags?: GraphQLTypes["tag_mutation_response"] | undefined, /** insert a single row into the table: "team" */ - insertTeam?:ModelTypes["team"] | undefined, + insertTeam?: GraphQLTypes["team"] | undefined, /** insert a single row into the table: "team_user" */ - insertTeamUser?:ModelTypes["teamUser"] | undefined, + insertTeamUser?: GraphQLTypes["teamUser"] | undefined, /** insert data into the table: "team_user" */ - insertTeamUsers?:ModelTypes["teamUser_mutation_response"] | undefined, + insertTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, /** insert data into the table: "team" */ - insertTeams?:ModelTypes["team_mutation_response"] | undefined, + insertTeams?: GraphQLTypes["team_mutation_response"] | undefined, /** insert a single row into the table: "unit" */ - insertUnit?:ModelTypes["unit"] | undefined, + insertUnit?: GraphQLTypes["unit"] | undefined, /** insert data into the table: "unit" */ - insertUnits?:ModelTypes["unit_mutation_response"] | undefined, + insertUnits?: GraphQLTypes["unit_mutation_response"] | undefined, /** insert a single row into the table: "user" */ - insertUser?:ModelTypes["user"] | undefined, + insertUser?: GraphQLTypes["user"] | undefined, /** insert a single row into the table: "user_status" */ - insertUserStatus?:ModelTypes["userStatus"] | undefined, + insertUserStatus?: GraphQLTypes["userStatus"] | undefined, /** insert data into the table: "user_status" */ - insertUserStatuses?:ModelTypes["userStatus_mutation_response"] | undefined, + insertUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, /** insert data into the table: "user" */ - insertUsers?:ModelTypes["user_mutation_response"] | undefined, + insertUsers?: GraphQLTypes["user_mutation_response"] | undefined, /** insert a single row into the table: "webhook" */ - insertWebhook?:ModelTypes["webhook"] | undefined, + insertWebhook?: GraphQLTypes["webhook"] | undefined, /** insert data into the table: "webhook" */ - insertWebhooks?:ModelTypes["webhook_mutation_response"] | undefined, + insertWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, /** insert data into the table: "booking_channel" */ - insert_booking_channel?:ModelTypes["booking_channel_mutation_response"] | undefined, + insert_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, /** insert a single row into the table: "booking_channel" */ - insert_booking_channel_one?:ModelTypes["booking_channel"] | undefined, + insert_booking_channel_one?: GraphQLTypes["booking_channel"] | undefined, /** update single row of the table: "booking" */ - updateBooking?:ModelTypes["booking"] | undefined, + updateBooking?: GraphQLTypes["booking"] | undefined, /** update single row of the table: "booking_status" */ - updateBookingStatus?:ModelTypes["bookingStatus"] | undefined, + updateBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** update data of the table: "booking_status" */ - updateBookingStatuses?:ModelTypes["bookingStatus_mutation_response"] | undefined, + updateBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, /** update data of the table: "booking" */ - updateBookings?:ModelTypes["booking_mutation_response"] | undefined, + updateBookings?: GraphQLTypes["booking_mutation_response"] | undefined, /** update single row of the table: "classification" */ - updateClassification?:ModelTypes["classification"] | undefined, + updateClassification?: GraphQLTypes["classification"] | undefined, /** update data of the table: "classification" */ - updateClassifications?:ModelTypes["classification_mutation_response"] | undefined, + updateClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, /** update single row of the table: "connection" */ - updateConnection?:ModelTypes["connection"] | undefined, + updateConnection?: GraphQLTypes["connection"] | undefined, /** update data of the table: "connection" */ - updateConnections?:ModelTypes["connection_mutation_response"] | undefined, + updateConnections?: GraphQLTypes["connection_mutation_response"] | undefined, /** update data of the table: "currency" */ - updateCurrencies?:ModelTypes["currency_mutation_response"] | undefined, + updateCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, /** update single row of the table: "currency" */ - updateCurrency?:ModelTypes["currency"] | undefined, + updateCurrency?: GraphQLTypes["currency"] | undefined, /** update data of the table: "entity" */ - updateEntities?:ModelTypes["entity_mutation_response"] | undefined, + updateEntities?: GraphQLTypes["entity_mutation_response"] | undefined, /** update single row of the table: "entity" */ - updateEntity?:ModelTypes["entity"] | undefined, + updateEntity?: GraphQLTypes["entity"] | undefined, /** update single row of the table: "entity_status" */ - updateEntityStatus?:ModelTypes["entityStatus"] | undefined, + updateEntityStatus?: GraphQLTypes["entityStatus"] | undefined, /** update data of the table: "entity_status" */ - updateEntityStatuses?:ModelTypes["entityStatus_mutation_response"] | undefined, + updateEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, /** update single row of the table: "integration" */ - updateIntegration?:ModelTypes["integration"] | undefined, + updateIntegration?: GraphQLTypes["integration"] | undefined, /** update single row of the table: "integration_type" */ - updateIntegrationType?:ModelTypes["integrationType"] | undefined, + updateIntegrationType?: GraphQLTypes["integrationType"] | undefined, /** update data of the table: "integration_type" */ - updateIntegrationTypes?:ModelTypes["integrationType_mutation_response"] | undefined, + updateIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, /** update data of the table: "integration" */ - updateIntegrations?:ModelTypes["integration_mutation_response"] | undefined, + updateIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, /** update single row of the table: "issue" */ - updateIssue?:ModelTypes["issue"] | undefined, + updateIssue?: GraphQLTypes["issue"] | undefined, /** update data of the table: "issue" */ - updateIssues?:ModelTypes["issue_mutation_response"] | undefined, + updateIssues?: GraphQLTypes["issue_mutation_response"] | undefined, /** update single row of the table: "job" */ - updateJob?:ModelTypes["job"] | undefined, + updateJob?: GraphQLTypes["job"] | undefined, /** update single row of the table: "job_method" */ - updateJobMethod?:ModelTypes["jobMethod"] | undefined, + updateJobMethod?: GraphQLTypes["jobMethod"] | undefined, /** update data of the table: "job_method" */ - updateJobMethods?:ModelTypes["jobMethod_mutation_response"] | undefined, + updateJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, /** update single row of the table: "job_status" */ - updateJobStatus?:ModelTypes["jobStatus"] | undefined, + updateJobStatus?: GraphQLTypes["jobStatus"] | undefined, /** update data of the table: "job_status" */ - updateJobStatuses?:ModelTypes["jobStatus_mutation_response"] | undefined, + updateJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, /** update data of the table: "job" */ - updateJobs?:ModelTypes["job_mutation_response"] | undefined, + updateJobs?: GraphQLTypes["job_mutation_response"] | undefined, /** update single row of the table: "line" */ - updateLine?:ModelTypes["line"] | undefined, + updateLine?: GraphQLTypes["line"] | undefined, /** update data of the table: "line" */ - updateLines?:ModelTypes["line_mutation_response"] | undefined, + updateLines?: GraphQLTypes["line_mutation_response"] | undefined, /** update single row of the table: "metric" */ - updateMetric?:ModelTypes["metric"] | undefined, + updateMetric?: GraphQLTypes["metric"] | undefined, /** update data of the table: "metric" */ - updateMetrics?:ModelTypes["metric_mutation_response"] | undefined, + updateMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, /** update single row of the table: "normalized_type" */ - updateNormalizedType?:ModelTypes["normalizedType"] | undefined, + updateNormalizedType?: GraphQLTypes["normalizedType"] | undefined, /** update data of the table: "normalized_type" */ - updateNormalizedTypes?:ModelTypes["normalizedType_mutation_response"] | undefined, + updateNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, /** update single row of the table: "payment" */ - updatePayment?:ModelTypes["payment"] | undefined, + updatePayment?: GraphQLTypes["payment"] | undefined, /** update single row of the table: "payment_status" */ - updatePaymentStatus?:ModelTypes["paymentStatus"] | undefined, + updatePaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** update data of the table: "payment_status" */ - updatePaymentStatuses?:ModelTypes["paymentStatus_mutation_response"] | undefined, + updatePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, /** update single row of the table: "payment_type" */ - updatePaymentType?:ModelTypes["paymentType"] | undefined, + updatePaymentType?: GraphQLTypes["paymentType"] | undefined, /** update data of the table: "payment_type" */ - updatePaymentTypes?:ModelTypes["paymentType_mutation_response"] | undefined, + updatePaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, /** update data of the table: "payment" */ - updatePayments?:ModelTypes["payment_mutation_response"] | undefined, + updatePayments?: GraphQLTypes["payment_mutation_response"] | undefined, /** update single row of the table: "subclassification" */ - updateSubclassification?:ModelTypes["subclassification"] | undefined, + updateSubclassification?: GraphQLTypes["subclassification"] | undefined, /** update data of the table: "subclassification" */ - updateSubclassifications?:ModelTypes["subclassification_mutation_response"] | undefined, + updateSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, /** update single row of the table: "tag" */ - updateTag?:ModelTypes["tag"] | undefined, + updateTag?: GraphQLTypes["tag"] | undefined, /** update data of the table: "tag" */ - updateTags?:ModelTypes["tag_mutation_response"] | undefined, + updateTags?: GraphQLTypes["tag_mutation_response"] | undefined, /** update single row of the table: "team" */ - updateTeam?:ModelTypes["team"] | undefined, + updateTeam?: GraphQLTypes["team"] | undefined, /** update single row of the table: "team_user" */ - updateTeamUser?:ModelTypes["teamUser"] | undefined, + updateTeamUser?: GraphQLTypes["teamUser"] | undefined, /** update data of the table: "team_user" */ - updateTeamUsers?:ModelTypes["teamUser_mutation_response"] | undefined, + updateTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, /** update data of the table: "team" */ - updateTeams?:ModelTypes["team_mutation_response"] | undefined, + updateTeams?: GraphQLTypes["team_mutation_response"] | undefined, /** update single row of the table: "unit" */ - updateUnit?:ModelTypes["unit"] | undefined, + updateUnit?: GraphQLTypes["unit"] | undefined, /** update data of the table: "unit" */ - updateUnits?:ModelTypes["unit_mutation_response"] | undefined, + updateUnits?: GraphQLTypes["unit_mutation_response"] | undefined, /** update single row of the table: "user" */ - updateUser?:ModelTypes["user"] | undefined, + updateUser?: GraphQLTypes["user"] | undefined, /** update single row of the table: "user_status" */ - updateUserStatus?:ModelTypes["userStatus"] | undefined, + updateUserStatus?: GraphQLTypes["userStatus"] | undefined, /** update data of the table: "user_status" */ - updateUserStatuses?:ModelTypes["userStatus_mutation_response"] | undefined, + updateUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, /** update data of the table: "user" */ - updateUsers?:ModelTypes["user_mutation_response"] | undefined, + updateUsers?: GraphQLTypes["user_mutation_response"] | undefined, /** update single row of the table: "webhook" */ - updateWebhook?:ModelTypes["webhook"] | undefined, + updateWebhook?: GraphQLTypes["webhook"] | undefined, /** update data of the table: "webhook" */ - updateWebhooks?:ModelTypes["webhook_mutation_response"] | undefined, + updateWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, /** update data of the table: "booking_channel" */ - update_booking_channel?:ModelTypes["booking_channel_mutation_response"] | undefined, + update_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, /** update single row of the table: "booking_channel" */ - update_booking_channel_by_pk?:ModelTypes["booking_channel"] | undefined + update_booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined }; ["normalized_type_enum"]: GraphQLTypes["normalized_type_enum"]; /** Boolean expression to compare columns of type "normalized_type_enum". All fields are combined with logical 'AND'. */ ["normalized_type_enum_comparison_exp"]: GraphQLTypes["normalized_type_enum_comparison_exp"]; /** columns and relationships of "normalized_type" */ ["normalizedType"]: { - name:string + name: string }; /** aggregated selection of "normalized_type" */ ["normalizedType_aggregate"]: { - aggregate?:ModelTypes["normalizedType_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["normalizedType_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "normalized_type" */ ["normalizedType_aggregate_fields"]: { - count:number, - max?:ModelTypes["normalizedType_max_fields"] | undefined, - min?:ModelTypes["normalizedType_min_fields"] | undefined + count: number, + max?: GraphQLTypes["normalizedType_max_fields"] | undefined, + min?: GraphQLTypes["normalizedType_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "normalized_type". All fields are combined with a logical 'AND'. */ ["normalizedType_bool_exp"]: GraphQLTypes["normalizedType_bool_exp"]; @@ -8713,18 +8713,18 @@ end). throws an error if top level container is not an array */ ["normalizedType_insert_input"]: GraphQLTypes["normalizedType_insert_input"]; /** aggregate max on columns */ ["normalizedType_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["normalizedType_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "normalized_type" */ ["normalizedType_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "normalized_type" */ ["normalizedType_on_conflict"]: GraphQLTypes["normalizedType_on_conflict"]; @@ -8745,54 +8745,54 @@ end). throws an error if top level container is not an array */ ["order_by"]: GraphQLTypes["order_by"]; /** columns and relationships of "payment" */ ["payment"]: { - arrivesAt?:ModelTypes["timestamptz"] | undefined, - centTotal?:number | undefined, + arrivesAt?: GraphQLTypes["timestamptz"] | undefined, + centTotal?: number | undefined, /** An object relationship */ - connection?:ModelTypes["connection"] | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - currency?:ModelTypes["currency_enum"] | undefined, - description?:string | undefined, + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + currency?: GraphQLTypes["currency_enum"] | undefined, + description?: string | undefined, /** An object relationship */ - entity?:ModelTypes["entity"] | undefined, - entityId?:ModelTypes["uuid"] | undefined, - id:ModelTypes["uuid"], + entity?: GraphQLTypes["entity"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id: GraphQLTypes["uuid"], /** An array relationship */ - lines:Array | undefined, + lines: Array, /** An aggregate relationship */ - lines_aggregate:ModelTypes["line_aggregate"], - metadata?:ModelTypes["jsonb"] | undefined, - paidAt?:ModelTypes["timestamptz"] | undefined, - status?:ModelTypes["payment_status_enum"] | undefined, + lines_aggregate: GraphQLTypes["line_aggregate"], + metadata?: GraphQLTypes["jsonb"] | undefined, + paidAt?: GraphQLTypes["timestamptz"] | undefined, + status?: GraphQLTypes["payment_status_enum"] | undefined, /** An array relationship */ - tags:Array | undefined, + tags: Array, /** An aggregate relationship */ - tags_aggregate:ModelTypes["tag_aggregate"], + tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ - team?:ModelTypes["team"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "payment" */ ["payment_aggregate"]: { - aggregate?:ModelTypes["payment_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["payment_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "payment" */ ["payment_aggregate_fields"]: { - avg?:ModelTypes["payment_avg_fields"] | undefined, - count:number, - max?:ModelTypes["payment_max_fields"] | undefined, - min?:ModelTypes["payment_min_fields"] | undefined, - stddev?:ModelTypes["payment_stddev_fields"] | undefined, - stddev_pop?:ModelTypes["payment_stddev_pop_fields"] | undefined, - stddev_samp?:ModelTypes["payment_stddev_samp_fields"] | undefined, - sum?:ModelTypes["payment_sum_fields"] | undefined, - var_pop?:ModelTypes["payment_var_pop_fields"] | undefined, - var_samp?:ModelTypes["payment_var_samp_fields"] | undefined, - variance?:ModelTypes["payment_variance_fields"] | undefined + avg?: GraphQLTypes["payment_avg_fields"] | undefined, + count: number, + max?: GraphQLTypes["payment_max_fields"] | undefined, + min?: GraphQLTypes["payment_min_fields"] | undefined, + stddev?: GraphQLTypes["payment_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["payment_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["payment_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["payment_sum_fields"] | undefined, + var_pop?: GraphQLTypes["payment_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["payment_var_samp_fields"] | undefined, + variance?: GraphQLTypes["payment_variance_fields"] | undefined }; /** order by aggregate values of table "payment" */ ["payment_aggregate_order_by"]: GraphQLTypes["payment_aggregate_order_by"]; @@ -8802,7 +8802,7 @@ end). throws an error if top level container is not an array */ ["payment_arr_rel_insert_input"]: GraphQLTypes["payment_arr_rel_insert_input"]; /** aggregate avg on columns */ ["payment_avg_fields"]: { - centTotal?:number | undefined + centTotal?: number | undefined }; /** order by avg() on columns of table "payment" */ ["payment_avg_order_by"]: GraphQLTypes["payment_avg_order_by"]; @@ -8823,44 +8823,44 @@ end). throws an error if top level container is not an array */ ["payment_insert_input"]: GraphQLTypes["payment_insert_input"]; /** aggregate max on columns */ ["payment_max_fields"]: { - arrivesAt?:ModelTypes["timestamptz"] | undefined, - centTotal?:number | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - description?:string | undefined, - entityId?:ModelTypes["uuid"] | undefined, - id?:ModelTypes["uuid"] | undefined, - paidAt?:ModelTypes["timestamptz"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + arrivesAt?: GraphQLTypes["timestamptz"] | undefined, + centTotal?: number | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + paidAt?: GraphQLTypes["timestamptz"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "payment" */ ["payment_max_order_by"]: GraphQLTypes["payment_max_order_by"]; /** aggregate min on columns */ ["payment_min_fields"]: { - arrivesAt?:ModelTypes["timestamptz"] | undefined, - centTotal?:number | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - description?:string | undefined, - entityId?:ModelTypes["uuid"] | undefined, - id?:ModelTypes["uuid"] | undefined, - paidAt?:ModelTypes["timestamptz"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + arrivesAt?: GraphQLTypes["timestamptz"] | undefined, + centTotal?: number | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + description?: string | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + paidAt?: GraphQLTypes["timestamptz"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "payment" */ ["payment_min_order_by"]: GraphQLTypes["payment_min_order_by"]; /** response of any mutation on the table "payment" */ ["payment_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "payment" */ ["payment_obj_rel_insert_input"]: GraphQLTypes["payment_obj_rel_insert_input"]; @@ -8881,25 +8881,25 @@ end). throws an error if top level container is not an array */ ["payment_status_enum_comparison_exp"]: GraphQLTypes["payment_status_enum_comparison_exp"]; /** aggregate stddev on columns */ ["payment_stddev_fields"]: { - centTotal?:number | undefined + centTotal?: number | undefined }; /** order by stddev() on columns of table "payment" */ ["payment_stddev_order_by"]: GraphQLTypes["payment_stddev_order_by"]; /** aggregate stddev_pop on columns */ ["payment_stddev_pop_fields"]: { - centTotal?:number | undefined + centTotal?: number | undefined }; /** order by stddev_pop() on columns of table "payment" */ ["payment_stddev_pop_order_by"]: GraphQLTypes["payment_stddev_pop_order_by"]; /** aggregate stddev_samp on columns */ ["payment_stddev_samp_fields"]: { - centTotal?:number | undefined + centTotal?: number | undefined }; /** order by stddev_samp() on columns of table "payment" */ ["payment_stddev_samp_order_by"]: GraphQLTypes["payment_stddev_samp_order_by"]; /** aggregate sum on columns */ ["payment_sum_fields"]: { - centTotal?:number | undefined + centTotal?: number | undefined }; /** order by sum() on columns of table "payment" */ ["payment_sum_order_by"]: GraphQLTypes["payment_sum_order_by"]; @@ -8907,36 +8907,36 @@ end). throws an error if top level container is not an array */ ["payment_update_column"]: GraphQLTypes["payment_update_column"]; /** aggregate var_pop on columns */ ["payment_var_pop_fields"]: { - centTotal?:number | undefined + centTotal?: number | undefined }; /** order by var_pop() on columns of table "payment" */ ["payment_var_pop_order_by"]: GraphQLTypes["payment_var_pop_order_by"]; /** aggregate var_samp on columns */ ["payment_var_samp_fields"]: { - centTotal?:number | undefined + centTotal?: number | undefined }; /** order by var_samp() on columns of table "payment" */ ["payment_var_samp_order_by"]: GraphQLTypes["payment_var_samp_order_by"]; /** aggregate variance on columns */ ["payment_variance_fields"]: { - centTotal?:number | undefined + centTotal?: number | undefined }; /** order by variance() on columns of table "payment" */ ["payment_variance_order_by"]: GraphQLTypes["payment_variance_order_by"]; /** columns and relationships of "payment_status" */ ["paymentStatus"]: { - name:string + name: string }; /** aggregated selection of "payment_status" */ ["paymentStatus_aggregate"]: { - aggregate?:ModelTypes["paymentStatus_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["paymentStatus_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "payment_status" */ ["paymentStatus_aggregate_fields"]: { - count:number, - max?:ModelTypes["paymentStatus_max_fields"] | undefined, - min?:ModelTypes["paymentStatus_min_fields"] | undefined + count: number, + max?: GraphQLTypes["paymentStatus_max_fields"] | undefined, + min?: GraphQLTypes["paymentStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "payment_status". All fields are combined with a logical 'AND'. */ ["paymentStatus_bool_exp"]: GraphQLTypes["paymentStatus_bool_exp"]; @@ -8946,18 +8946,18 @@ end). throws an error if top level container is not an array */ ["paymentStatus_insert_input"]: GraphQLTypes["paymentStatus_insert_input"]; /** aggregate max on columns */ ["paymentStatus_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["paymentStatus_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "payment_status" */ ["paymentStatus_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "payment_status" */ ["paymentStatus_on_conflict"]: GraphQLTypes["paymentStatus_on_conflict"]; @@ -8973,18 +8973,18 @@ end). throws an error if top level container is not an array */ ["paymentStatus_update_column"]: GraphQLTypes["paymentStatus_update_column"]; /** columns and relationships of "payment_type" */ ["paymentType"]: { - name:string + name: string }; /** aggregated selection of "payment_type" */ ["paymentType_aggregate"]: { - aggregate?:ModelTypes["paymentType_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["paymentType_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "payment_type" */ ["paymentType_aggregate_fields"]: { - count:number, - max?:ModelTypes["paymentType_max_fields"] | undefined, - min?:ModelTypes["paymentType_min_fields"] | undefined + count: number, + max?: GraphQLTypes["paymentType_max_fields"] | undefined, + min?: GraphQLTypes["paymentType_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "payment_type". All fields are combined with a logical 'AND'. */ ["paymentType_bool_exp"]: GraphQLTypes["paymentType_bool_exp"]; @@ -8994,18 +8994,18 @@ end). throws an error if top level container is not an array */ ["paymentType_insert_input"]: GraphQLTypes["paymentType_insert_input"]; /** aggregate max on columns */ ["paymentType_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["paymentType_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "payment_type" */ ["paymentType_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "payment_type" */ ["paymentType_on_conflict"]: GraphQLTypes["paymentType_on_conflict"]; @@ -9021,190 +9021,190 @@ end). throws an error if top level container is not an array */ ["paymentType_update_column"]: GraphQLTypes["paymentType_update_column"]; ["query_root"]: { /** fetch aggregated fields from the table: "booking_status" */ - aggregateBookingStatuses:ModelTypes["bookingStatus_aggregate"], + aggregateBookingStatuses: GraphQLTypes["bookingStatus_aggregate"], /** fetch aggregated fields from the table: "booking" */ - aggregateBookings:ModelTypes["booking_aggregate"], + aggregateBookings: GraphQLTypes["booking_aggregate"], /** fetch aggregated fields from the table: "classification" */ - aggregateClassifications:ModelTypes["classification_aggregate"], + aggregateClassifications: GraphQLTypes["classification_aggregate"], /** fetch aggregated fields from the table: "connection" */ - aggregateConnections:ModelTypes["connection_aggregate"], + aggregateConnections: GraphQLTypes["connection_aggregate"], /** fetch aggregated fields from the table: "currency" */ - aggregateCurrencies:ModelTypes["currency_aggregate"], + aggregateCurrencies: GraphQLTypes["currency_aggregate"], /** fetch aggregated fields from the table: "entity" */ - aggregateEntities:ModelTypes["entity_aggregate"], + aggregateEntities: GraphQLTypes["entity_aggregate"], /** fetch aggregated fields from the table: "entity_status" */ - aggregateEntityStatuses:ModelTypes["entityStatus_aggregate"], + aggregateEntityStatuses: GraphQLTypes["entityStatus_aggregate"], /** fetch aggregated fields from the table: "integration_type" */ - aggregateIntegrationTypes:ModelTypes["integrationType_aggregate"], + aggregateIntegrationTypes: GraphQLTypes["integrationType_aggregate"], /** fetch aggregated fields from the table: "integration" */ - aggregateIntegrations:ModelTypes["integration_aggregate"], + aggregateIntegrations: GraphQLTypes["integration_aggregate"], /** fetch aggregated fields from the table: "issue" */ - aggregateIssues:ModelTypes["issue_aggregate"], + aggregateIssues: GraphQLTypes["issue_aggregate"], /** fetch aggregated fields from the table: "job_method" */ - aggregateJobMethods:ModelTypes["jobMethod_aggregate"], + aggregateJobMethods: GraphQLTypes["jobMethod_aggregate"], /** fetch aggregated fields from the table: "job_status" */ - aggregateJobStatuses:ModelTypes["jobStatus_aggregate"], + aggregateJobStatuses: GraphQLTypes["jobStatus_aggregate"], /** fetch aggregated fields from the table: "job" */ - aggregateJobs:ModelTypes["job_aggregate"], + aggregateJobs: GraphQLTypes["job_aggregate"], /** fetch aggregated fields from the table: "line" */ - aggregateLines:ModelTypes["line_aggregate"], + aggregateLines: GraphQLTypes["line_aggregate"], /** fetch aggregated fields from the table: "metric" */ - aggregateMetrics:ModelTypes["metric_aggregate"], + aggregateMetrics: GraphQLTypes["metric_aggregate"], /** fetch aggregated fields from the table: "normalized_type" */ - aggregateNormalizedTypes:ModelTypes["normalizedType_aggregate"], + aggregateNormalizedTypes: GraphQLTypes["normalizedType_aggregate"], /** fetch aggregated fields from the table: "payment_status" */ - aggregatePaymentStatuses:ModelTypes["paymentStatus_aggregate"], + aggregatePaymentStatuses: GraphQLTypes["paymentStatus_aggregate"], /** fetch aggregated fields from the table: "payment_type" */ - aggregatePaymentTypes:ModelTypes["paymentType_aggregate"], + aggregatePaymentTypes: GraphQLTypes["paymentType_aggregate"], /** fetch aggregated fields from the table: "payment" */ - aggregatePayments:ModelTypes["payment_aggregate"], + aggregatePayments: GraphQLTypes["payment_aggregate"], /** fetch aggregated fields from the table: "subclassification" */ - aggregateSubclassifications:ModelTypes["subclassification_aggregate"], + aggregateSubclassifications: GraphQLTypes["subclassification_aggregate"], /** fetch aggregated fields from the table: "tag" */ - aggregateTags:ModelTypes["tag_aggregate"], + aggregateTags: GraphQLTypes["tag_aggregate"], /** fetch aggregated fields from the table: "team_user" */ - aggregateTeamUsers:ModelTypes["teamUser_aggregate"], + aggregateTeamUsers: GraphQLTypes["teamUser_aggregate"], /** fetch aggregated fields from the table: "team" */ - aggregateTeams:ModelTypes["team_aggregate"], + aggregateTeams: GraphQLTypes["team_aggregate"], /** fetch aggregated fields from the table: "unit" */ - aggregateUnits:ModelTypes["unit_aggregate"], + aggregateUnits: GraphQLTypes["unit_aggregate"], /** fetch aggregated fields from the table: "user_status" */ - aggregateUserStatuses:ModelTypes["userStatus_aggregate"], + aggregateUserStatuses: GraphQLTypes["userStatus_aggregate"], /** fetch aggregated fields from the table: "user" */ - aggregateUsers:ModelTypes["user_aggregate"], + aggregateUsers: GraphQLTypes["user_aggregate"], /** fetch aggregated fields from the table: "webhook" */ - aggregateWebhooks:ModelTypes["webhook_aggregate"], + aggregateWebhooks: GraphQLTypes["webhook_aggregate"], /** fetch data from the table: "booking" using primary key columns */ - booking?:ModelTypes["booking"] | undefined, + booking?: GraphQLTypes["booking"] | undefined, /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?:ModelTypes["bookingStatus"] | undefined, + bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** fetch data from the table: "booking_status" */ - bookingStatuses:Array | undefined, + bookingStatuses: Array, /** fetch data from the table: "booking_channel" */ - booking_channel:Array | undefined, + booking_channel: Array, /** fetch aggregated fields from the table: "booking_channel" */ - booking_channel_aggregate:ModelTypes["booking_channel_aggregate"], + booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?:ModelTypes["booking_channel"] | undefined, + booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, /** An array relationship */ - bookings:Array | undefined, + bookings: Array, /** fetch data from the table: "classification" using primary key columns */ - classification?:ModelTypes["classification"] | undefined, + classification?: GraphQLTypes["classification"] | undefined, /** fetch data from the table: "classification" */ - classifications:Array | undefined, + classifications: Array, /** fetch data from the table: "connection" using primary key columns */ - connection?:ModelTypes["connection"] | undefined, + connection?: GraphQLTypes["connection"] | undefined, /** An array relationship */ - connections:Array | undefined, + connections: Array, /** fetch data from the table: "currency" */ - currencies:Array | undefined, + currencies: Array, /** fetch data from the table: "currency" using primary key columns */ - currency?:ModelTypes["currency"] | undefined, + currency?: GraphQLTypes["currency"] | undefined, /** An array relationship */ - entities:Array | undefined, + entities: Array, /** fetch data from the table: "entity" using primary key columns */ - entity?:ModelTypes["entity"] | undefined, + entity?: GraphQLTypes["entity"] | undefined, /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?:ModelTypes["entityStatus"] | undefined, + entityStatus?: GraphQLTypes["entityStatus"] | undefined, /** fetch data from the table: "entity_status" */ - entityStatuses:Array | undefined, + entityStatuses: Array, /** fetch data from the table: "integration" using primary key columns */ - integration?:ModelTypes["integration"] | undefined, + integration?: GraphQLTypes["integration"] | undefined, /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?:ModelTypes["integrationType"] | undefined, + integrationType?: GraphQLTypes["integrationType"] | undefined, /** fetch data from the table: "integration_type" */ - integrationTypes:Array | undefined, + integrationTypes: Array, /** An array relationship */ - integrations:Array | undefined, + integrations: Array, /** fetch data from the table: "issue" using primary key columns */ - issue?:ModelTypes["issue"] | undefined, + issue?: GraphQLTypes["issue"] | undefined, /** An array relationship */ - issues:Array | undefined, + issues: Array, /** fetch data from the table: "job" using primary key columns */ - job?:ModelTypes["job"] | undefined, + job?: GraphQLTypes["job"] | undefined, /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?:ModelTypes["jobMethod"] | undefined, + jobMethod?: GraphQLTypes["jobMethod"] | undefined, /** fetch data from the table: "job_method" */ - jobMethods:Array | undefined, + jobMethods: Array, /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?:ModelTypes["jobStatus"] | undefined, + jobStatus?: GraphQLTypes["jobStatus"] | undefined, /** fetch data from the table: "job_status" */ - jobStatuses:Array | undefined, + jobStatuses: Array, /** An array relationship */ - jobs:Array | undefined, + jobs: Array, /** fetch data from the table: "line" using primary key columns */ - line?:ModelTypes["line"] | undefined, + line?: GraphQLTypes["line"] | undefined, /** An array relationship */ - lines:Array | undefined, + lines: Array, /** fetch data from the table: "metric" using primary key columns */ - metric?:ModelTypes["metric"] | undefined, + metric?: GraphQLTypes["metric"] | undefined, /** An array relationship */ - metrics:Array | undefined, + metrics: Array, /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?:ModelTypes["normalizedType"] | undefined, + normalizedType?: GraphQLTypes["normalizedType"] | undefined, /** fetch data from the table: "normalized_type" */ - normalizedTypes:Array | undefined, + normalizedTypes: Array, /** fetch data from the table: "payment" using primary key columns */ - payment?:ModelTypes["payment"] | undefined, + payment?: GraphQLTypes["payment"] | undefined, /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?:ModelTypes["paymentStatus"] | undefined, + paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** fetch data from the table: "payment_status" */ - paymentStatuses:Array | undefined, + paymentStatuses: Array, /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?:ModelTypes["paymentType"] | undefined, + paymentType?: GraphQLTypes["paymentType"] | undefined, /** fetch data from the table: "payment_type" */ - paymentTypes:Array | undefined, + paymentTypes: Array, /** An array relationship */ - payments:Array | undefined, + payments: Array, /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?:ModelTypes["subclassification"] | undefined, + subclassification?: GraphQLTypes["subclassification"] | undefined, /** fetch data from the table: "subclassification" */ - subclassifications:Array | undefined, + subclassifications: Array, /** fetch data from the table: "tag" using primary key columns */ - tag?:ModelTypes["tag"] | undefined, + tag?: GraphQLTypes["tag"] | undefined, /** An array relationship */ - tags:Array | undefined, + tags: Array, /** fetch data from the table: "team" using primary key columns */ - team?:ModelTypes["team"] | undefined, + team?: GraphQLTypes["team"] | undefined, /** fetch data from the table: "team_user" using primary key columns */ - teamUser?:ModelTypes["teamUser"] | undefined, + teamUser?: GraphQLTypes["teamUser"] | undefined, /** fetch data from the table: "team_user" */ - teamUsers:Array | undefined, + teamUsers: Array, /** fetch data from the table: "team" */ - teams:Array | undefined, + teams: Array, /** fetch data from the table: "unit" using primary key columns */ - unit?:ModelTypes["unit"] | undefined, + unit?: GraphQLTypes["unit"] | undefined, /** An array relationship */ - units:Array | undefined, + units: Array, /** fetch data from the table: "user" using primary key columns */ - user?:ModelTypes["user"] | undefined, + user?: GraphQLTypes["user"] | undefined, /** fetch data from the table: "user_status" using primary key columns */ - userStatus?:ModelTypes["userStatus"] | undefined, + userStatus?: GraphQLTypes["userStatus"] | undefined, /** fetch data from the table: "user_status" */ - userStatuses:Array | undefined, + userStatuses: Array, /** fetch data from the table: "user" */ - users:Array | undefined, + users: Array, /** fetch data from the table: "webhook" using primary key columns */ - webhook?:ModelTypes["webhook"] | undefined, + webhook?: GraphQLTypes["webhook"] | undefined, /** An array relationship */ - webhooks:Array | undefined + webhooks: Array }; /** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ ["String_comparison_exp"]: GraphQLTypes["String_comparison_exp"]; /** columns and relationships of "subclassification" */ ["subclassification"]: { - name:string + name: string }; /** aggregated selection of "subclassification" */ ["subclassification_aggregate"]: { - aggregate?:ModelTypes["subclassification_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["subclassification_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "subclassification" */ ["subclassification_aggregate_fields"]: { - count:number, - max?:ModelTypes["subclassification_max_fields"] | undefined, - min?:ModelTypes["subclassification_min_fields"] | undefined + count: number, + max?: GraphQLTypes["subclassification_max_fields"] | undefined, + min?: GraphQLTypes["subclassification_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "subclassification". All fields are combined with a logical 'AND'. */ ["subclassification_bool_exp"]: GraphQLTypes["subclassification_bool_exp"]; @@ -9217,18 +9217,18 @@ end). throws an error if top level container is not an array */ ["subclassification_insert_input"]: GraphQLTypes["subclassification_insert_input"]; /** aggregate max on columns */ ["subclassification_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["subclassification_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "subclassification" */ ["subclassification_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "subclassification" */ ["subclassification_on_conflict"]: GraphQLTypes["subclassification_on_conflict"]; @@ -9244,208 +9244,208 @@ end). throws an error if top level container is not an array */ ["subclassification_update_column"]: GraphQLTypes["subclassification_update_column"]; ["subscription_root"]: { /** fetch aggregated fields from the table: "booking_status" */ - aggregateBookingStatuses:ModelTypes["bookingStatus_aggregate"], + aggregateBookingStatuses: GraphQLTypes["bookingStatus_aggregate"], /** fetch aggregated fields from the table: "booking" */ - aggregateBookings:ModelTypes["booking_aggregate"], + aggregateBookings: GraphQLTypes["booking_aggregate"], /** fetch aggregated fields from the table: "classification" */ - aggregateClassifications:ModelTypes["classification_aggregate"], + aggregateClassifications: GraphQLTypes["classification_aggregate"], /** fetch aggregated fields from the table: "connection" */ - aggregateConnections:ModelTypes["connection_aggregate"], + aggregateConnections: GraphQLTypes["connection_aggregate"], /** fetch aggregated fields from the table: "currency" */ - aggregateCurrencies:ModelTypes["currency_aggregate"], + aggregateCurrencies: GraphQLTypes["currency_aggregate"], /** fetch aggregated fields from the table: "entity" */ - aggregateEntities:ModelTypes["entity_aggregate"], + aggregateEntities: GraphQLTypes["entity_aggregate"], /** fetch aggregated fields from the table: "entity_status" */ - aggregateEntityStatuses:ModelTypes["entityStatus_aggregate"], + aggregateEntityStatuses: GraphQLTypes["entityStatus_aggregate"], /** fetch aggregated fields from the table: "integration_type" */ - aggregateIntegrationTypes:ModelTypes["integrationType_aggregate"], + aggregateIntegrationTypes: GraphQLTypes["integrationType_aggregate"], /** fetch aggregated fields from the table: "integration" */ - aggregateIntegrations:ModelTypes["integration_aggregate"], + aggregateIntegrations: GraphQLTypes["integration_aggregate"], /** fetch aggregated fields from the table: "issue" */ - aggregateIssues:ModelTypes["issue_aggregate"], + aggregateIssues: GraphQLTypes["issue_aggregate"], /** fetch aggregated fields from the table: "job_method" */ - aggregateJobMethods:ModelTypes["jobMethod_aggregate"], + aggregateJobMethods: GraphQLTypes["jobMethod_aggregate"], /** fetch aggregated fields from the table: "job_status" */ - aggregateJobStatuses:ModelTypes["jobStatus_aggregate"], + aggregateJobStatuses: GraphQLTypes["jobStatus_aggregate"], /** fetch aggregated fields from the table: "job" */ - aggregateJobs:ModelTypes["job_aggregate"], + aggregateJobs: GraphQLTypes["job_aggregate"], /** fetch aggregated fields from the table: "line" */ - aggregateLines:ModelTypes["line_aggregate"], + aggregateLines: GraphQLTypes["line_aggregate"], /** fetch aggregated fields from the table: "metric" */ - aggregateMetrics:ModelTypes["metric_aggregate"], + aggregateMetrics: GraphQLTypes["metric_aggregate"], /** fetch aggregated fields from the table: "normalized_type" */ - aggregateNormalizedTypes:ModelTypes["normalizedType_aggregate"], + aggregateNormalizedTypes: GraphQLTypes["normalizedType_aggregate"], /** fetch aggregated fields from the table: "payment_status" */ - aggregatePaymentStatuses:ModelTypes["paymentStatus_aggregate"], + aggregatePaymentStatuses: GraphQLTypes["paymentStatus_aggregate"], /** fetch aggregated fields from the table: "payment_type" */ - aggregatePaymentTypes:ModelTypes["paymentType_aggregate"], + aggregatePaymentTypes: GraphQLTypes["paymentType_aggregate"], /** fetch aggregated fields from the table: "payment" */ - aggregatePayments:ModelTypes["payment_aggregate"], + aggregatePayments: GraphQLTypes["payment_aggregate"], /** fetch aggregated fields from the table: "subclassification" */ - aggregateSubclassifications:ModelTypes["subclassification_aggregate"], + aggregateSubclassifications: GraphQLTypes["subclassification_aggregate"], /** fetch aggregated fields from the table: "tag" */ - aggregateTags:ModelTypes["tag_aggregate"], + aggregateTags: GraphQLTypes["tag_aggregate"], /** fetch aggregated fields from the table: "team_user" */ - aggregateTeamUsers:ModelTypes["teamUser_aggregate"], + aggregateTeamUsers: GraphQLTypes["teamUser_aggregate"], /** fetch aggregated fields from the table: "team" */ - aggregateTeams:ModelTypes["team_aggregate"], + aggregateTeams: GraphQLTypes["team_aggregate"], /** fetch aggregated fields from the table: "unit" */ - aggregateUnits:ModelTypes["unit_aggregate"], + aggregateUnits: GraphQLTypes["unit_aggregate"], /** fetch aggregated fields from the table: "user_status" */ - aggregateUserStatuses:ModelTypes["userStatus_aggregate"], + aggregateUserStatuses: GraphQLTypes["userStatus_aggregate"], /** fetch aggregated fields from the table: "user" */ - aggregateUsers:ModelTypes["user_aggregate"], + aggregateUsers: GraphQLTypes["user_aggregate"], /** fetch aggregated fields from the table: "webhook" */ - aggregateWebhooks:ModelTypes["webhook_aggregate"], + aggregateWebhooks: GraphQLTypes["webhook_aggregate"], /** fetch data from the table: "booking" using primary key columns */ - booking?:ModelTypes["booking"] | undefined, + booking?: GraphQLTypes["booking"] | undefined, /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?:ModelTypes["bookingStatus"] | undefined, + bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** fetch data from the table: "booking_status" */ - bookingStatuses:Array | undefined, + bookingStatuses: Array, /** fetch data from the table: "booking_channel" */ - booking_channel:Array | undefined, + booking_channel: Array, /** fetch aggregated fields from the table: "booking_channel" */ - booking_channel_aggregate:ModelTypes["booking_channel_aggregate"], + booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?:ModelTypes["booking_channel"] | undefined, + booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, /** An array relationship */ - bookings:Array | undefined, + bookings: Array, /** fetch data from the table: "classification" using primary key columns */ - classification?:ModelTypes["classification"] | undefined, + classification?: GraphQLTypes["classification"] | undefined, /** fetch data from the table: "classification" */ - classifications:Array | undefined, + classifications: Array, /** fetch data from the table: "connection" using primary key columns */ - connection?:ModelTypes["connection"] | undefined, + connection?: GraphQLTypes["connection"] | undefined, /** An array relationship */ - connections:Array | undefined, + connections: Array, /** fetch data from the table: "currency" */ - currencies:Array | undefined, + currencies: Array, /** fetch data from the table: "currency" using primary key columns */ - currency?:ModelTypes["currency"] | undefined, + currency?: GraphQLTypes["currency"] | undefined, /** An array relationship */ - entities:Array | undefined, + entities: Array, /** fetch data from the table: "entity" using primary key columns */ - entity?:ModelTypes["entity"] | undefined, + entity?: GraphQLTypes["entity"] | undefined, /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?:ModelTypes["entityStatus"] | undefined, + entityStatus?: GraphQLTypes["entityStatus"] | undefined, /** fetch data from the table: "entity_status" */ - entityStatuses:Array | undefined, + entityStatuses: Array, /** fetch data from the table: "integration" using primary key columns */ - integration?:ModelTypes["integration"] | undefined, + integration?: GraphQLTypes["integration"] | undefined, /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?:ModelTypes["integrationType"] | undefined, + integrationType?: GraphQLTypes["integrationType"] | undefined, /** fetch data from the table: "integration_type" */ - integrationTypes:Array | undefined, + integrationTypes: Array, /** An array relationship */ - integrations:Array | undefined, + integrations: Array, /** fetch data from the table: "issue" using primary key columns */ - issue?:ModelTypes["issue"] | undefined, + issue?: GraphQLTypes["issue"] | undefined, /** An array relationship */ - issues:Array | undefined, + issues: Array, /** fetch data from the table: "job" using primary key columns */ - job?:ModelTypes["job"] | undefined, + job?: GraphQLTypes["job"] | undefined, /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?:ModelTypes["jobMethod"] | undefined, + jobMethod?: GraphQLTypes["jobMethod"] | undefined, /** fetch data from the table: "job_method" */ - jobMethods:Array | undefined, + jobMethods: Array, /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?:ModelTypes["jobStatus"] | undefined, + jobStatus?: GraphQLTypes["jobStatus"] | undefined, /** fetch data from the table: "job_status" */ - jobStatuses:Array | undefined, + jobStatuses: Array, /** An array relationship */ - jobs:Array | undefined, + jobs: Array, /** fetch data from the table: "line" using primary key columns */ - line?:ModelTypes["line"] | undefined, + line?: GraphQLTypes["line"] | undefined, /** An array relationship */ - lines:Array | undefined, + lines: Array, /** fetch data from the table: "metric" using primary key columns */ - metric?:ModelTypes["metric"] | undefined, + metric?: GraphQLTypes["metric"] | undefined, /** An array relationship */ - metrics:Array | undefined, + metrics: Array, /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?:ModelTypes["normalizedType"] | undefined, + normalizedType?: GraphQLTypes["normalizedType"] | undefined, /** fetch data from the table: "normalized_type" */ - normalizedTypes:Array | undefined, + normalizedTypes: Array, /** fetch data from the table: "payment" using primary key columns */ - payment?:ModelTypes["payment"] | undefined, + payment?: GraphQLTypes["payment"] | undefined, /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?:ModelTypes["paymentStatus"] | undefined, + paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** fetch data from the table: "payment_status" */ - paymentStatuses:Array | undefined, + paymentStatuses: Array, /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?:ModelTypes["paymentType"] | undefined, + paymentType?: GraphQLTypes["paymentType"] | undefined, /** fetch data from the table: "payment_type" */ - paymentTypes:Array | undefined, + paymentTypes: Array, /** An array relationship */ - payments:Array | undefined, + payments: Array, /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?:ModelTypes["subclassification"] | undefined, + subclassification?: GraphQLTypes["subclassification"] | undefined, /** fetch data from the table: "subclassification" */ - subclassifications:Array | undefined, + subclassifications: Array, /** fetch data from the table: "tag" using primary key columns */ - tag?:ModelTypes["tag"] | undefined, + tag?: GraphQLTypes["tag"] | undefined, /** An array relationship */ - tags:Array | undefined, + tags: Array, /** fetch data from the table: "team" using primary key columns */ - team?:ModelTypes["team"] | undefined, + team?: GraphQLTypes["team"] | undefined, /** fetch data from the table: "team_user" using primary key columns */ - teamUser?:ModelTypes["teamUser"] | undefined, + teamUser?: GraphQLTypes["teamUser"] | undefined, /** fetch data from the table: "team_user" */ - teamUsers:Array | undefined, + teamUsers: Array, /** fetch data from the table: "team" */ - teams:Array | undefined, + teams: Array, /** fetch data from the table: "unit" using primary key columns */ - unit?:ModelTypes["unit"] | undefined, + unit?: GraphQLTypes["unit"] | undefined, /** An array relationship */ - units:Array | undefined, + units: Array, /** fetch data from the table: "user" using primary key columns */ - user?:ModelTypes["user"] | undefined, + user?: GraphQLTypes["user"] | undefined, /** fetch data from the table: "user_status" using primary key columns */ - userStatus?:ModelTypes["userStatus"] | undefined, + userStatus?: GraphQLTypes["userStatus"] | undefined, /** fetch data from the table: "user_status" */ - userStatuses:Array | undefined, + userStatuses: Array, /** fetch data from the table: "user" */ - users:Array | undefined, + users: Array, /** fetch data from the table: "webhook" using primary key columns */ - webhook?:ModelTypes["webhook"] | undefined, + webhook?: GraphQLTypes["webhook"] | undefined, /** An array relationship */ - webhooks:Array | undefined + webhooks: Array }; /** columns and relationships of "tag" */ ["tag"]: { /** An object relationship */ - booking:ModelTypes["booking"], - bookingId:ModelTypes["uuid"], + booking: GraphQLTypes["booking"], + bookingId: GraphQLTypes["uuid"], /** An object relationship */ - connection:ModelTypes["connection"], - connectionId:ModelTypes["uuid"], - createdAt?:ModelTypes["timestamptz"] | undefined, - id:ModelTypes["uuid"], - json:ModelTypes["jsonb"], + connection: GraphQLTypes["connection"], + connectionId: GraphQLTypes["uuid"], + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id: GraphQLTypes["uuid"], + json: GraphQLTypes["jsonb"], /** An object relationship */ - payment:ModelTypes["payment"], - paymentId:ModelTypes["uuid"], + payment: GraphQLTypes["payment"], + paymentId: GraphQLTypes["uuid"], /** An object relationship */ - team:ModelTypes["team"], - teamId:ModelTypes["uuid"], - type:string, - uniqueRef:string, + team: GraphQLTypes["team"], + teamId: GraphQLTypes["uuid"], + type: string, + uniqueRef: string, /** An object relationship */ - unit:ModelTypes["unit"], - unitId:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] | undefined + unit: GraphQLTypes["unit"], + unitId: GraphQLTypes["uuid"], + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "tag" */ ["tag_aggregate"]: { - aggregate?:ModelTypes["tag_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["tag_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "tag" */ ["tag_aggregate_fields"]: { - count:number, - max?:ModelTypes["tag_max_fields"] | undefined, - min?:ModelTypes["tag_min_fields"] | undefined + count: number, + max?: GraphQLTypes["tag_max_fields"] | undefined, + min?: GraphQLTypes["tag_min_fields"] | undefined }; /** order by aggregate values of table "tag" */ ["tag_aggregate_order_by"]: GraphQLTypes["tag_aggregate_order_by"]; @@ -9468,40 +9468,40 @@ end). throws an error if top level container is not an array */ ["tag_insert_input"]: GraphQLTypes["tag_insert_input"]; /** aggregate max on columns */ ["tag_max_fields"]: { - bookingId?:ModelTypes["uuid"] | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - paymentId?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + bookingId?: GraphQLTypes["uuid"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "tag" */ ["tag_max_order_by"]: GraphQLTypes["tag_max_order_by"]; /** aggregate min on columns */ ["tag_min_fields"]: { - bookingId?:ModelTypes["uuid"] | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - paymentId?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - type?:string | undefined, - uniqueRef?:string | undefined, - unitId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + bookingId?: GraphQLTypes["uuid"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + paymentId?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + type?: string | undefined, + uniqueRef?: string | undefined, + unitId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "tag" */ ["tag_min_order_by"]: GraphQLTypes["tag_min_order_by"]; /** response of any mutation on the table "tag" */ ["tag_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "tag" */ ["tag_on_conflict"]: GraphQLTypes["tag_on_conflict"]; @@ -9519,94 +9519,94 @@ end). throws an error if top level container is not an array */ ["tag_update_column"]: GraphQLTypes["tag_update_column"]; /** columns and relationships of "team" */ ["team"]: { - address?:string | undefined, + address?: string | undefined, /** An array relationship */ - bookings:Array | undefined, + bookings: Array, /** An aggregate relationship */ - bookings_aggregate:ModelTypes["booking_aggregate"], - commissionPercentage?:ModelTypes["numeric"] | undefined, + bookings_aggregate: GraphQLTypes["booking_aggregate"], + commissionPercentage?: GraphQLTypes["numeric"] | undefined, /** An array relationship */ - connections:Array | undefined, + connections: Array, /** An aggregate relationship */ - connections_aggregate:ModelTypes["connection_aggregate"], - createdAt:ModelTypes["timestamptz"], - email?:string | undefined, + connections_aggregate: GraphQLTypes["connection_aggregate"], + createdAt: GraphQLTypes["timestamptz"], + email?: string | undefined, /** An array relationship */ - entities:Array | undefined, + entities: Array, /** An aggregate relationship */ - entities_aggregate:ModelTypes["entity_aggregate"], - id:ModelTypes["uuid"], + entities_aggregate: GraphQLTypes["entity_aggregate"], + id: GraphQLTypes["uuid"], /** An array relationship */ - integrations:Array | undefined, + integrations: Array, /** An aggregate relationship */ - integrations_aggregate:ModelTypes["integration_aggregate"], - isActive?:boolean | undefined, - isTest?:boolean | undefined, + integrations_aggregate: GraphQLTypes["integration_aggregate"], + isActive?: boolean | undefined, + isTest?: boolean | undefined, /** An array relationship */ - issues:Array | undefined, + issues: Array, /** An aggregate relationship */ - issues_aggregate:ModelTypes["issue_aggregate"], + issues_aggregate: GraphQLTypes["issue_aggregate"], /** An array relationship */ - jobs:Array | undefined, + jobs: Array, /** An aggregate relationship */ - jobs_aggregate:ModelTypes["job_aggregate"], + jobs_aggregate: GraphQLTypes["job_aggregate"], /** An array relationship */ - lines:Array | undefined, + lines: Array, /** An aggregate relationship */ - lines_aggregate:ModelTypes["line_aggregate"], + lines_aggregate: GraphQLTypes["line_aggregate"], /** An array relationship */ - members:Array | undefined, + members: Array, /** An aggregate relationship */ - members_aggregate:ModelTypes["teamUser_aggregate"], + members_aggregate: GraphQLTypes["teamUser_aggregate"], /** An array relationship */ - metrics:Array | undefined, + metrics: Array, /** An aggregate relationship */ - metrics_aggregate:ModelTypes["metric_aggregate"], - name:string, + metrics_aggregate: GraphQLTypes["metric_aggregate"], + name: string, /** An array relationship */ - payments:Array | undefined, + payments: Array, /** An aggregate relationship */ - payments_aggregate:ModelTypes["payment_aggregate"], - stripeId?:string | undefined, - stripeSubscriptionItemId?:string | undefined, - supportEmail?:string | undefined, - supportPhone?:string | undefined, + payments_aggregate: GraphQLTypes["payment_aggregate"], + stripeId?: string | undefined, + stripeSubscriptionItemId?: string | undefined, + supportEmail?: string | undefined, + supportPhone?: string | undefined, /** An array relationship */ - tags:Array | undefined, + tags: Array, /** An aggregate relationship */ - tags_aggregate:ModelTypes["tag_aggregate"], + tags_aggregate: GraphQLTypes["tag_aggregate"], /** An array relationship */ - units:Array | undefined, + units: Array, /** An aggregate relationship */ - units_aggregate:ModelTypes["unit_aggregate"], + units_aggregate: GraphQLTypes["unit_aggregate"], /** An array relationship */ - webhooks:Array | undefined, + webhooks: Array, /** An aggregate relationship */ - webhooks_aggregate:ModelTypes["webhook_aggregate"], - website?:string | undefined + webhooks_aggregate: GraphQLTypes["webhook_aggregate"], + website?: string | undefined }; /** aggregated selection of "team" */ ["team_aggregate"]: { - aggregate?:ModelTypes["team_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["team_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "team" */ ["team_aggregate_fields"]: { - avg?:ModelTypes["team_avg_fields"] | undefined, - count:number, - max?:ModelTypes["team_max_fields"] | undefined, - min?:ModelTypes["team_min_fields"] | undefined, - stddev?:ModelTypes["team_stddev_fields"] | undefined, - stddev_pop?:ModelTypes["team_stddev_pop_fields"] | undefined, - stddev_samp?:ModelTypes["team_stddev_samp_fields"] | undefined, - sum?:ModelTypes["team_sum_fields"] | undefined, - var_pop?:ModelTypes["team_var_pop_fields"] | undefined, - var_samp?:ModelTypes["team_var_samp_fields"] | undefined, - variance?:ModelTypes["team_variance_fields"] | undefined + avg?: GraphQLTypes["team_avg_fields"] | undefined, + count: number, + max?: GraphQLTypes["team_max_fields"] | undefined, + min?: GraphQLTypes["team_min_fields"] | undefined, + stddev?: GraphQLTypes["team_stddev_fields"] | undefined, + stddev_pop?: GraphQLTypes["team_stddev_pop_fields"] | undefined, + stddev_samp?: GraphQLTypes["team_stddev_samp_fields"] | undefined, + sum?: GraphQLTypes["team_sum_fields"] | undefined, + var_pop?: GraphQLTypes["team_var_pop_fields"] | undefined, + var_samp?: GraphQLTypes["team_var_samp_fields"] | undefined, + variance?: GraphQLTypes["team_variance_fields"] | undefined }; /** aggregate avg on columns */ ["team_avg_fields"]: { - commissionPercentage?:number | undefined + commissionPercentage?: number | undefined }; /** Boolean expression to filter rows from the table "team". All fields are combined with a logical 'AND'. */ ["team_bool_exp"]: GraphQLTypes["team_bool_exp"]; @@ -9618,38 +9618,38 @@ end). throws an error if top level container is not an array */ ["team_insert_input"]: GraphQLTypes["team_insert_input"]; /** aggregate max on columns */ ["team_max_fields"]: { - address?:string | undefined, - commissionPercentage?:ModelTypes["numeric"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - email?:string | undefined, - id?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - stripeId?:string | undefined, - stripeSubscriptionItemId?:string | undefined, - supportEmail?:string | undefined, - supportPhone?:string | undefined, - website?:string | undefined + address?: string | undefined, + commissionPercentage?: GraphQLTypes["numeric"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + stripeId?: string | undefined, + stripeSubscriptionItemId?: string | undefined, + supportEmail?: string | undefined, + supportPhone?: string | undefined, + website?: string | undefined }; /** aggregate min on columns */ ["team_min_fields"]: { - address?:string | undefined, - commissionPercentage?:ModelTypes["numeric"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - email?:string | undefined, - id?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - stripeId?:string | undefined, - stripeSubscriptionItemId?:string | undefined, - supportEmail?:string | undefined, - supportPhone?:string | undefined, - website?:string | undefined + address?: string | undefined, + commissionPercentage?: GraphQLTypes["numeric"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + stripeId?: string | undefined, + stripeSubscriptionItemId?: string | undefined, + supportEmail?: string | undefined, + supportPhone?: string | undefined, + website?: string | undefined }; /** response of any mutation on the table "team" */ ["team_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "team" */ ["team_obj_rel_insert_input"]: GraphQLTypes["team_obj_rel_insert_input"]; @@ -9665,57 +9665,57 @@ end). throws an error if top level container is not an array */ ["team_set_input"]: GraphQLTypes["team_set_input"]; /** aggregate stddev on columns */ ["team_stddev_fields"]: { - commissionPercentage?:number | undefined + commissionPercentage?: number | undefined }; /** aggregate stddev_pop on columns */ ["team_stddev_pop_fields"]: { - commissionPercentage?:number | undefined + commissionPercentage?: number | undefined }; /** aggregate stddev_samp on columns */ ["team_stddev_samp_fields"]: { - commissionPercentage?:number | undefined + commissionPercentage?: number | undefined }; /** aggregate sum on columns */ ["team_sum_fields"]: { - commissionPercentage?:ModelTypes["numeric"] | undefined + commissionPercentage?: GraphQLTypes["numeric"] | undefined }; /** update columns of table "team" */ ["team_update_column"]: GraphQLTypes["team_update_column"]; /** aggregate var_pop on columns */ ["team_var_pop_fields"]: { - commissionPercentage?:number | undefined + commissionPercentage?: number | undefined }; /** aggregate var_samp on columns */ ["team_var_samp_fields"]: { - commissionPercentage?:number | undefined + commissionPercentage?: number | undefined }; /** aggregate variance on columns */ ["team_variance_fields"]: { - commissionPercentage?:number | undefined + commissionPercentage?: number | undefined }; /** columns and relationships of "team_user" */ ["teamUser"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - id:ModelTypes["uuid"], - role?:string | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id: GraphQLTypes["uuid"], + role?: string | undefined, /** An object relationship */ - team:ModelTypes["team"], - teamId:ModelTypes["uuid"], - updatedAt?:ModelTypes["timestamptz"] | undefined, + team: GraphQLTypes["team"], + teamId: GraphQLTypes["uuid"], + updatedAt?: GraphQLTypes["timestamptz"] | undefined, /** An object relationship */ - user:ModelTypes["user"], - userId:ModelTypes["uuid"] + user: GraphQLTypes["user"], + userId: GraphQLTypes["uuid"] }; /** aggregated selection of "team_user" */ ["teamUser_aggregate"]: { - aggregate?:ModelTypes["teamUser_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["teamUser_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "team_user" */ ["teamUser_aggregate_fields"]: { - count:number, - max?:ModelTypes["teamUser_max_fields"] | undefined, - min?:ModelTypes["teamUser_min_fields"] | undefined + count: number, + max?: GraphQLTypes["teamUser_max_fields"] | undefined, + min?: GraphQLTypes["teamUser_min_fields"] | undefined }; /** order by aggregate values of table "team_user" */ ["teamUser_aggregate_order_by"]: GraphQLTypes["teamUser_aggregate_order_by"]; @@ -9729,32 +9729,32 @@ end). throws an error if top level container is not an array */ ["teamUser_insert_input"]: GraphQLTypes["teamUser_insert_input"]; /** aggregate max on columns */ ["teamUser_max_fields"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - role?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined, - userId?:ModelTypes["uuid"] | undefined + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + role?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + userId?: GraphQLTypes["uuid"] | undefined }; /** order by max() on columns of table "team_user" */ ["teamUser_max_order_by"]: GraphQLTypes["teamUser_max_order_by"]; /** aggregate min on columns */ ["teamUser_min_fields"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - role?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined, - userId?:ModelTypes["uuid"] | undefined + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + role?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined, + userId?: GraphQLTypes["uuid"] | undefined }; /** order by min() on columns of table "team_user" */ ["teamUser_min_order_by"]: GraphQLTypes["teamUser_min_order_by"]; /** response of any mutation on the table "team_user" */ ["teamUser_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "team_user" */ ["teamUser_on_conflict"]: GraphQLTypes["teamUser_on_conflict"]; @@ -9774,40 +9774,40 @@ end). throws an error if top level container is not an array */ /** columns and relationships of "unit" */ ["unit"]: { /** An array relationship */ - bookings:Array | undefined, + bookings: Array, /** An aggregate relationship */ - bookings_aggregate:ModelTypes["booking_aggregate"], + bookings_aggregate: GraphQLTypes["booking_aggregate"], /** An object relationship */ - connection?:ModelTypes["connection"] | undefined, - connectionId?:ModelTypes["uuid"] | undefined, - createdAt:ModelTypes["timestamptz"], + connection?: GraphQLTypes["connection"] | undefined, + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt: GraphQLTypes["timestamptz"], /** An object relationship */ - entity?:ModelTypes["entity"] | undefined, - entityId?:ModelTypes["uuid"] | undefined, - id:ModelTypes["uuid"], - metadata?:ModelTypes["jsonb"] | undefined, - name?:string | undefined, - status?:string | undefined, + entity?: GraphQLTypes["entity"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id: GraphQLTypes["uuid"], + metadata?: GraphQLTypes["jsonb"] | undefined, + name?: string | undefined, + status?: string | undefined, /** An array relationship */ - tags:Array | undefined, + tags: Array, /** An aggregate relationship */ - tags_aggregate:ModelTypes["tag_aggregate"], + tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ - team?:ModelTypes["team"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - uniqueRef?:string | undefined, - updatedAt:ModelTypes["timestamptz"] + team?: GraphQLTypes["team"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + updatedAt: GraphQLTypes["timestamptz"] }; /** aggregated selection of "unit" */ ["unit_aggregate"]: { - aggregate?:ModelTypes["unit_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["unit_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "unit" */ ["unit_aggregate_fields"]: { - count:number, - max?:ModelTypes["unit_max_fields"] | undefined, - min?:ModelTypes["unit_min_fields"] | undefined + count: number, + max?: GraphQLTypes["unit_max_fields"] | undefined, + min?: GraphQLTypes["unit_min_fields"] | undefined }; /** order by aggregate values of table "unit" */ ["unit_aggregate_order_by"]: GraphQLTypes["unit_aggregate_order_by"]; @@ -9830,38 +9830,38 @@ end). throws an error if top level container is not an array */ ["unit_insert_input"]: GraphQLTypes["unit_insert_input"]; /** aggregate max on columns */ ["unit_max_fields"]: { - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - entityId?:ModelTypes["uuid"] | undefined, - id?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - status?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - uniqueRef?:string | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by max() on columns of table "unit" */ ["unit_max_order_by"]: GraphQLTypes["unit_max_order_by"]; /** aggregate min on columns */ ["unit_min_fields"]: { - connectionId?:ModelTypes["uuid"] | undefined, - createdAt?:ModelTypes["timestamptz"] | undefined, - entityId?:ModelTypes["uuid"] | undefined, - id?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - status?:string | undefined, - teamId?:ModelTypes["uuid"] | undefined, - uniqueRef?:string | undefined, - updatedAt?:ModelTypes["timestamptz"] | undefined + connectionId?: GraphQLTypes["uuid"] | undefined, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + entityId?: GraphQLTypes["uuid"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + status?: string | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + uniqueRef?: string | undefined, + updatedAt?: GraphQLTypes["timestamptz"] | undefined }; /** order by min() on columns of table "unit" */ ["unit_min_order_by"]: GraphQLTypes["unit_min_order_by"]; /** response of any mutation on the table "unit" */ ["unit_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "unit" */ ["unit_obj_rel_insert_input"]: GraphQLTypes["unit_obj_rel_insert_input"]; @@ -9881,29 +9881,29 @@ end). throws an error if top level container is not an array */ ["unit_update_column"]: GraphQLTypes["unit_update_column"]; /** columns and relationships of "user" */ ["user"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - email:string, - id:ModelTypes["uuid"], - isAdmin:boolean, + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email: string, + id: GraphQLTypes["uuid"], + isAdmin: boolean, /** An array relationship */ - memberships:Array | undefined, + memberships: Array, /** An aggregate relationship */ - memberships_aggregate:ModelTypes["teamUser_aggregate"], - name?:string | undefined, - status?:ModelTypes["user_status_enum"] | undefined, - sub?:string | undefined, - trialExpiryAt?:ModelTypes["timestamptz"] | undefined + memberships_aggregate: GraphQLTypes["teamUser_aggregate"], + name?: string | undefined, + status?: GraphQLTypes["user_status_enum"] | undefined, + sub?: string | undefined, + trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregated selection of "user" */ ["user_aggregate"]: { - aggregate?:ModelTypes["user_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["user_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "user" */ ["user_aggregate_fields"]: { - count:number, - max?:ModelTypes["user_max_fields"] | undefined, - min?:ModelTypes["user_min_fields"] | undefined + count: number, + max?: GraphQLTypes["user_max_fields"] | undefined, + min?: GraphQLTypes["user_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "user". All fields are combined with a logical 'AND'. */ ["user_bool_exp"]: GraphQLTypes["user_bool_exp"]; @@ -9913,28 +9913,28 @@ end). throws an error if top level container is not an array */ ["user_insert_input"]: GraphQLTypes["user_insert_input"]; /** aggregate max on columns */ ["user_max_fields"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - email?:string | undefined, - id?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - sub?:string | undefined, - trialExpiryAt?:ModelTypes["timestamptz"] | undefined + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + sub?: string | undefined, + trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined }; /** aggregate min on columns */ ["user_min_fields"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - email?:string | undefined, - id?:ModelTypes["uuid"] | undefined, - name?:string | undefined, - sub?:string | undefined, - trialExpiryAt?:ModelTypes["timestamptz"] | undefined + createdAt?: GraphQLTypes["timestamptz"] | undefined, + email?: string | undefined, + id?: GraphQLTypes["uuid"] | undefined, + name?: string | undefined, + sub?: string | undefined, + trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined }; /** response of any mutation on the table "user" */ ["user_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "user" */ ["user_obj_rel_insert_input"]: GraphQLTypes["user_obj_rel_insert_input"]; @@ -9955,18 +9955,18 @@ end). throws an error if top level container is not an array */ ["user_update_column"]: GraphQLTypes["user_update_column"]; /** columns and relationships of "user_status" */ ["userStatus"]: { - name:string + name: string }; /** aggregated selection of "user_status" */ ["userStatus_aggregate"]: { - aggregate?:ModelTypes["userStatus_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["userStatus_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "user_status" */ ["userStatus_aggregate_fields"]: { - count:number, - max?:ModelTypes["userStatus_max_fields"] | undefined, - min?:ModelTypes["userStatus_min_fields"] | undefined + count: number, + max?: GraphQLTypes["userStatus_max_fields"] | undefined, + min?: GraphQLTypes["userStatus_min_fields"] | undefined }; /** Boolean expression to filter rows from the table "user_status". All fields are combined with a logical 'AND'. */ ["userStatus_bool_exp"]: GraphQLTypes["userStatus_bool_exp"]; @@ -9976,18 +9976,18 @@ end). throws an error if top level container is not an array */ ["userStatus_insert_input"]: GraphQLTypes["userStatus_insert_input"]; /** aggregate max on columns */ ["userStatus_max_fields"]: { - name?:string | undefined + name?: string | undefined }; /** aggregate min on columns */ ["userStatus_min_fields"]: { - name?:string | undefined + name?: string | undefined }; /** response of any mutation on the table "user_status" */ ["userStatus_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "user_status" */ ["userStatus_on_conflict"]: GraphQLTypes["userStatus_on_conflict"]; @@ -10006,26 +10006,26 @@ end). throws an error if top level container is not an array */ ["uuid_comparison_exp"]: GraphQLTypes["uuid_comparison_exp"]; /** columns and relationships of "webhook" */ ["webhook"]: { - createdAt:ModelTypes["timestamptz"], - headers?:ModelTypes["jsonb"] | undefined, - id:ModelTypes["uuid"], + createdAt: GraphQLTypes["timestamptz"], + headers?: GraphQLTypes["jsonb"] | undefined, + id: GraphQLTypes["uuid"], /** An object relationship */ - team:ModelTypes["team"], - teamId:ModelTypes["uuid"], - types:ModelTypes["jsonb"], - types2?:ModelTypes["_text"] | undefined, - url:string + team: GraphQLTypes["team"], + teamId: GraphQLTypes["uuid"], + types: GraphQLTypes["jsonb"], + types2?: GraphQLTypes["_text"] | undefined, + url: string }; /** aggregated selection of "webhook" */ ["webhook_aggregate"]: { - aggregate?:ModelTypes["webhook_aggregate_fields"] | undefined, - nodes:Array | undefined + aggregate?: GraphQLTypes["webhook_aggregate_fields"] | undefined, + nodes: Array }; /** aggregate fields of "webhook" */ ["webhook_aggregate_fields"]: { - count:number, - max?:ModelTypes["webhook_max_fields"] | undefined, - min?:ModelTypes["webhook_min_fields"] | undefined + count: number, + max?: GraphQLTypes["webhook_max_fields"] | undefined, + min?: GraphQLTypes["webhook_min_fields"] | undefined }; /** order by aggregate values of table "webhook" */ ["webhook_aggregate_order_by"]: GraphQLTypes["webhook_aggregate_order_by"]; @@ -10048,28 +10048,28 @@ end). throws an error if top level container is not an array */ ["webhook_insert_input"]: GraphQLTypes["webhook_insert_input"]; /** aggregate max on columns */ ["webhook_max_fields"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - url?:string | undefined + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + url?: string | undefined }; /** order by max() on columns of table "webhook" */ ["webhook_max_order_by"]: GraphQLTypes["webhook_max_order_by"]; /** aggregate min on columns */ ["webhook_min_fields"]: { - createdAt?:ModelTypes["timestamptz"] | undefined, - id?:ModelTypes["uuid"] | undefined, - teamId?:ModelTypes["uuid"] | undefined, - url?:string | undefined + createdAt?: GraphQLTypes["timestamptz"] | undefined, + id?: GraphQLTypes["uuid"] | undefined, + teamId?: GraphQLTypes["uuid"] | undefined, + url?: string | undefined }; /** order by min() on columns of table "webhook" */ ["webhook_min_order_by"]: GraphQLTypes["webhook_min_order_by"]; /** response of any mutation on the table "webhook" */ ["webhook_mutation_response"]: { /** number of rows affected by the mutation */ - affected_rows:number, + affected_rows: number, /** data from the rows affected by the mutation */ - returning:Array | undefined + returning: Array }; /** on conflict condition type for table "webhook" */ ["webhook_on_conflict"]: GraphQLTypes["webhook_on_conflict"]; @@ -10088,18 +10088,18 @@ end). throws an error if top level container is not an array */ } export type GraphQLTypes = { - ["_text"]:any; + ["_text"]: any; /** Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. */ ["_text_comparison_exp"]: { _eq?: GraphQLTypes["_text"] | undefined, _gt?: GraphQLTypes["_text"] | undefined, _gte?: GraphQLTypes["_text"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _lt?: GraphQLTypes["_text"] | undefined, _lte?: GraphQLTypes["_text"] | undefined, _neq?: GraphQLTypes["_text"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** columns and relationships of "booking" */ ["booking"]: { @@ -10123,7 +10123,7 @@ export type GraphQLTypes = { id: GraphQLTypes["uuid"], isOTA?: boolean | undefined, /** An array relationship */ - lines: Array | undefined, + lines: Array, /** An aggregate relationship */ lines_aggregate: GraphQLTypes["line_aggregate"], metadata?: GraphQLTypes["jsonb"] | undefined, @@ -10132,12 +10132,12 @@ export type GraphQLTypes = { otaBooking?: GraphQLTypes["booking"] | undefined, otaBookingId?: GraphQLTypes["uuid"] | undefined, /** An array relationship */ - relatedBookings: Array | undefined, + relatedBookings: Array, /** An aggregate relationship */ relatedBookings_aggregate: GraphQLTypes["booking_aggregate"], status?: GraphQLTypes["booking_status_enum"] | undefined, /** An array relationship */ - tags: Array | undefined, + tags: Array, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ @@ -10153,7 +10153,7 @@ export type GraphQLTypes = { ["booking_aggregate"]: { __typename: "booking_aggregate", aggregate?: GraphQLTypes["booking_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "booking" */ ["booking_aggregate_fields"]: { @@ -10190,7 +10190,7 @@ export type GraphQLTypes = { }; /** input type for inserting array relation for remote table "booking" */ ["booking_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["booking_on_conflict"] | undefined }; @@ -10207,9 +10207,9 @@ export type GraphQLTypes = { }; /** Boolean expression to filter rows from the table "booking". All fields are combined with a logical 'AND'. */ ["booking_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["booking_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, bookedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, bookerName?: GraphQLTypes["String_comparison_exp"] | undefined, bookingChannel?: GraphQLTypes["booking_channel_enum_comparison_exp"] | undefined, @@ -10250,7 +10250,7 @@ export type GraphQLTypes = { ["booking_channel_aggregate"]: { __typename: "booking_channel_aggregate", aggregate?: GraphQLTypes["booking_channel_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "booking_channel" */ ["booking_channel_aggregate_fields"]: { @@ -10261,9 +10261,9 @@ export type GraphQLTypes = { }; /** Boolean expression to filter rows from the table "booking_channel". All fields are combined with a logical 'AND'. */ ["booking_channel_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["booking_channel_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "booking_channel" */ @@ -10272,10 +10272,10 @@ export type GraphQLTypes = { /** Boolean expression to compare columns of type "booking_channel_enum". All fields are combined with logical 'AND'. */ ["booking_channel_enum_comparison_exp"]: { _eq?: GraphQLTypes["booking_channel_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["booking_channel_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** input type for inserting data into table "booking_channel" */ ["booking_channel_insert_input"]: { @@ -10297,12 +10297,12 @@ export type GraphQLTypes = { /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "booking_channel" */ ["booking_channel_on_conflict"]: { constraint: GraphQLTypes["booking_channel_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["booking_channel_bool_exp"] | undefined }; /** Ordering options when selecting data from "booking_channel". */ @@ -10325,7 +10325,7 @@ export type GraphQLTypes = { ["booking_constraint"]: booking_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["booking_delete_at_path_input"]: { - metadata?: Array + metadata?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -10462,7 +10462,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "booking" */ ["booking_obj_rel_insert_input"]: { @@ -10473,7 +10473,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "booking" */ ["booking_on_conflict"]: { constraint: GraphQLTypes["booking_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["booking_bool_exp"] | undefined }; /** Ordering options when selecting data from "booking". */ @@ -10548,10 +10548,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "booking_status_enum". All fields are combined with logical 'AND'. */ ["booking_status_enum_comparison_exp"]: { _eq?: GraphQLTypes["booking_status_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["booking_status_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** aggregate stddev on columns */ ["booking_stddev_fields"]: { @@ -10641,7 +10641,7 @@ end). throws an error if top level container is not an array */ ["bookingStatus_aggregate"]: { __typename: "bookingStatus_aggregate", aggregate?: GraphQLTypes["bookingStatus_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "booking_status" */ ["bookingStatus_aggregate_fields"]: { @@ -10652,9 +10652,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "booking_status". All fields are combined with a logical 'AND'. */ ["bookingStatus_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["bookingStatus_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "booking_status" */ @@ -10679,12 +10679,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "booking_status" */ ["bookingStatus_on_conflict"]: { constraint: GraphQLTypes["bookingStatus_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["bookingStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "booking_status". */ @@ -10708,12 +10708,12 @@ end). throws an error if top level container is not an array */ _eq?: boolean | undefined, _gt?: boolean | undefined, _gte?: boolean | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _lt?: boolean | undefined, _lte?: boolean | undefined, _neq?: boolean | undefined, - _nin?: Array + _nin?: Array | undefined }; /** columns and relationships of "classification" */ ["classification"]: { @@ -10724,7 +10724,7 @@ end). throws an error if top level container is not an array */ ["classification_aggregate"]: { __typename: "classification_aggregate", aggregate?: GraphQLTypes["classification_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "classification" */ ["classification_aggregate_fields"]: { @@ -10735,9 +10735,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "classification". All fields are combined with a logical 'AND'. */ ["classification_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["classification_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "classification" */ @@ -10746,10 +10746,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "classification_enum". All fields are combined with logical 'AND'. */ ["classification_enum_comparison_exp"]: { _eq?: GraphQLTypes["classification_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["classification_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** input type for inserting data into table "classification" */ ["classification_insert_input"]: { @@ -10771,12 +10771,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "classification" */ ["classification_on_conflict"]: { constraint: GraphQLTypes["classification_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["classification_bool_exp"] | undefined }; /** Ordering options when selecting data from "classification". */ @@ -10799,13 +10799,13 @@ end). throws an error if top level container is not an array */ ["connection"]: { __typename: "connection", /** An array relationship */ - bookings: Array | undefined, + bookings: Array, /** An aggregate relationship */ bookings_aggregate: GraphQLTypes["booking_aggregate"], createdAt: GraphQLTypes["timestamptz"], credentials?: GraphQLTypes["jsonb"] | undefined, /** An array relationship */ - entities: Array | undefined, + entities: Array, /** An aggregate relationship */ entities_aggregate: GraphQLTypes["entity_aggregate"], id: GraphQLTypes["uuid"], @@ -10813,33 +10813,33 @@ end). throws an error if top level container is not an array */ integration: GraphQLTypes["integration"], integrationId: GraphQLTypes["uuid"], /** An array relationship */ - jobs: Array | undefined, + jobs: Array, /** An aggregate relationship */ jobs_aggregate: GraphQLTypes["job_aggregate"], /** An array relationship */ - lines: Array | undefined, + lines: Array, /** An aggregate relationship */ lines_aggregate: GraphQLTypes["line_aggregate"], /** An array relationship */ - metrics: Array | undefined, + metrics: Array, /** An aggregate relationship */ metrics_aggregate: GraphQLTypes["metric_aggregate"], name: string, /** An array relationship */ - payments: Array | undefined, + payments: Array, /** An aggregate relationship */ payments_aggregate: GraphQLTypes["payment_aggregate"], persistentState?: GraphQLTypes["jsonb"] | undefined, status?: string | undefined, /** An array relationship */ - tags: Array | undefined, + tags: Array, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ team: GraphQLTypes["team"], teamId: GraphQLTypes["uuid"], /** An array relationship */ - units: Array | undefined, + units: Array, /** An aggregate relationship */ units_aggregate: GraphQLTypes["unit_aggregate"], webhookKey?: string | undefined @@ -10848,7 +10848,7 @@ end). throws an error if top level container is not an array */ ["connection_aggregate"]: { __typename: "connection_aggregate", aggregate?: GraphQLTypes["connection_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "connection" */ ["connection_aggregate_fields"]: { @@ -10870,15 +10870,15 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "connection" */ ["connection_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["connection_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "connection". All fields are combined with a logical 'AND'. */ ["connection_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["connection_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, bookings?: GraphQLTypes["booking_bool_exp"] | undefined, createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, credentials?: GraphQLTypes["jsonb_comparison_exp"] | undefined, @@ -10903,8 +10903,8 @@ end). throws an error if top level container is not an array */ ["connection_constraint"]: connection_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["connection_delete_at_path_input"]: { - credentials?: Array, - persistentState?: Array + credentials?: Array | undefined, + persistentState?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -10987,7 +10987,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "connection" */ ["connection_obj_rel_insert_input"]: { @@ -10998,7 +10998,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "connection" */ ["connection_on_conflict"]: { constraint: GraphQLTypes["connection_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["connection_bool_exp"] | undefined }; /** Ordering options when selecting data from "connection". */ @@ -11057,7 +11057,7 @@ end). throws an error if top level container is not an array */ ["currency_aggregate"]: { __typename: "currency_aggregate", aggregate?: GraphQLTypes["currency_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "currency" */ ["currency_aggregate_fields"]: { @@ -11068,9 +11068,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "currency". All fields are combined with a logical 'AND'. */ ["currency_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["currency_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "currency" */ @@ -11079,10 +11079,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "currency_enum". All fields are combined with logical 'AND'. */ ["currency_enum_comparison_exp"]: { _eq?: GraphQLTypes["currency_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["currency_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** input type for inserting data into table "currency" */ ["currency_insert_input"]: { @@ -11104,12 +11104,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "currency" */ ["currency_on_conflict"]: { constraint: GraphQLTypes["currency_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["currency_bool_exp"] | undefined }; /** Ordering options when selecting data from "currency". */ @@ -11132,7 +11132,7 @@ end). throws an error if top level container is not an array */ ["entity"]: { __typename: "entity", /** An array relationship */ - bookings: Array | undefined, + bookings: Array, /** An aggregate relationship */ bookings_aggregate: GraphQLTypes["booking_aggregate"], /** An object relationship */ @@ -11151,7 +11151,7 @@ end). throws an error if top level container is not an array */ normalizedType?: GraphQLTypes["normalized_type_enum"] | undefined, parsedAt?: GraphQLTypes["timestamptz"] | undefined, /** An array relationship */ - payments: Array | undefined, + payments: Array, /** An aggregate relationship */ payments_aggregate: GraphQLTypes["payment_aggregate"], /** An object relationship */ @@ -11160,7 +11160,7 @@ end). throws an error if top level container is not an array */ status: GraphQLTypes["entity_status_enum"], statusText?: string | undefined, /** An array relationship */ - successorEntities: Array | undefined, + successorEntities: Array, /** An aggregate relationship */ successorEntities_aggregate: GraphQLTypes["entity_aggregate"], /** An object relationship */ @@ -11169,7 +11169,7 @@ end). throws an error if top level container is not an array */ type: string, uniqueRef?: string | undefined, /** An array relationship */ - units: Array | undefined, + units: Array, /** An aggregate relationship */ units_aggregate: GraphQLTypes["unit_aggregate"], updatedAt: GraphQLTypes["timestamptz"] @@ -11178,7 +11178,7 @@ end). throws an error if top level container is not an array */ ["entity_aggregate"]: { __typename: "entity_aggregate", aggregate?: GraphQLTypes["entity_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "entity" */ ["entity_aggregate_fields"]: { @@ -11201,15 +11201,15 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "entity" */ ["entity_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["entity_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "entity". All fields are combined with a logical 'AND'. */ ["entity_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["entity_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, bookings?: GraphQLTypes["booking_bool_exp"] | undefined, connection?: GraphQLTypes["connection_bool_exp"] | undefined, connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, @@ -11241,9 +11241,9 @@ end). throws an error if top level container is not an array */ ["entity_constraint"]: entity_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["entity_delete_at_path_input"]: { - diffJson?: Array, - json?: Array, - normalizedJson?: Array + diffJson?: Array | undefined, + json?: Array | undefined, + normalizedJson?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -11359,7 +11359,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "entity" */ ["entity_obj_rel_insert_input"]: { @@ -11370,7 +11370,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "entity" */ ["entity_on_conflict"]: { constraint: GraphQLTypes["entity_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["entity_bool_exp"] | undefined }; /** Ordering options when selecting data from "entity". */ @@ -11439,10 +11439,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "entity_status_enum". All fields are combined with logical 'AND'. */ ["entity_status_enum_comparison_exp"]: { _eq?: GraphQLTypes["entity_status_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["entity_status_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** update columns of table "entity" */ ["entity_update_column"]: entity_update_column; @@ -11455,7 +11455,7 @@ end). throws an error if top level container is not an array */ ["entityStatus_aggregate"]: { __typename: "entityStatus_aggregate", aggregate?: GraphQLTypes["entityStatus_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "entity_status" */ ["entityStatus_aggregate_fields"]: { @@ -11466,9 +11466,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "entity_status". All fields are combined with a logical 'AND'. */ ["entityStatus_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["entityStatus_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "entity_status" */ @@ -11493,12 +11493,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "entity_status" */ ["entityStatus_on_conflict"]: { constraint: GraphQLTypes["entityStatus_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["entityStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "entity_status". */ @@ -11517,30 +11517,30 @@ end). throws an error if top level container is not an array */ }; /** update columns of table "entity_status" */ ["entityStatus_update_column"]: entityStatus_update_column; - ["float8"]:any; + ["float8"]: any; /** Boolean expression to compare columns of type "float8". All fields are combined with logical 'AND'. */ ["float8_comparison_exp"]: { _eq?: GraphQLTypes["float8"] | undefined, _gt?: GraphQLTypes["float8"] | undefined, _gte?: GraphQLTypes["float8"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _lt?: GraphQLTypes["float8"] | undefined, _lte?: GraphQLTypes["float8"] | undefined, _neq?: GraphQLTypes["float8"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ ["Int_comparison_exp"]: { _eq?: number | undefined, _gt?: number | undefined, _gte?: number | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _lt?: number | undefined, _lte?: number | undefined, _neq?: number | undefined, - _nin?: Array + _nin?: Array | undefined }; /** columns and relationships of "integration" */ ["integration"]: { @@ -11548,7 +11548,7 @@ end). throws an error if top level container is not an array */ apiDevUrl?: string | undefined, apiUrl: string, /** An array relationship */ - connections: Array | undefined, + connections: Array, /** An aggregate relationship */ connections_aggregate: GraphQLTypes["connection_aggregate"], icon?: string | undefined, @@ -11556,7 +11556,7 @@ end). throws an error if top level container is not an array */ isApproved?: boolean | undefined, isPrivate: boolean, /** An array relationship */ - jobs: Array | undefined, + jobs: Array, /** An aggregate relationship */ jobs_aggregate: GraphQLTypes["job_aggregate"], name: string, @@ -11570,7 +11570,7 @@ end). throws an error if top level container is not an array */ ["integration_aggregate"]: { __typename: "integration_aggregate", aggregate?: GraphQLTypes["integration_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "integration" */ ["integration_aggregate_fields"]: { @@ -11587,15 +11587,15 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "integration" */ ["integration_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["integration_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "integration". All fields are combined with a logical 'AND'. */ ["integration_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["integration_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, apiDevUrl?: GraphQLTypes["String_comparison_exp"] | undefined, apiUrl?: GraphQLTypes["String_comparison_exp"] | undefined, connections?: GraphQLTypes["connection_bool_exp"] | undefined, @@ -11676,7 +11676,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "integration" */ ["integration_obj_rel_insert_input"]: { @@ -11687,7 +11687,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "integration" */ ["integration_on_conflict"]: { constraint: GraphQLTypes["integration_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["integration_bool_exp"] | undefined }; /** Ordering options when selecting data from "integration". */ @@ -11729,10 +11729,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "integration_type_enum". All fields are combined with logical 'AND'. */ ["integration_type_enum_comparison_exp"]: { _eq?: GraphQLTypes["integration_type_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["integration_type_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** update columns of table "integration" */ ["integration_update_column"]: integration_update_column; @@ -11745,7 +11745,7 @@ end). throws an error if top level container is not an array */ ["integrationType_aggregate"]: { __typename: "integrationType_aggregate", aggregate?: GraphQLTypes["integrationType_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "integration_type" */ ["integrationType_aggregate_fields"]: { @@ -11756,9 +11756,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "integration_type". All fields are combined with a logical 'AND'. */ ["integrationType_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["integrationType_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "integration_type" */ @@ -11783,12 +11783,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "integration_type" */ ["integrationType_on_conflict"]: { constraint: GraphQLTypes["integrationType_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["integrationType_bool_exp"] | undefined }; /** Ordering options when selecting data from "integration_type". */ @@ -11831,7 +11831,7 @@ end). throws an error if top level container is not an array */ ["issue_aggregate"]: { __typename: "issue_aggregate", aggregate?: GraphQLTypes["issue_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "issue" */ ["issue_aggregate_fields"]: { @@ -11853,15 +11853,15 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "issue" */ ["issue_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["issue_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "issue". All fields are combined with a logical 'AND'. */ ["issue_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["issue_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, code?: GraphQLTypes["String_comparison_exp"] | undefined, createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, id?: GraphQLTypes["uuid_comparison_exp"] | undefined, @@ -11881,8 +11881,8 @@ end). throws an error if top level container is not an array */ ["issue_constraint"]: issue_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["issue_delete_at_path_input"]: { - requestParams?: Array, - resolveParams?: Array + requestParams?: Array | undefined, + resolveParams?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -11964,12 +11964,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "issue" */ ["issue_on_conflict"]: { constraint: GraphQLTypes["issue_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["issue_bool_exp"] | undefined }; /** Ordering options when selecting data from "issue". */ @@ -12027,7 +12027,7 @@ end). throws an error if top level container is not an array */ createdAt: GraphQLTypes["timestamptz"], endedAt?: GraphQLTypes["timestamptz"] | undefined, /** An array relationship */ - entities: Array | undefined, + entities: Array, /** An aggregate relationship */ entities_aggregate: GraphQLTypes["entity_aggregate"], id: GraphQLTypes["uuid"], @@ -12037,7 +12037,7 @@ end). throws an error if top level container is not an array */ integrationSdkVersion?: string | undefined, integrationVersion?: string | undefined, /** An array relationship */ - issues: Array | undefined, + issues: Array, /** An aggregate relationship */ issues_aggregate: GraphQLTypes["issue_aggregate"], logFile?: string | undefined, @@ -12059,7 +12059,7 @@ end). throws an error if top level container is not an array */ ["job_aggregate"]: { __typename: "job_aggregate", aggregate?: GraphQLTypes["job_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "job" */ ["job_aggregate_fields"]: { @@ -12082,15 +12082,15 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "job" */ ["job_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["job_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "job". All fields are combined with a logical 'AND'. */ ["job_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["job_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, apiVersion?: GraphQLTypes["String_comparison_exp"] | undefined, connection?: GraphQLTypes["connection_bool_exp"] | undefined, connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, @@ -12121,9 +12121,9 @@ end). throws an error if top level container is not an array */ ["job_constraint"]: job_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["job_delete_at_path_input"]: { - logs?: Array, - params?: Array, - response?: Array + logs?: Array | undefined, + params?: Array | undefined, + response?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -12207,10 +12207,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "job_method_enum". All fields are combined with logical 'AND'. */ ["job_method_enum_comparison_exp"]: { _eq?: GraphQLTypes["job_method_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["job_method_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** aggregate min on columns */ ["job_min_fields"]: { @@ -12255,7 +12255,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "job" */ ["job_obj_rel_insert_input"]: { @@ -12266,7 +12266,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "job" */ ["job_on_conflict"]: { constraint: GraphQLTypes["job_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["job_bool_exp"] | undefined }; /** Ordering options when selecting data from "job". */ @@ -12336,10 +12336,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "job_status_enum". All fields are combined with logical 'AND'. */ ["job_status_enum_comparison_exp"]: { _eq?: GraphQLTypes["job_status_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["job_status_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** update columns of table "job" */ ["job_update_column"]: job_update_column; @@ -12352,7 +12352,7 @@ end). throws an error if top level container is not an array */ ["jobMethod_aggregate"]: { __typename: "jobMethod_aggregate", aggregate?: GraphQLTypes["jobMethod_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "job_method" */ ["jobMethod_aggregate_fields"]: { @@ -12363,9 +12363,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "job_method". All fields are combined with a logical 'AND'. */ ["jobMethod_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["jobMethod_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "job_method" */ @@ -12390,12 +12390,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "job_method" */ ["jobMethod_on_conflict"]: { constraint: GraphQLTypes["jobMethod_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["jobMethod_bool_exp"] | undefined }; /** Ordering options when selecting data from "job_method". */ @@ -12423,7 +12423,7 @@ end). throws an error if top level container is not an array */ ["jobStatus_aggregate"]: { __typename: "jobStatus_aggregate", aggregate?: GraphQLTypes["jobStatus_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "job_status" */ ["jobStatus_aggregate_fields"]: { @@ -12434,9 +12434,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "job_status". All fields are combined with a logical 'AND'. */ ["jobStatus_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["jobStatus_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "job_status" */ @@ -12461,12 +12461,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "job_status" */ ["jobStatus_on_conflict"]: { constraint: GraphQLTypes["jobStatus_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["jobStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "job_status". */ @@ -12485,7 +12485,7 @@ end). throws an error if top level container is not an array */ }; /** update columns of table "job_status" */ ["jobStatus_update_column"]: jobStatus_update_column; - ["jsonb"]:any; + ["jsonb"]: any; /** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ ["jsonb_comparison_exp"]: { /** is the column contained in the given json value */ @@ -12498,15 +12498,15 @@ end). throws an error if top level container is not an array */ /** does the string exist as a top-level key in the column */ _has_key?: string | undefined, /** do all of these strings exist as top-level keys in the column */ - _has_keys_all?: Array, + _has_keys_all?: Array | undefined, /** do any of these strings exist as top-level keys in the column */ - _has_keys_any?: Array, - _in?: Array, + _has_keys_any?: Array | undefined, + _in?: Array | undefined, _is_null?: boolean | undefined, _lt?: GraphQLTypes["jsonb"] | undefined, _lte?: GraphQLTypes["jsonb"] | undefined, _neq?: GraphQLTypes["jsonb"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** columns and relationships of "line" */ ["line"]: { @@ -12522,7 +12522,7 @@ end). throws an error if top level container is not an array */ createdAt: GraphQLTypes["timestamptz"], description?: string | undefined, /** An array relationship */ - enhancementLines: Array | undefined, + enhancementLines: Array, /** An aggregate relationship */ enhancementLines_aggregate: GraphQLTypes["line_aggregate"], /** An object relationship */ @@ -12551,7 +12551,7 @@ end). throws an error if top level container is not an array */ ["line_aggregate"]: { __typename: "line_aggregate", aggregate?: GraphQLTypes["line_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "line" */ ["line_aggregate_fields"]: { @@ -12588,7 +12588,7 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "line" */ ["line_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["line_on_conflict"] | undefined }; @@ -12607,9 +12607,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "line". All fields are combined with a logical 'AND'. */ ["line_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["line_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, booking?: GraphQLTypes["booking_bool_exp"] | undefined, bookingId?: GraphQLTypes["uuid_comparison_exp"] | undefined, centTotal?: GraphQLTypes["Int_comparison_exp"] | undefined, @@ -12642,7 +12642,7 @@ end). throws an error if top level container is not an array */ ["line_constraint"]: line_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["line_delete_at_path_input"]: { - metadata?: Array + metadata?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -12777,7 +12777,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "line" */ ["line_obj_rel_insert_input"]: { @@ -12788,7 +12788,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "line" */ ["line_on_conflict"]: { constraint: GraphQLTypes["line_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["line_bool_exp"] | undefined }; /** Ordering options when selecting data from "line". */ @@ -12972,7 +12972,7 @@ end). throws an error if top level container is not an array */ ["metric_aggregate"]: { __typename: "metric_aggregate", aggregate?: GraphQLTypes["metric_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "metric" */ ["metric_aggregate_fields"]: { @@ -13009,7 +13009,7 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "metric" */ ["metric_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["metric_on_conflict"] | undefined }; @@ -13024,9 +13024,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "metric". All fields are combined with a logical 'AND'. */ ["metric_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["metric_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, connection?: GraphQLTypes["connection_bool_exp"] | undefined, connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, @@ -13046,7 +13046,7 @@ end). throws an error if top level container is not an array */ ["metric_constraint"]: metric_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["metric_delete_at_path_input"]: { - metadata?: Array + metadata?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -13142,12 +13142,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "metric" */ ["metric_on_conflict"]: { constraint: GraphQLTypes["metric_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["metric_bool_exp"] | undefined }; /** Ordering options when selecting data from "metric". */ @@ -13601,10 +13601,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "normalized_type_enum". All fields are combined with logical 'AND'. */ ["normalized_type_enum_comparison_exp"]: { _eq?: GraphQLTypes["normalized_type_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["normalized_type_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** columns and relationships of "normalized_type" */ ["normalizedType"]: { @@ -13615,7 +13615,7 @@ end). throws an error if top level container is not an array */ ["normalizedType_aggregate"]: { __typename: "normalizedType_aggregate", aggregate?: GraphQLTypes["normalizedType_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "normalized_type" */ ["normalizedType_aggregate_fields"]: { @@ -13626,9 +13626,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "normalized_type". All fields are combined with a logical 'AND'. */ ["normalizedType_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["normalizedType_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "normalized_type" */ @@ -13653,12 +13653,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "normalized_type" */ ["normalizedType_on_conflict"]: { constraint: GraphQLTypes["normalizedType_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["normalizedType_bool_exp"] | undefined }; /** Ordering options when selecting data from "normalized_type". */ @@ -13677,18 +13677,18 @@ end). throws an error if top level container is not an array */ }; /** update columns of table "normalized_type" */ ["normalizedType_update_column"]: normalizedType_update_column; - ["numeric"]:any; + ["numeric"]: any; /** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ ["numeric_comparison_exp"]: { _eq?: GraphQLTypes["numeric"] | undefined, _gt?: GraphQLTypes["numeric"] | undefined, _gte?: GraphQLTypes["numeric"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _lt?: GraphQLTypes["numeric"] | undefined, _lte?: GraphQLTypes["numeric"] | undefined, _neq?: GraphQLTypes["numeric"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** column ordering options */ ["order_by"]: order_by; @@ -13708,14 +13708,14 @@ end). throws an error if top level container is not an array */ entityId?: GraphQLTypes["uuid"] | undefined, id: GraphQLTypes["uuid"], /** An array relationship */ - lines: Array | undefined, + lines: Array, /** An aggregate relationship */ lines_aggregate: GraphQLTypes["line_aggregate"], metadata?: GraphQLTypes["jsonb"] | undefined, paidAt?: GraphQLTypes["timestamptz"] | undefined, status?: GraphQLTypes["payment_status_enum"] | undefined, /** An array relationship */ - tags: Array | undefined, + tags: Array, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ @@ -13729,7 +13729,7 @@ end). throws an error if top level container is not an array */ ["payment_aggregate"]: { __typename: "payment_aggregate", aggregate?: GraphQLTypes["payment_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "payment" */ ["payment_aggregate_fields"]: { @@ -13766,7 +13766,7 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "payment" */ ["payment_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["payment_on_conflict"] | undefined }; @@ -13781,9 +13781,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "payment". All fields are combined with a logical 'AND'. */ ["payment_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["payment_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, arrivesAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, centTotal?: GraphQLTypes["Int_comparison_exp"] | undefined, connection?: GraphQLTypes["connection_bool_exp"] | undefined, @@ -13809,7 +13809,7 @@ end). throws an error if top level container is not an array */ ["payment_constraint"]: payment_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["payment_delete_at_path_input"]: { - metadata?: Array + metadata?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -13915,7 +13915,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "payment" */ ["payment_obj_rel_insert_input"]: { @@ -13926,7 +13926,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "payment" */ ["payment_on_conflict"]: { constraint: GraphQLTypes["payment_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["payment_bool_exp"] | undefined }; /** Ordering options when selecting data from "payment". */ @@ -13984,10 +13984,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "payment_status_enum". All fields are combined with logical 'AND'. */ ["payment_status_enum_comparison_exp"]: { _eq?: GraphQLTypes["payment_status_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["payment_status_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** aggregate stddev on columns */ ["payment_stddev_fields"]: { @@ -14063,7 +14063,7 @@ end). throws an error if top level container is not an array */ ["paymentStatus_aggregate"]: { __typename: "paymentStatus_aggregate", aggregate?: GraphQLTypes["paymentStatus_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "payment_status" */ ["paymentStatus_aggregate_fields"]: { @@ -14074,9 +14074,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "payment_status". All fields are combined with a logical 'AND'. */ ["paymentStatus_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["paymentStatus_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "payment_status" */ @@ -14101,12 +14101,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "payment_status" */ ["paymentStatus_on_conflict"]: { constraint: GraphQLTypes["paymentStatus_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["paymentStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "payment_status". */ @@ -14134,7 +14134,7 @@ end). throws an error if top level container is not an array */ ["paymentType_aggregate"]: { __typename: "paymentType_aggregate", aggregate?: GraphQLTypes["paymentType_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "payment_type" */ ["paymentType_aggregate_fields"]: { @@ -14145,9 +14145,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "payment_type". All fields are combined with a logical 'AND'. */ ["paymentType_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["paymentType_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "payment_type" */ @@ -14172,12 +14172,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "payment_type" */ ["paymentType_on_conflict"]: { constraint: GraphQLTypes["paymentType_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["paymentType_bool_exp"] | undefined }; /** Ordering options when selecting data from "payment_type". */ @@ -14257,115 +14257,115 @@ end). throws an error if top level container is not an array */ /** fetch data from the table: "booking_status" using primary key columns */ bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** fetch data from the table: "booking_status" */ - bookingStatuses: Array | undefined, + bookingStatuses: Array, /** fetch data from the table: "booking_channel" */ - booking_channel: Array | undefined, + booking_channel: Array, /** fetch aggregated fields from the table: "booking_channel" */ booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], /** fetch data from the table: "booking_channel" using primary key columns */ booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, /** An array relationship */ - bookings: Array | undefined, + bookings: Array, /** fetch data from the table: "classification" using primary key columns */ classification?: GraphQLTypes["classification"] | undefined, /** fetch data from the table: "classification" */ - classifications: Array | undefined, + classifications: Array, /** fetch data from the table: "connection" using primary key columns */ connection?: GraphQLTypes["connection"] | undefined, /** An array relationship */ - connections: Array | undefined, + connections: Array, /** fetch data from the table: "currency" */ - currencies: Array | undefined, + currencies: Array, /** fetch data from the table: "currency" using primary key columns */ currency?: GraphQLTypes["currency"] | undefined, /** An array relationship */ - entities: Array | undefined, + entities: Array, /** fetch data from the table: "entity" using primary key columns */ entity?: GraphQLTypes["entity"] | undefined, /** fetch data from the table: "entity_status" using primary key columns */ entityStatus?: GraphQLTypes["entityStatus"] | undefined, /** fetch data from the table: "entity_status" */ - entityStatuses: Array | undefined, + entityStatuses: Array, /** fetch data from the table: "integration" using primary key columns */ integration?: GraphQLTypes["integration"] | undefined, /** fetch data from the table: "integration_type" using primary key columns */ integrationType?: GraphQLTypes["integrationType"] | undefined, /** fetch data from the table: "integration_type" */ - integrationTypes: Array | undefined, + integrationTypes: Array, /** An array relationship */ - integrations: Array | undefined, + integrations: Array, /** fetch data from the table: "issue" using primary key columns */ issue?: GraphQLTypes["issue"] | undefined, /** An array relationship */ - issues: Array | undefined, + issues: Array, /** fetch data from the table: "job" using primary key columns */ job?: GraphQLTypes["job"] | undefined, /** fetch data from the table: "job_method" using primary key columns */ jobMethod?: GraphQLTypes["jobMethod"] | undefined, /** fetch data from the table: "job_method" */ - jobMethods: Array | undefined, + jobMethods: Array, /** fetch data from the table: "job_status" using primary key columns */ jobStatus?: GraphQLTypes["jobStatus"] | undefined, /** fetch data from the table: "job_status" */ - jobStatuses: Array | undefined, + jobStatuses: Array, /** An array relationship */ - jobs: Array | undefined, + jobs: Array, /** fetch data from the table: "line" using primary key columns */ line?: GraphQLTypes["line"] | undefined, /** An array relationship */ - lines: Array | undefined, + lines: Array, /** fetch data from the table: "metric" using primary key columns */ metric?: GraphQLTypes["metric"] | undefined, /** An array relationship */ - metrics: Array | undefined, + metrics: Array, /** fetch data from the table: "normalized_type" using primary key columns */ normalizedType?: GraphQLTypes["normalizedType"] | undefined, /** fetch data from the table: "normalized_type" */ - normalizedTypes: Array | undefined, + normalizedTypes: Array, /** fetch data from the table: "payment" using primary key columns */ payment?: GraphQLTypes["payment"] | undefined, /** fetch data from the table: "payment_status" using primary key columns */ paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** fetch data from the table: "payment_status" */ - paymentStatuses: Array | undefined, + paymentStatuses: Array, /** fetch data from the table: "payment_type" using primary key columns */ paymentType?: GraphQLTypes["paymentType"] | undefined, /** fetch data from the table: "payment_type" */ - paymentTypes: Array | undefined, + paymentTypes: Array, /** An array relationship */ - payments: Array | undefined, + payments: Array, /** fetch data from the table: "subclassification" using primary key columns */ subclassification?: GraphQLTypes["subclassification"] | undefined, /** fetch data from the table: "subclassification" */ - subclassifications: Array | undefined, + subclassifications: Array, /** fetch data from the table: "tag" using primary key columns */ tag?: GraphQLTypes["tag"] | undefined, /** An array relationship */ - tags: Array | undefined, + tags: Array, /** fetch data from the table: "team" using primary key columns */ team?: GraphQLTypes["team"] | undefined, /** fetch data from the table: "team_user" using primary key columns */ teamUser?: GraphQLTypes["teamUser"] | undefined, /** fetch data from the table: "team_user" */ - teamUsers: Array | undefined, + teamUsers: Array, /** fetch data from the table: "team" */ - teams: Array | undefined, + teams: Array, /** fetch data from the table: "unit" using primary key columns */ unit?: GraphQLTypes["unit"] | undefined, /** An array relationship */ - units: Array | undefined, + units: Array, /** fetch data from the table: "user" using primary key columns */ user?: GraphQLTypes["user"] | undefined, /** fetch data from the table: "user_status" using primary key columns */ userStatus?: GraphQLTypes["userStatus"] | undefined, /** fetch data from the table: "user_status" */ - userStatuses: Array | undefined, + userStatuses: Array, /** fetch data from the table: "user" */ - users: Array | undefined, + users: Array, /** fetch data from the table: "webhook" using primary key columns */ webhook?: GraphQLTypes["webhook"] | undefined, /** An array relationship */ - webhooks: Array | undefined + webhooks: Array }; /** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ ["String_comparison_exp"]: { @@ -14374,7 +14374,7 @@ end). throws an error if top level container is not an array */ _gte?: string | undefined, /** does the column match the given case-insensitive pattern */ _ilike?: string | undefined, - _in?: Array, + _in?: Array | undefined, /** does the column match the given POSIX regular expression, case insensitive */ _iregex?: string | undefined, _is_null?: boolean | undefined, @@ -14385,7 +14385,7 @@ end). throws an error if top level container is not an array */ _neq?: string | undefined, /** does the column NOT match the given case-insensitive pattern */ _nilike?: string | undefined, - _nin?: Array, + _nin?: Array | undefined, /** does the column NOT match the given POSIX regular expression, case insensitive */ _niregex?: string | undefined, /** does the column NOT match the given pattern */ @@ -14408,7 +14408,7 @@ end). throws an error if top level container is not an array */ ["subclassification_aggregate"]: { __typename: "subclassification_aggregate", aggregate?: GraphQLTypes["subclassification_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "subclassification" */ ["subclassification_aggregate_fields"]: { @@ -14419,9 +14419,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "subclassification". All fields are combined with a logical 'AND'. */ ["subclassification_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["subclassification_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "subclassification" */ @@ -14430,10 +14430,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "subclassification_enum". All fields are combined with logical 'AND'. */ ["subclassification_enum_comparison_exp"]: { _eq?: GraphQLTypes["subclassification_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["subclassification_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** input type for inserting data into table "subclassification" */ ["subclassification_insert_input"]: { @@ -14455,12 +14455,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "subclassification" */ ["subclassification_on_conflict"]: { constraint: GraphQLTypes["subclassification_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["subclassification_bool_exp"] | undefined }; /** Ordering options when selecting data from "subclassification". */ @@ -14540,115 +14540,115 @@ end). throws an error if top level container is not an array */ /** fetch data from the table: "booking_status" using primary key columns */ bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, /** fetch data from the table: "booking_status" */ - bookingStatuses: Array | undefined, + bookingStatuses: Array, /** fetch data from the table: "booking_channel" */ - booking_channel: Array | undefined, + booking_channel: Array, /** fetch aggregated fields from the table: "booking_channel" */ booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], /** fetch data from the table: "booking_channel" using primary key columns */ booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, /** An array relationship */ - bookings: Array | undefined, + bookings: Array, /** fetch data from the table: "classification" using primary key columns */ classification?: GraphQLTypes["classification"] | undefined, /** fetch data from the table: "classification" */ - classifications: Array | undefined, + classifications: Array, /** fetch data from the table: "connection" using primary key columns */ connection?: GraphQLTypes["connection"] | undefined, /** An array relationship */ - connections: Array | undefined, + connections: Array, /** fetch data from the table: "currency" */ - currencies: Array | undefined, + currencies: Array, /** fetch data from the table: "currency" using primary key columns */ currency?: GraphQLTypes["currency"] | undefined, /** An array relationship */ - entities: Array | undefined, + entities: Array, /** fetch data from the table: "entity" using primary key columns */ entity?: GraphQLTypes["entity"] | undefined, /** fetch data from the table: "entity_status" using primary key columns */ entityStatus?: GraphQLTypes["entityStatus"] | undefined, /** fetch data from the table: "entity_status" */ - entityStatuses: Array | undefined, + entityStatuses: Array, /** fetch data from the table: "integration" using primary key columns */ integration?: GraphQLTypes["integration"] | undefined, /** fetch data from the table: "integration_type" using primary key columns */ integrationType?: GraphQLTypes["integrationType"] | undefined, /** fetch data from the table: "integration_type" */ - integrationTypes: Array | undefined, + integrationTypes: Array, /** An array relationship */ - integrations: Array | undefined, + integrations: Array, /** fetch data from the table: "issue" using primary key columns */ issue?: GraphQLTypes["issue"] | undefined, /** An array relationship */ - issues: Array | undefined, + issues: Array, /** fetch data from the table: "job" using primary key columns */ job?: GraphQLTypes["job"] | undefined, /** fetch data from the table: "job_method" using primary key columns */ jobMethod?: GraphQLTypes["jobMethod"] | undefined, /** fetch data from the table: "job_method" */ - jobMethods: Array | undefined, + jobMethods: Array, /** fetch data from the table: "job_status" using primary key columns */ jobStatus?: GraphQLTypes["jobStatus"] | undefined, /** fetch data from the table: "job_status" */ - jobStatuses: Array | undefined, + jobStatuses: Array, /** An array relationship */ - jobs: Array | undefined, + jobs: Array, /** fetch data from the table: "line" using primary key columns */ line?: GraphQLTypes["line"] | undefined, /** An array relationship */ - lines: Array | undefined, + lines: Array, /** fetch data from the table: "metric" using primary key columns */ metric?: GraphQLTypes["metric"] | undefined, /** An array relationship */ - metrics: Array | undefined, + metrics: Array, /** fetch data from the table: "normalized_type" using primary key columns */ normalizedType?: GraphQLTypes["normalizedType"] | undefined, /** fetch data from the table: "normalized_type" */ - normalizedTypes: Array | undefined, + normalizedTypes: Array, /** fetch data from the table: "payment" using primary key columns */ payment?: GraphQLTypes["payment"] | undefined, /** fetch data from the table: "payment_status" using primary key columns */ paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, /** fetch data from the table: "payment_status" */ - paymentStatuses: Array | undefined, + paymentStatuses: Array, /** fetch data from the table: "payment_type" using primary key columns */ paymentType?: GraphQLTypes["paymentType"] | undefined, /** fetch data from the table: "payment_type" */ - paymentTypes: Array | undefined, + paymentTypes: Array, /** An array relationship */ - payments: Array | undefined, + payments: Array, /** fetch data from the table: "subclassification" using primary key columns */ subclassification?: GraphQLTypes["subclassification"] | undefined, /** fetch data from the table: "subclassification" */ - subclassifications: Array | undefined, + subclassifications: Array, /** fetch data from the table: "tag" using primary key columns */ tag?: GraphQLTypes["tag"] | undefined, /** An array relationship */ - tags: Array | undefined, + tags: Array, /** fetch data from the table: "team" using primary key columns */ team?: GraphQLTypes["team"] | undefined, /** fetch data from the table: "team_user" using primary key columns */ teamUser?: GraphQLTypes["teamUser"] | undefined, /** fetch data from the table: "team_user" */ - teamUsers: Array | undefined, + teamUsers: Array, /** fetch data from the table: "team" */ - teams: Array | undefined, + teams: Array, /** fetch data from the table: "unit" using primary key columns */ unit?: GraphQLTypes["unit"] | undefined, /** An array relationship */ - units: Array | undefined, + units: Array, /** fetch data from the table: "user" using primary key columns */ user?: GraphQLTypes["user"] | undefined, /** fetch data from the table: "user_status" using primary key columns */ userStatus?: GraphQLTypes["userStatus"] | undefined, /** fetch data from the table: "user_status" */ - userStatuses: Array | undefined, + userStatuses: Array, /** fetch data from the table: "user" */ - users: Array | undefined, + users: Array, /** fetch data from the table: "webhook" using primary key columns */ webhook?: GraphQLTypes["webhook"] | undefined, /** An array relationship */ - webhooks: Array | undefined + webhooks: Array }; /** columns and relationships of "tag" */ ["tag"]: { @@ -14679,7 +14679,7 @@ end). throws an error if top level container is not an array */ ["tag_aggregate"]: { __typename: "tag_aggregate", aggregate?: GraphQLTypes["tag_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "tag" */ ["tag_aggregate_fields"]: { @@ -14700,15 +14700,15 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "tag" */ ["tag_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["tag_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "tag". All fields are combined with a logical 'AND'. */ ["tag_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["tag_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, booking?: GraphQLTypes["booking_bool_exp"] | undefined, bookingId?: GraphQLTypes["uuid_comparison_exp"] | undefined, connection?: GraphQLTypes["connection_bool_exp"] | undefined, @@ -14730,7 +14730,7 @@ end). throws an error if top level container is not an array */ ["tag_constraint"]: tag_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["tag_delete_at_path_input"]: { - json?: Array + json?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -14820,12 +14820,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "tag" */ ["tag_on_conflict"]: { constraint: GraphQLTypes["tag_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["tag_bool_exp"] | undefined }; /** Ordering options when selecting data from "tag". */ @@ -14878,50 +14878,50 @@ end). throws an error if top level container is not an array */ __typename: "team", address?: string | undefined, /** An array relationship */ - bookings: Array | undefined, + bookings: Array, /** An aggregate relationship */ bookings_aggregate: GraphQLTypes["booking_aggregate"], commissionPercentage?: GraphQLTypes["numeric"] | undefined, /** An array relationship */ - connections: Array | undefined, + connections: Array, /** An aggregate relationship */ connections_aggregate: GraphQLTypes["connection_aggregate"], createdAt: GraphQLTypes["timestamptz"], email?: string | undefined, /** An array relationship */ - entities: Array | undefined, + entities: Array, /** An aggregate relationship */ entities_aggregate: GraphQLTypes["entity_aggregate"], id: GraphQLTypes["uuid"], /** An array relationship */ - integrations: Array | undefined, + integrations: Array, /** An aggregate relationship */ integrations_aggregate: GraphQLTypes["integration_aggregate"], isActive?: boolean | undefined, isTest?: boolean | undefined, /** An array relationship */ - issues: Array | undefined, + issues: Array, /** An aggregate relationship */ issues_aggregate: GraphQLTypes["issue_aggregate"], /** An array relationship */ - jobs: Array | undefined, + jobs: Array, /** An aggregate relationship */ jobs_aggregate: GraphQLTypes["job_aggregate"], /** An array relationship */ - lines: Array | undefined, + lines: Array, /** An aggregate relationship */ lines_aggregate: GraphQLTypes["line_aggregate"], /** An array relationship */ - members: Array | undefined, + members: Array, /** An aggregate relationship */ members_aggregate: GraphQLTypes["teamUser_aggregate"], /** An array relationship */ - metrics: Array | undefined, + metrics: Array, /** An aggregate relationship */ metrics_aggregate: GraphQLTypes["metric_aggregate"], name: string, /** An array relationship */ - payments: Array | undefined, + payments: Array, /** An aggregate relationship */ payments_aggregate: GraphQLTypes["payment_aggregate"], stripeId?: string | undefined, @@ -14929,15 +14929,15 @@ end). throws an error if top level container is not an array */ supportEmail?: string | undefined, supportPhone?: string | undefined, /** An array relationship */ - tags: Array | undefined, + tags: Array, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An array relationship */ - units: Array | undefined, + units: Array, /** An aggregate relationship */ units_aggregate: GraphQLTypes["unit_aggregate"], /** An array relationship */ - webhooks: Array | undefined, + webhooks: Array, /** An aggregate relationship */ webhooks_aggregate: GraphQLTypes["webhook_aggregate"], website?: string | undefined @@ -14946,7 +14946,7 @@ end). throws an error if top level container is not an array */ ["team_aggregate"]: { __typename: "team_aggregate", aggregate?: GraphQLTypes["team_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "team" */ ["team_aggregate_fields"]: { @@ -14970,9 +14970,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "team". All fields are combined with a logical 'AND'. */ ["team_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["team_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, address?: GraphQLTypes["String_comparison_exp"] | undefined, bookings?: GraphQLTypes["booking_bool_exp"] | undefined, commissionPercentage?: GraphQLTypes["numeric_comparison_exp"] | undefined, @@ -15071,7 +15071,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "team" */ ["team_obj_rel_insert_input"]: { @@ -15082,7 +15082,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "team" */ ["team_on_conflict"]: { constraint: GraphQLTypes["team_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["team_bool_exp"] | undefined }; /** Ordering options when selecting data from "team". */ @@ -15191,7 +15191,7 @@ end). throws an error if top level container is not an array */ ["teamUser_aggregate"]: { __typename: "teamUser_aggregate", aggregate?: GraphQLTypes["teamUser_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "team_user" */ ["teamUser_aggregate_fields"]: { @@ -15208,15 +15208,15 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "team_user" */ ["teamUser_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["teamUser_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "team_user". All fields are combined with a logical 'AND'. */ ["teamUser_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["teamUser_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, id?: GraphQLTypes["uuid_comparison_exp"] | undefined, role?: GraphQLTypes["String_comparison_exp"] | undefined, @@ -15283,12 +15283,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "team_user" */ ["teamUser_on_conflict"]: { constraint: GraphQLTypes["teamUser_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["teamUser_bool_exp"] | undefined }; /** Ordering options when selecting data from "team_user". */ @@ -15319,24 +15319,24 @@ end). throws an error if top level container is not an array */ }; /** update columns of table "team_user" */ ["teamUser_update_column"]: teamUser_update_column; - ["timestamptz"]:any; + ["timestamptz"]: any; /** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ ["timestamptz_comparison_exp"]: { _eq?: GraphQLTypes["timestamptz"] | undefined, _gt?: GraphQLTypes["timestamptz"] | undefined, _gte?: GraphQLTypes["timestamptz"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _lt?: GraphQLTypes["timestamptz"] | undefined, _lte?: GraphQLTypes["timestamptz"] | undefined, _neq?: GraphQLTypes["timestamptz"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** columns and relationships of "unit" */ ["unit"]: { __typename: "unit", /** An array relationship */ - bookings: Array | undefined, + bookings: Array, /** An aggregate relationship */ bookings_aggregate: GraphQLTypes["booking_aggregate"], /** An object relationship */ @@ -15351,7 +15351,7 @@ end). throws an error if top level container is not an array */ name?: string | undefined, status?: string | undefined, /** An array relationship */ - tags: Array | undefined, + tags: Array, /** An aggregate relationship */ tags_aggregate: GraphQLTypes["tag_aggregate"], /** An object relationship */ @@ -15364,7 +15364,7 @@ end). throws an error if top level container is not an array */ ["unit_aggregate"]: { __typename: "unit_aggregate", aggregate?: GraphQLTypes["unit_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "unit" */ ["unit_aggregate_fields"]: { @@ -15385,15 +15385,15 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "unit" */ ["unit_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["unit_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "unit". All fields are combined with a logical 'AND'. */ ["unit_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["unit_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, bookings?: GraphQLTypes["booking_bool_exp"] | undefined, connection?: GraphQLTypes["connection_bool_exp"] | undefined, connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, @@ -15414,7 +15414,7 @@ end). throws an error if top level container is not an array */ ["unit_constraint"]: unit_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["unit_delete_at_path_input"]: { - metadata?: Array + metadata?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -15499,7 +15499,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "unit" */ ["unit_obj_rel_insert_input"]: { @@ -15510,7 +15510,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "unit" */ ["unit_on_conflict"]: { constraint: GraphQLTypes["unit_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["unit_bool_exp"] | undefined }; /** Ordering options when selecting data from "unit". */ @@ -15564,7 +15564,7 @@ end). throws an error if top level container is not an array */ id: GraphQLTypes["uuid"], isAdmin: boolean, /** An array relationship */ - memberships: Array | undefined, + memberships: Array, /** An aggregate relationship */ memberships_aggregate: GraphQLTypes["teamUser_aggregate"], name?: string | undefined, @@ -15576,7 +15576,7 @@ end). throws an error if top level container is not an array */ ["user_aggregate"]: { __typename: "user_aggregate", aggregate?: GraphQLTypes["user_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "user" */ ["user_aggregate_fields"]: { @@ -15587,9 +15587,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "user". All fields are combined with a logical 'AND'. */ ["user_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["user_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, email?: GraphQLTypes["String_comparison_exp"] | undefined, id?: GraphQLTypes["uuid_comparison_exp"] | undefined, @@ -15640,7 +15640,7 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** input type for inserting object relation for remote table "user" */ ["user_obj_rel_insert_input"]: { @@ -15651,7 +15651,7 @@ end). throws an error if top level container is not an array */ /** on conflict condition type for table "user" */ ["user_on_conflict"]: { constraint: GraphQLTypes["user_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["user_bool_exp"] | undefined }; /** Ordering options when selecting data from "user". */ @@ -15687,10 +15687,10 @@ end). throws an error if top level container is not an array */ /** Boolean expression to compare columns of type "user_status_enum". All fields are combined with logical 'AND'. */ ["user_status_enum_comparison_exp"]: { _eq?: GraphQLTypes["user_status_enum"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _neq?: GraphQLTypes["user_status_enum"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** update columns of table "user" */ ["user_update_column"]: user_update_column; @@ -15703,7 +15703,7 @@ end). throws an error if top level container is not an array */ ["userStatus_aggregate"]: { __typename: "userStatus_aggregate", aggregate?: GraphQLTypes["userStatus_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "user_status" */ ["userStatus_aggregate_fields"]: { @@ -15714,9 +15714,9 @@ end). throws an error if top level container is not an array */ }; /** Boolean expression to filter rows from the table "user_status". All fields are combined with a logical 'AND'. */ ["userStatus_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["userStatus_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, name?: GraphQLTypes["String_comparison_exp"] | undefined }; /** unique or primary key constraints on table "user_status" */ @@ -15741,12 +15741,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "user_status" */ ["userStatus_on_conflict"]: { constraint: GraphQLTypes["userStatus_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["userStatus_bool_exp"] | undefined }; /** Ordering options when selecting data from "user_status". */ @@ -15765,18 +15765,18 @@ end). throws an error if top level container is not an array */ }; /** update columns of table "user_status" */ ["userStatus_update_column"]: userStatus_update_column; - ["uuid"]:any; + ["uuid"]: any; /** Boolean expression to compare columns of type "uuid". All fields are combined with logical 'AND'. */ ["uuid_comparison_exp"]: { _eq?: GraphQLTypes["uuid"] | undefined, _gt?: GraphQLTypes["uuid"] | undefined, _gte?: GraphQLTypes["uuid"] | undefined, - _in?: Array, + _in?: Array | undefined, _is_null?: boolean | undefined, _lt?: GraphQLTypes["uuid"] | undefined, _lte?: GraphQLTypes["uuid"] | undefined, _neq?: GraphQLTypes["uuid"] | undefined, - _nin?: Array + _nin?: Array | undefined }; /** columns and relationships of "webhook" */ ["webhook"]: { @@ -15795,7 +15795,7 @@ end). throws an error if top level container is not an array */ ["webhook_aggregate"]: { __typename: "webhook_aggregate", aggregate?: GraphQLTypes["webhook_aggregate_fields"] | undefined, - nodes: Array | undefined + nodes: Array }; /** aggregate fields of "webhook" */ ["webhook_aggregate_fields"]: { @@ -15817,15 +15817,15 @@ end). throws an error if top level container is not an array */ }; /** input type for inserting array relation for remote table "webhook" */ ["webhook_arr_rel_insert_input"]: { - data: Array | undefined, + data: Array, /** on conflict condition */ on_conflict?: GraphQLTypes["webhook_on_conflict"] | undefined }; /** Boolean expression to filter rows from the table "webhook". All fields are combined with a logical 'AND'. */ ["webhook_bool_exp"]: { - _and?: Array, + _and?: Array | undefined, _not?: GraphQLTypes["webhook_bool_exp"] | undefined, - _or?: Array, + _or?: Array | undefined, createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, headers?: GraphQLTypes["jsonb_comparison_exp"] | undefined, id?: GraphQLTypes["uuid_comparison_exp"] | undefined, @@ -15839,8 +15839,8 @@ end). throws an error if top level container is not an array */ ["webhook_constraint"]: webhook_constraint; /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ ["webhook_delete_at_path_input"]: { - headers?: Array, - types?: Array + headers?: Array | undefined, + types?: Array | undefined }; /** delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array */ @@ -15900,12 +15900,12 @@ end). throws an error if top level container is not an array */ /** number of rows affected by the mutation */ affected_rows: number, /** data from the rows affected by the mutation */ - returning: Array | undefined + returning: Array }; /** on conflict condition type for table "webhook" */ ["webhook_on_conflict"]: { constraint: GraphQLTypes["webhook_constraint"], - update_columns: Array | undefined, + update_columns: Array, where?: GraphQLTypes["webhook_bool_exp"] | undefined }; /** Ordering options when selecting data from "webhook". */ diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 81b4cb99..c3e4f939 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,10 +1,24 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes } from './index'; -import { gql, useQuery, useLazyQuery, useSubscription, useMutation } from '@apollo/client'; -import type { QueryHookOptions, LazyQueryHookOptions, SubscriptionHookOptions, MutationHookOptions } from '@apollo/client'; +import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client'; +import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +export function useTypedMutation( + mutation: Z | ValueTypes[O], + options?: MutationHookOptions>, + operationName?: string, +) { + return useMutation>(gql(Zeus("mutation",mutation, operationName)), options); +} +export function useTypedSubscription( + subscription: Z | ValueTypes[O], + options?: SubscriptionHookOptions>, + operationName?: string, +) { + return useSubscription>(gql(Zeus("subscription",subscription, operationName)), options); +} export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, @@ -19,17 +33,3 @@ export function useTypedLazyQuery( ) { return useLazyQuery>(gql(Zeus("query",LazyQuery, operationName)), options); } -export function useTypedSubscription( - subscription: Z | ValueTypes[O], - options?: SubscriptionHookOptions>, - operationName?: string, -) { - return useSubscription>(gql(Zeus("subscription",subscription, operationName)), options); -} -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationName?: string, -) { - return useMutation>(gql(Zeus("mutation",mutation, operationName)), options); -} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 398112c2..5044a7e9 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,21 +1,7 @@ /* eslint-disable */ export const AllTypesProps: Record = { - Query:{ - cardById:{ - cardId:{ - type:"String" - } - } - }, SpecialSkills: "enum", - Card:{ - attack:{ - cardID:{ - type:"[String!]!" - } - } - }, Mutation:{ addCard:{ card:{ @@ -24,9 +10,6 @@ export const AllTypesProps: Record = { } }, createCard:{ - Children:{ - type:"Int" - }, Attack:{ type:"Int!" }, @@ -41,34 +24,33 @@ export const AllTypesProps: Record = { }, description:{ type:"String!" + }, + Children:{ + type:"Int" + } + }, + Card:{ + attack:{ + cardID:{ + type:"[String!]!" + } + } + }, + Query:{ + cardById:{ + cardId:{ + type:"String" + } } } } export const ReturnTypes: Record = { - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" - }, - Nameable:{ - "...on Card": "Card", - "...on SpecialCard": "SpecialCard", - "...on CardStack": "CardStack", - "...on EffectCard": "EffectCard", - name:"String" - }, - S3Object:{ - bucket:"String", - key:"String", - region:"String" + Mutation:{ + addCard:"Card" }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" + Subscription:{ + deck:"Card" }, Card:{ Attack:"Int", @@ -82,22 +64,40 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, SpecialCard:{ effect:"String", name:"String" }, + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" + }, CardStack:{ cards:"Card", name:"String" }, - Subscription:{ - deck:"Card" + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" + }, + Nameable:{ + "...on Card": "Card", + "...on SpecialCard": "SpecialCard", + "...on CardStack": "CardStack", + "...on EffectCard": "EffectCard", + name:"String" }, EffectCard:{ effectSize:"Float", name:"String" - }, - Mutation:{ - addCard:"Card" } } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 420c410f..87dce799 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -5,35 +5,28 @@ type ZEUS_INTERFACES = GraphQLTypes["Nameable"] type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], - /** Draw a card
*/ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean -}>; - ["Nameable"]:AliasType<{ - name?:boolean; - ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on CardStack']?: Omit; - ['...on EffectCard']?: Omit; - __typename?: boolean -}>; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean, - key?:boolean, - region?:boolean, + ["SpecialSkills"]:SpecialSkills; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], __typename?: boolean }>; - ["SpecialSkills"]:SpecialSkills; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] + /** create card inputs
*/ +["createCard"]: { + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: (ValueTypes["SpecialSkills"])[], + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined | null +}; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], __typename?: boolean }>; /** Card used in card game
*/ @@ -56,11 +49,22 @@ attack?: [{ /** Attacked card/card ids
*/ name?:boolean, skills?:boolean, __typename?: boolean +}>; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean, + key?:boolean, + region?:boolean, + __typename?: boolean }>; ["SpecialCard"]: AliasType<{ effect?:boolean, name?:boolean, __typename?: boolean +}>; + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean }>; /** Stack of cards */ ["CardStack"]: AliasType<{ @@ -68,132 +72,121 @@ attack?: [{ /** Attacked card/card ids
*/ name?:boolean, __typename?: boolean }>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], + /** Draw a card
*/ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean +}>; + ["Nameable"]:AliasType<{ + name?:boolean; + ['...on Card']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on CardStack']?: Omit; + ['...on EffectCard']?: Omit; __typename?: boolean }>; ["EffectCard"]: AliasType<{ effectSize?:boolean, name?:boolean, __typename?: boolean -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean -}>; - /** create card inputs
*/ -["createCard"]: { - /**
How many children the greek god had
*/ - Children?: number | undefined | null, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: (ValueTypes["SpecialSkills"])[], - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string -} +}> } export type ModelTypes = { - ["Query"]: { - cardById?:ModelTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard:ModelTypes["Card"], - drawChangeCard:ModelTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards:Array | undefined, - myStacks?:Array, - nameables:Array | undefined + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + ["Mutation"]: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] }; - ["Nameable"]: ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"] | ModelTypes["EffectCard"]; - /** Aws S3 File */ -["S3Object"]: { - bucket:string, - key:string, - region:string + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"]; + ["Subscription"]: { + deck?: Array | undefined }; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; /** Card used in card game
*/ ["Card"]: { /** The attack power
*/ - Attack:number, + Attack: number, /**
How many children the greek god had
*/ - Children?:number | undefined, + Children?: number | undefined, /** The defense power
*/ - Defense:number, + Defense: number, /** Attack other cards on the table , returns Cards after attack
*/ - attack?:Array, + attack?: Array | undefined, /** Put your description here */ - cardImage?:ModelTypes["S3Object"] | undefined, + cardImage?: GraphQLTypes["S3Object"] | undefined, /** Description of a card
*/ - description:string, - id:string, - image:string, + description: string, + id: string, + image: string, /** The name of a card
*/ - name:string, - skills?:Array + name: string, + skills?: Array | undefined +}; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string }; ["SpecialCard"]: { - effect:string, - name:string + effect: string, + name: string }; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; /** Stack of cards */ ["CardStack"]: { - cards?:Array, - name:string -}; - ["Subscription"]: { - deck?:Array -}; - ["EffectCard"]: { - effectSize:number, - name:string -}; - ["Mutation"]: { - /** add Card to Cards database
*/ - addCard:ModelTypes["Card"] + cards?: Array | undefined, + name: string }; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"] - } - -export type GraphQLTypes = { - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, + ["Query"]: { + cardById?: GraphQLTypes["Card"] | undefined, /** Draw a card
*/ drawCard: GraphQLTypes["Card"], drawChangeCard: GraphQLTypes["ChangeCard"], /** list All Cards availble
*/ - listCards: Array | undefined, - myStacks?: Array, - nameables: Array | undefined + listCards: Array, + myStacks?: Array | undefined, + nameables: Array }; - ["Nameable"]: { - __typename:"Card" | "SpecialCard" | "CardStack" | "EffectCard", + ["Nameable"]: ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"] | ModelTypes["EffectCard"]; + ["EffectCard"]: { + effectSize: number, name: string - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +} + } + +export type GraphQLTypes = { + ["SpecialSkills"]: SpecialSkills; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] }; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string + /** create card inputs
*/ +["createCard"]: { + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined }; - ["SpecialSkills"]: SpecialSkills; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined }; /** Card used in card game
*/ ["Card"]: { @@ -205,7 +198,7 @@ export type GraphQLTypes = { /** The defense power
*/ Defense: number, /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array, + attack?: Array | undefined, /** Put your description here */ cardImage?: GraphQLTypes["S3Object"] | undefined, /** Description of a card
*/ @@ -214,47 +207,54 @@ export type GraphQLTypes = { image: string, /** The name of a card
*/ name: string, - skills?: Array + skills?: Array | undefined +}; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string }; ["SpecialCard"]: { __typename: "SpecialCard", effect: string, name: string +}; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; /** Stack of cards */ ["CardStack"]: { __typename: "CardStack", - cards?: Array, + cards?: Array | undefined, name: string }; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["Nameable"]: { + __typename:"Card" | "SpecialCard" | "CardStack" | "EffectCard", + name: string + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; ["EffectCard"]: { __typename: "EffectCard", effectSize: number, name: string -}; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - /** create card inputs
*/ -["createCard"]: { - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string } } export const enum SpecialSkills { diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 77ddaaaf..0c742c2d 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useQuery, useMutation } from 'react-query'; -import type { UseQueryOptions, UseMutationOptions } from 'react-query'; +import { useMutation, useQuery } from 'react-query'; +import type { UseMutationOptions, UseQueryOptions } from 'react-query'; -export function useTypedQuery>( - queryKey: string | unknown[], - query: TData | ValueTypes[O], - options?: Omit, 'queryKey' | 'queryFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); -} export function useTypedMutation>( mutationKey: string | unknown[], mutation: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } +export function useTypedQuery>( + queryKey: string | unknown[], + query: TData | ValueTypes[O], + options?: Omit, 'queryKey' | 'queryFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 297b3087..755e0794 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,56 +1,47 @@ """""" -type Query { - """""" - cardById(cardId: String): Card - - """Draw a card
""" - drawCard: Card! - - """""" - drawChangeCard: ChangeCard! - - """list All Cards availble
""" - listCards: [Card!]! +enum SpecialSkills { + """Lower enemy defense -5
""" + THUNDER - """""" - myStacks: [CardStack!] + """Attack multiple Cards at once
""" + RAIN - """""" - nameables: [Nameable!]! + """50% chance to avoid any attack
""" + FIRE } """""" -interface Nameable { - """""" - name: String! +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! } -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! +"""create card inputs
""" +input createCard { + """The attack power
""" + Attack: Int! - """""" - key: String! + """The defense power
""" + Defense: Int! - """""" - region: String! -} + """input skills""" + skills: [SpecialSkills!] -"""""" -enum SpecialSkills { - """Lower enemy defense -5
""" - THUNDER + """The name of a card
""" + name: String! - """Attack multiple Cards at once
""" - RAIN + """Description of a card
""" + description: String! - """50% chance to avoid any attack
""" - FIRE + """
How many children the greek god had
""" + Children: Int } """""" -union ChangeCard = SpecialCard | EffectCard +type Subscription { + """""" + deck: [Card!] +} """Card used in card game
""" type Card implements Nameable { @@ -88,6 +79,18 @@ type Card implements Nameable { skills: [SpecialSkills!] } +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! + + """""" + key: String! + + """""" + region: String! +} + """""" type SpecialCard implements Nameable { """""" @@ -97,6 +100,9 @@ type SpecialCard implements Nameable { name: String! } +"""""" +union ChangeCard = SpecialCard | EffectCard + """Stack of cards""" type CardStack implements Nameable { """""" @@ -107,45 +113,39 @@ type CardStack implements Nameable { } """""" -type Subscription { +type Query { """""" - deck: [Card!] -} + cardById(cardId: String): Card + + """Draw a card
""" + drawCard: Card! -"""""" -type EffectCard implements Nameable { """""" - effectSize: Float! + drawChangeCard: ChangeCard! + + """list All Cards availble
""" + listCards: [Card!]! """""" - name: String! + myStacks: [CardStack!] + + """""" + nameables: [Nameable!]! } """""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! +interface Nameable { + """""" + name: String! } -"""create card inputs
""" -input createCard { - """
How many children the greek god had
""" - Children: Int - - """The attack power
""" - Attack: Int! - - """The defense power
""" - Defense: Int! - - """input skills""" - skills: [SpecialSkills!] +"""""" +type EffectCard implements Nameable { + """""" + effectSize: Float! - """The name of a card
""" + """""" name: String! - - """Description of a card
""" - description: String! } schema{ diff --git a/src/TreeToTS/functions/resolverFor.ts b/src/TreeToTS/functions/resolverFor.ts index eb82fe3b..01f3039b 100644 --- a/src/TreeToTS/functions/resolverFor.ts +++ b/src/TreeToTS/functions/resolverFor.ts @@ -1,4 +1,4 @@ -import { MODEL_TYPES } from '@/TreeToTS/templates/returnedModelTypes'; +import { MODEL_TYPES } from '@/TreeToTS/templates/modelTypes'; import { StringFunction } from './models'; export const resolverForFunction: StringFunction = { diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index f48f8feb..ec6761b2 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -1,10 +1,12 @@ +import { resolveModelTypes } from '@/TreeToTS/templates/modelTypes'; +import { resolveInterfaces } from '@/TreeToTS/templates/returnedTypes/interfaces'; +import { resolveUnions } from '@/TreeToTS/templates/returnedTypes/unions'; +import { resolveValueTypes } from '@/TreeToTS/templates/valueTypes'; import { ParserField, OperationType, ParserTree, TypeDefinition } from 'graphql-js-tree'; import { Environment } from '../Models'; -import { resolveValueTypes } from './templates/resolveValueTypes'; -import { resolveModelTypes } from './templates/returnedModelTypes'; import { resolvePropTypeFromRoot } from './templates/returnedPropTypes'; import { resolveReturnFromRoot } from './templates/returnedReturns'; -import { resolveInterfaces, resolveUnions, resolveTypes } from './templates/returnedTypes'; +import { resolveTypes } from './templates/returnedTypes'; import { bodyTypeScript, constantTypesTypescript, diff --git a/src/TreeToTS/templates/modelTypes/index.ts b/src/TreeToTS/templates/modelTypes/index.ts new file mode 100644 index 00000000..ddcd30c3 --- /dev/null +++ b/src/TreeToTS/templates/modelTypes/index.ts @@ -0,0 +1,42 @@ +import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; +import { plusDescription } from '@/TreeToTS/templates/shared/description'; +import { resolveField } from '@/TreeToTS/templates/shared/field'; +import { ParserField, TypeSystemDefinition, TypeDefinition } from 'graphql-js-tree'; + +export const MODEL_TYPES = 'ModelTypes'; + +const resolveTypeFromRoot = (i: ParserField, rootNodes: ParserField[]): string => { + if (i.data.type === TypeSystemDefinition.DirectiveDefinition) { + return ''; + } + if (i.data.type === TypeDefinition.ScalarTypeDefinition) { + return `${plusDescription(i.description)}["${i.name}"]:any`; + } + if (!i.args || !i.args.length) { + return ``; + } + if (i.data.type === TypeDefinition.InterfaceTypeDefinition) { + const typesImplementing = rootNodes.filter((rn) => rn.interfaces && rn.interfaces.includes(i.name)); + return `${plusDescription(i.description)}["${i.name}"]: ${ + typesImplementing.length > 0 ? typesImplementing.map((ti) => `${MODEL_TYPES}["${ti.name}"]`).join(' | ') : 'never' + }`; + } + if (i.data.type === TypeDefinition.UnionTypeDefinition) { + return `${plusDescription(i.description)}["${i.name}"]:${i.args + .map((f) => `${MODEL_TYPES}["${f.name}"]`) + .join(' | ')}`; + } + if (i.data.type !== TypeDefinition.ObjectTypeDefinition) { + return `${plusDescription(i.description)}["${i.name}"]: ${TYPES}["${i.name}"]`; + } + + return `${plusDescription(i.description)}["${i.name}"]: {\n\t${i.args.map((f) => resolveField(f)).join(',\n')}\n}`; +}; +export const resolveModelTypes = (rootNodes: ParserField[]): string => { + return `export type ${MODEL_TYPES} = { + ${rootNodes + .map((f) => resolveTypeFromRoot(f, rootNodes)) + .filter((v) => v) + .join(';\n\t')} + }`; +}; diff --git a/src/TreeToTS/templates/resolveValueTypes.ts b/src/TreeToTS/templates/resolveValueTypes.ts deleted file mode 100644 index f200b6e8..00000000 --- a/src/TreeToTS/templates/resolveValueTypes.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { truthyType } from '@/TreeToTS/templates/truthy'; -import { - ParserField, - Options, - TypeSystemDefinition, - Helpers, - TypeDefinition, - getTypeName, - FieldType, -} from 'graphql-js-tree'; - -export const VALUETYPES = 'ValueTypes'; - -const resolveValueType = (t: string): string => `${VALUETYPES}["${t}"]`; - -type GqlTypes = 'Int' | 'Float' | 'Boolean' | 'ID' | 'String'; -type TSTypes = 'number' | 'boolean' | 'string'; - -const typeScriptMap: Record = { - Int: 'number', - Float: 'number', - Boolean: 'boolean', - ID: 'string', - String: 'string', -}; -const toTypeScriptPrimitive = (a: GqlTypes): string => typeScriptMap[a] || a; - -const plusDescription = (description?: string, prefix = ''): string => - description ? `${prefix}/** ${description} */\n` : ''; -const resolveFieldType = ( - name: string, - fType: FieldType, - fn: (str: string) => string = (x) => x, - isRequired = false, -): string => { - if (fType.type === Options.name) { - return fn(isRequired ? name : `${name} | undefined | null`); - } - if (fType.type === Options.array) { - return resolveFieldType( - name, - fType.nest, - isRequired ? (x) => `(${fn(x)})[] | undefined | null` : (x) => `(${fn(x)})[]`, - false, - ); - } - if (fType.type === Options.required) { - return resolveFieldType(name, fType.nest, fn, true); - } - throw new Error('Invalid field type'); -}; -const resolveArg = (f: ParserField): string => { - const { - type: { fieldType }, - } = f; - const isRequiredName = (name: string): string => { - if (fieldType.type === Options.required) { - return name; - } - return `${name}?`; - }; - const resolveArgsName = (name: string): string => { - return isRequiredName(name) + ': '; - }; - const typeName = getTypeName(f.type.fieldType); - return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${resolveFieldType( - typeName in typeScriptMap ? toTypeScriptPrimitive(typeName as GqlTypes) : resolveValueType(typeName), - f.type.fieldType, - )}`; -}; -const resolveField = (f: ParserField, enumsAndScalars: string[]): string => { - const { args } = f; - const typeName = getTypeName(f.type.fieldType); - const resolvedTypeName = - typeName in typeScriptMap || enumsAndScalars.includes(typeName) ? truthyType : resolveValueType(typeName); - if (args && args.length) { - return `${f.name}?: [{${args.map(resolveArg).join(',')}},${resolvedTypeName}]`; - } - return `${plusDescription(f.description, '\t')}\t${`${f.name}?` + ':'}${resolvedTypeName}`; -}; - -const AliasType = (code: string): string => `AliasType<${code}>`; - -const resolveValueTypeFromRoot = (i: ParserField, rootNodes: ParserField[], enumsAndScalars: string[]): string => { - if (i.data.type === TypeSystemDefinition.DirectiveDefinition) { - return ''; - } - if (i.data.type === Helpers.Comment) { - return ''; - } - - if (!i.args || !i.args.length) { - return `${plusDescription(i.description)}["${i.name}"]:unknown`; - } - if (i.data.type === TypeDefinition.UnionTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]: ${AliasType( - `{${i.args - .map( - (f) => `\t\t["...on ${getTypeName(f.type.fieldType)}"] : ${VALUETYPES}["${getTypeName(f.type.fieldType)}"]`, - ) - .join(',\n')}\n\t\t__typename?: ${truthyType}\n}`, - )}`; - } - if (i.data.type === TypeDefinition.EnumTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]:${i.name}`; - } - if (i.data.type === TypeDefinition.InputObjectTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]: {\n${i.args.map((f) => resolveArg(f)).join(',\n')}\n}`; - } - if (i.data.type === TypeDefinition.InterfaceTypeDefinition) { - const typesImplementing = rootNodes.filter((rn) => rn.interfaces && rn.interfaces.includes(i.name)); - return `${plusDescription(i.description)}["${i.name}"]:${AliasType( - `{ -\t${i.args.map((f) => resolveField(f, enumsAndScalars)).join(',\n')};\n\t\t${typesImplementing - .map((f) => `['...on ${f.name}']?: Omit<${resolveValueType(f.name)},keyof ${resolveValueType(i.name)}>;`) - .join('\n\t\t')}\n\t\t__typename?: ${truthyType}\n}`, - )}`; - } - return `${plusDescription(i.description)}["${i.name}"]: ${AliasType( - `{\n${i.args.map((f) => resolveField(f, enumsAndScalars)).join(',\n')},\n\t\t__typename?: ${truthyType}\n}`, - )}`; -}; -export const resolveValueTypes = (rootNodes: ParserField[]): string => { - const enumsAndScalars = rootNodes - .filter( - (n) => n.data?.type === TypeDefinition.EnumTypeDefinition || n.data?.type === TypeDefinition.ScalarTypeDefinition, - ) - .map((n) => n.name); - return `export type ${VALUETYPES} = { - ${rootNodes - .map((f) => resolveValueTypeFromRoot(f, rootNodes, enumsAndScalars)) - .filter((v) => v) - .join(';\n\t')} - }`; -}; diff --git a/src/TreeToTS/templates/returnedModelTypes.ts b/src/TreeToTS/templates/returnedModelTypes.ts deleted file mode 100644 index 3a96e18e..00000000 --- a/src/TreeToTS/templates/returnedModelTypes.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { ParserField, Options, TypeSystemDefinition, TypeDefinition, FieldType, getTypeName } from 'graphql-js-tree'; -import { TYPES } from './returnedTypes'; - -export const MODEL_TYPES = 'ModelTypes'; - -const typeScriptMap: Record = { - Int: 'number', - Float: 'number', - Boolean: 'boolean', - ID: 'string', - String: 'string', -}; -const toTypeScriptPrimitive = (a: string): string => typeScriptMap[a] || `${MODEL_TYPES}["${a}"]`; - -const plusDescription = (description?: string, prefix = ''): string => - description ? `${prefix}/** ${description} */\n` : ''; - -const resolveFieldType = ( - name: string, - fType: FieldType, - fn: (str: string) => string = (x) => x, - isRequired = false, -): string => { - if (fType.type === Options.name) { - return fn(isRequired ? name : `${name} | undefined`); - } - if (fType.type === Options.array) { - return resolveFieldType( - name, - fType.nest, - isRequired ? (x) => `Array<${fn(x)}> | undefined` : (x) => `Array<${fn(x)}>`, - false, - ); - } - if (fType.type === Options.required) { - return resolveFieldType(name, fType.nest, fn, true); - } - throw new Error('Invalid field type'); -}; - -const resolveField = (f: ParserField): string => { - const isRequiredName = (name: string): string => { - if (f.type.fieldType.type === Options.required) { - return `${name}:`; - } - return `${name}?:`; - }; - - const resolveArgsName = (name: string): string => { - return isRequiredName(name); - }; - return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${resolveFieldType( - toTypeScriptPrimitive(getTypeName(f.type.fieldType)), - f.type.fieldType, - )}`; -}; - -const resolveTypeFromRoot = (i: ParserField, rootNodes: ParserField[]): string => { - if (i.data.type === TypeSystemDefinition.DirectiveDefinition) { - return ''; - } - if (i.data.type === TypeDefinition.ScalarTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]:any`; - } - if (!i.args || !i.args.length) { - return ``; - } - if (i.data.type === TypeDefinition.InterfaceTypeDefinition) { - const typesImplementing = rootNodes.filter((rn) => rn.interfaces && rn.interfaces.includes(i.name)); - return `${plusDescription(i.description)}["${i.name}"]: ${ - typesImplementing.length > 0 ? typesImplementing.map((ti) => `${MODEL_TYPES}["${ti.name}"]`).join(' | ') : 'never' - }`; - } - if (i.data.type === TypeDefinition.UnionTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]:${i.args - .map((f) => `${MODEL_TYPES}["${f.name}"]`) - .join(' | ')}`; - } - if (i.data.type !== TypeDefinition.ObjectTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]: ${TYPES}["${i.name}"]`; - } - - return `${plusDescription(i.description)}["${i.name}"]: {\n\t${i.args.map((f) => resolveField(f)).join(',\n')}\n}`; -}; -export const resolveModelTypes = (rootNodes: ParserField[]): string => { - return `export type ${MODEL_TYPES} = { - ${rootNodes - .map((f) => resolveTypeFromRoot(f, rootNodes)) - .filter((v) => v) - .join(';\n\t')} - }`; -}; diff --git a/src/TreeToTS/templates/returnedTypes.ts b/src/TreeToTS/templates/returnedTypes.ts deleted file mode 100644 index 9c3622ca..00000000 --- a/src/TreeToTS/templates/returnedTypes.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { - ParserField, - Options, - TypeDefinition, - TypeSystemDefinition, - Helpers, - FieldType, - getTypeName, -} from 'graphql-js-tree'; - -export const TYPES = 'GraphQLTypes'; - -const typeScriptMap: Record = { - Int: 'number', - Float: 'number', - Boolean: 'boolean', - ID: 'string', - String: 'string', -}; -const toTypeScriptPrimitive = (a: string): string => typeScriptMap[a] || `${TYPES}["${a}"]`; - -const plusDescription = (description?: string, prefix = ''): string => - description ? `${prefix}/** ${description} */\n` : ''; - -const resolveFieldType = ( - name: string, - fType: FieldType, - fn: (str: string) => string = (x) => x, - isRequired = false, -): string => { - if (fType.type === Options.name) { - return fn(isRequired ? name : `${name} | undefined`); - } - if (fType.type === Options.array) { - return resolveFieldType( - name, - fType.nest, - isRequired ? (x) => `Array<${fn(x)}> | undefined` : (x) => `Array<${fn(x)}>`, - false, - ); - } - if (fType.type === Options.required) { - return resolveFieldType(name, fType.nest, fn, true); - } - throw new Error('Invalid field type'); -}; - -const resolveField = (f: ParserField): string => { - const isNullType = (type: string): string => { - return f.type.fieldType.type === Options.required ? `: ${type}` : `?: ${type}`; - }; - return `${plusDescription(f.description, '\t')}\t${f.name}${isNullType( - resolveFieldType(toTypeScriptPrimitive(getTypeName(f.type.fieldType)), f.type.fieldType), - )}`; -}; -export const resolveUnions = (rootNodes: ParserField[]): string => { - const unionTypes = rootNodes - .filter((rn) => rn.data.type === TypeDefinition.UnionTypeDefinition) - .map((rn) => `${TYPES}["${rn.name}"]`) - .join(' | '); - return `type ZEUS_UNIONS = ${unionTypes || 'never'}`; -}; -export const resolveInterfaces = (rootNodes: ParserField[]): string => { - const interfaceTypes = rootNodes - .filter((rn) => rn.data.type === TypeDefinition.InterfaceTypeDefinition) - .map((rn) => `${TYPES}["${rn.name}"]`) - .join(' | '); - return `type ZEUS_INTERFACES = ${interfaceTypes || 'never'}`; -}; -const resolveEnum = (i: ParserField): string => { - if (!i.args) { - throw new Error('Empty enum error'); - } - return `${plusDescription(i.description)}export const enum ${i.name} {\n${i.args - .map((f) => `\t${f.name} = "${f.name}"`) - .join(',\n')}\n}`; -}; - -export const resolveTypeFromRoot = (i: ParserField, rootNodes: ParserField[]): string => { - if (i.data.type === TypeSystemDefinition.DirectiveDefinition) { - return ''; - } - if (i.data.type === Helpers.Comment) { - return `// ${i.description}`; - } - if (!i.args || !i.args.length) { - return `${plusDescription(i.description)}["${i.name}"]:any`; - } - if (i.data.type === TypeDefinition.UnionTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]:{ -\t__typename:${i.args.length ? i.args.map((ti) => `"${ti.name}"`).join(' | ') : 'never'} -\t${i.args - .map( - (f) => `['...on ${getTypeName(f.type.fieldType)}']: '__union' & ${TYPES}["${getTypeName(f.type.fieldType)}"];`, - ) - .join('\n\t')}\n}`; - } - if (i.data.type === TypeDefinition.EnumTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]: ${i.name}`; - } - if (i.data.type === TypeDefinition.InputObjectTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]: {\n\t${i.args.map((f) => resolveField(f)).join(',\n')}\n}`; - } - if (i.data.type === TypeDefinition.InterfaceTypeDefinition) { - const typesImplementing = rootNodes.filter((rn) => rn.interfaces && rn.interfaces.includes(i.name)); - return `${plusDescription(i.description)}["${i.name}"]: { -\t__typename:${typesImplementing.length === 0 ? 'never' : typesImplementing.map((ti) => `"${ti.name}"`).join(' | ')}, -${i.args.map((f) => resolveField(f)).join(',\n')} -\t${typesImplementing.map((f) => `['...on ${f.name}']: '__union' & ${TYPES}["${f.name}"];`).join('\n\t')}\n}`; - } - return `${plusDescription(i.description)}["${i.name}"]: {\n\t__typename: "${i.name}",\n${i.args - .map((f) => resolveField(f)) - .join(',\n')}\n}`; -}; -export const resolveTypes = (rootNodes: ParserField[]): string => { - return `export type ${TYPES} = { - ${rootNodes - .map((f) => resolveTypeFromRoot(f, rootNodes)) - .filter((v) => v) - .join(';\n\t')} - }` - .concat('\n') - .concat( - rootNodes - .filter((rn) => rn.data.type === TypeDefinition.EnumTypeDefinition) - .map(resolveEnum) - .join('\n'), - ); -}; diff --git a/src/TreeToTS/templates/returnedTypes/enum.spec.ts b/src/TreeToTS/templates/returnedTypes/enum.spec.ts new file mode 100644 index 00000000..513437f3 --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/enum.spec.ts @@ -0,0 +1,57 @@ +import { resolveEnum } from '@/TreeToTS/templates/returnedTypes/enum'; +import { Options, TypeDefinition, ValueDefinition } from 'graphql-js-tree'; + +describe('It creates correct TypeScript const enums', () => { + test('Simple enum with 2 fields', () => { + const enumString = resolveEnum({ + args: [ + { + type: { + fieldType: { + name: ValueDefinition.EnumValueDefinition, + type: Options.name, + }, + }, + args: [], + directives: [], + interfaces: [], + name: 'CREATED', + data: { + type: ValueDefinition.EnumValueDefinition, + }, + }, + { + type: { + fieldType: { + name: ValueDefinition.EnumValueDefinition, + type: Options.name, + }, + }, + args: [], + directives: [], + interfaces: [], + name: 'DELETED', + data: { + type: ValueDefinition.EnumValueDefinition, + }, + }, + ], + data: { + type: TypeDefinition.EnumTypeDefinition, + }, + directives: [], + interfaces: [], + name: 'Status', + type: { + fieldType: { + name: 'enum', + type: Options.name, + }, + }, + }); + expect(enumString).toEqual(`export const enum Status { +\tCREATED = "CREATED", +\tDELETED = "DELETED" +}`); + }); +}); diff --git a/src/TreeToTS/templates/returnedTypes/enum.ts b/src/TreeToTS/templates/returnedTypes/enum.ts new file mode 100644 index 00000000..cfe17ed9 --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/enum.ts @@ -0,0 +1,11 @@ +import { plusDescription } from '@/TreeToTS/templates/shared/description'; +import { ParserField } from 'graphql-js-tree'; + +export const resolveEnum = (i: ParserField): string => { + if (!i.args) { + throw new Error('Empty enum error'); + } + return `${plusDescription(i.description)}export const enum ${i.name} {\n${i.args + .map((f) => `\t${f.name} = "${f.name}"`) + .join(',\n')}\n}`; +}; diff --git a/src/TreeToTS/templates/returnedTypes/index.ts b/src/TreeToTS/templates/returnedTypes/index.ts new file mode 100644 index 00000000..99b53d55 --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/index.ts @@ -0,0 +1,59 @@ +import { resolveEnum } from '@/TreeToTS/templates/returnedTypes/enum'; +import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; +import { resolveUnionMember } from '@/TreeToTS/templates/returnedTypes/unionMember'; +import { plusDescription } from '@/TreeToTS/templates/shared/description'; +import { resolveField } from '@/TreeToTS/templates/shared/field'; +import { ParserField, TypeDefinition, TypeSystemDefinition, Helpers } from 'graphql-js-tree'; + +const resolveType = ({ data, name, args }: ParserField, rootNodes: ParserField[]) => { + switch (data.type) { + case TypeDefinition.EnumTypeDefinition: + return `["${name}"]: ${name}`; + case TypeDefinition.InputObjectTypeDefinition: + return `["${name}"]: {\n\t${args.map((f) => resolveField(f)).join(',\n')}\n}`; + + case TypeDefinition.InterfaceTypeDefinition: + const typesImplementing = rootNodes.filter((rn) => rn.interfaces && rn.interfaces.includes(name)); + return `["${name}"]: { +\t__typename:${typesImplementing.length === 0 ? 'never' : typesImplementing.map((ti) => `"${ti.name}"`).join(' | ')}, +${args.map((f) => resolveField(f)).join(',\n')} +\t${typesImplementing.map((f) => `['...on ${f.name}']: '__union' & ${TYPES}["${f.name}"];`).join('\n\t')}\n}`; + case TypeDefinition.ObjectTypeDefinition: + return `["${name}"]: {\n\t__typename: "${name}",\n${args.map((f) => resolveField(f)).join(',\n')}\n}`; + case TypeDefinition.ScalarTypeDefinition: + return `["${name}"]: any`; + case TypeDefinition.UnionTypeDefinition: + return `["${name}"]:{ + \t__typename:${args.length ? args.map((ti) => `"${ti.name}"`).join(' | ') : 'never'} + \t${args.map(resolveUnionMember).join('\n\t')}\n}`; + default: + return ''; + break; + } +}; + +export const resolveTypeFromRoot = (i: ParserField, rootNodes: ParserField[]): string => { + if (i.data.type === TypeSystemDefinition.DirectiveDefinition) { + return ''; + } + if (i.data.type === Helpers.Comment) { + return `// ${i.description}`; + } + + return `${plusDescription(i.description)}${resolveType(i, rootNodes)}`; +}; +export const resolveTypes = (rootNodes: ParserField[]): string => { + return `export type ${TYPES} = { + ${rootNodes + .map((f) => resolveTypeFromRoot(f, rootNodes)) + .filter((v) => v) + .join(';\n\t')} + }` + .concat('\n') + .concat( + rootNodes + .filter((rn) => rn.data.type === TypeDefinition.EnumTypeDefinition) + .map(resolveEnum) + .join('\n'), + ); +}; diff --git a/src/TreeToTS/templates/returnedTypes/interfaces.spec.ts b/src/TreeToTS/templates/returnedTypes/interfaces.spec.ts new file mode 100644 index 00000000..0581d635 --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/interfaces.spec.ts @@ -0,0 +1,65 @@ +import { resolveInterfaces } from '@/TreeToTS/templates/returnedTypes/interfaces'; +import { TYPES, ZEUS_INTERFACES } from '@/TreeToTS/templates/returnedTypes/models'; +import { Options, TypeDefinition } from 'graphql-js-tree'; + +describe('Test interface => ZEUS_INTERFACES generation', () => { + test('Single interface generation', () => { + const interfaceString = resolveInterfaces([ + { + type: { + fieldType: { + type: Options.name, + name: 'interface', + }, + }, + args: [], + data: { + type: TypeDefinition.InterfaceTypeDefinition, + }, + directives: [], + interfaces: [], + name: 'WithId', + }, + ]); + expect(interfaceString).toEqual(`type ${ZEUS_INTERFACES} = ${TYPES}["WithId"]`); + }); + test('No interface generation', () => { + const interfaceString = resolveInterfaces([]); + expect(interfaceString).toEqual(`type ${ZEUS_INTERFACES} = never`); + }); + test('Multiple interface generation', () => { + const interfaceString = resolveInterfaces([ + { + type: { + fieldType: { + type: Options.name, + name: 'interface', + }, + }, + args: [], + data: { + type: TypeDefinition.InterfaceTypeDefinition, + }, + directives: [], + interfaces: [], + name: 'WithId', + }, + { + type: { + fieldType: { + type: Options.name, + name: 'interface', + }, + }, + args: [], + data: { + type: TypeDefinition.InterfaceTypeDefinition, + }, + directives: [], + interfaces: [], + name: 'WithName', + }, + ]); + expect(interfaceString).toEqual(`type ${ZEUS_INTERFACES} = ${TYPES}["WithId"] | ${TYPES}["WithName"]`); + }); +}); diff --git a/src/TreeToTS/templates/returnedTypes/interfaces.ts b/src/TreeToTS/templates/returnedTypes/interfaces.ts new file mode 100644 index 00000000..fb6463e7 --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/interfaces.ts @@ -0,0 +1,10 @@ +import { TYPES, ZEUS_INTERFACES } from '@/TreeToTS/templates/returnedTypes/models'; +import { ParserField, TypeDefinition } from 'graphql-js-tree'; + +export const resolveInterfaces = (rootNodes: ParserField[]): string => { + const interfaceTypes = rootNodes + .filter((rn) => rn.data.type === TypeDefinition.InterfaceTypeDefinition) + .map((rn) => `${TYPES}["${rn.name}"]`) + .join(' | '); + return `type ${ZEUS_INTERFACES} = ${interfaceTypes || 'never'}`; +}; diff --git a/src/TreeToTS/templates/returnedTypes/models.ts b/src/TreeToTS/templates/returnedTypes/models.ts new file mode 100644 index 00000000..a364df88 --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/models.ts @@ -0,0 +1,3 @@ +export const ZEUS_INTERFACES = `ZEUS_INTERFACES`; +export const ZEUS_UNIONS = `ZEUS_UNIONS`; +export const TYPES = 'GraphQLTypes'; diff --git a/src/TreeToTS/templates/returnedTypes/unionMember.spec.ts b/src/TreeToTS/templates/returnedTypes/unionMember.spec.ts new file mode 100644 index 00000000..3ad6f29f --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/unionMember.spec.ts @@ -0,0 +1,25 @@ +import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; +import { resolveUnionMember } from '@/TreeToTS/templates/returnedTypes/unionMember'; +import { Options, ParserField, TypeSystemDefinition, getTypeName } from 'graphql-js-tree'; + +test('resolve union members', () => { + const ob: ParserField = { + data: { + type: TypeSystemDefinition.UnionMemberDefinition, + }, + name: 'Friend', + args: [], + directives: [], + interfaces: [], + type: { + fieldType: { + name: 'Friend', + type: Options.name, + }, + }, + }; + const member = resolveUnionMember(ob); + expect(member).toEqual( + `['...on ${getTypeName(ob.type.fieldType)}']: '__union' & ${TYPES}["${getTypeName(ob.type.fieldType)}"];`, + ); +}); diff --git a/src/TreeToTS/templates/returnedTypes/unionMember.ts b/src/TreeToTS/templates/returnedTypes/unionMember.ts new file mode 100644 index 00000000..55638113 --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/unionMember.ts @@ -0,0 +1,5 @@ +import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; +import { getTypeName, ParserField } from 'graphql-js-tree'; + +export const resolveUnionMember = (f: ParserField) => + `['...on ${getTypeName(f.type.fieldType)}']: '__union' & ${TYPES}["${getTypeName(f.type.fieldType)}"];`; diff --git a/src/TreeToTS/templates/returnedTypes/unions.spec.ts b/src/TreeToTS/templates/returnedTypes/unions.spec.ts new file mode 100644 index 00000000..acc4cda9 --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/unions.spec.ts @@ -0,0 +1,65 @@ +import { TYPES, ZEUS_UNIONS } from '@/TreeToTS/templates/returnedTypes/models'; +import { resolveUnions } from '@/TreeToTS/templates/returnedTypes/unions'; +import { Options, TypeDefinition } from 'graphql-js-tree'; + +describe('Test union => ZEUS_UNIONS generation', () => { + test('Single type generation', () => { + const interfaceString = resolveUnions([ + { + type: { + fieldType: { + type: Options.name, + name: 'union', + }, + }, + args: [], + data: { + type: TypeDefinition.UnionTypeDefinition, + }, + directives: [], + interfaces: [], + name: 'WithId', + }, + ]); + expect(interfaceString).toEqual(`type ${ZEUS_UNIONS} = ${TYPES}["WithId"]`); + }); + test('No union generation', () => { + const interfaceString = resolveUnions([]); + expect(interfaceString).toEqual(`type ${ZEUS_UNIONS} = never`); + }); + test('Multiple union generation', () => { + const interfaceString = resolveUnions([ + { + type: { + fieldType: { + type: Options.name, + name: 'union', + }, + }, + args: [], + data: { + type: TypeDefinition.UnionTypeDefinition, + }, + directives: [], + interfaces: [], + name: 'WithId', + }, + { + type: { + fieldType: { + type: Options.name, + name: 'union', + }, + }, + args: [], + data: { + type: TypeDefinition.UnionTypeDefinition, + }, + directives: [], + interfaces: [], + name: 'WithName', + }, + ]); + expect(interfaceString).toEqual(`type ${ZEUS_UNIONS} = ${TYPES}["WithId"] | ${TYPES}["WithName"]`); + }); +}); diff --git a/src/TreeToTS/templates/returnedTypes/unions.ts b/src/TreeToTS/templates/returnedTypes/unions.ts new file mode 100644 index 00000000..0678a4ea --- /dev/null +++ b/src/TreeToTS/templates/returnedTypes/unions.ts @@ -0,0 +1,10 @@ +import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; +import { ParserField, TypeDefinition } from 'graphql-js-tree'; + +export const resolveUnions = (rootNodes: ParserField[]): string => { + const unionTypes = rootNodes + .filter((rn) => rn.data.type === TypeDefinition.UnionTypeDefinition) + .map((rn) => `${TYPES}["${rn.name}"]`) + .join(' | '); + return `type ZEUS_UNIONS = ${unionTypes || 'never'}`; +}; diff --git a/src/TreeToTS/templates/shared/description.spec.ts b/src/TreeToTS/templates/shared/description.spec.ts new file mode 100644 index 00000000..52d8e8f9 --- /dev/null +++ b/src/TreeToTS/templates/shared/description.spec.ts @@ -0,0 +1,6 @@ +import { plusDescription } from '@/TreeToTS/templates/shared/description'; + +test('It creates correct TypeScript doc', () => { + const desc = plusDescription('Hello world', ''); + expect(desc).toEqual(`/** Hello world */\n`); +}); diff --git a/src/TreeToTS/templates/shared/description.ts b/src/TreeToTS/templates/shared/description.ts new file mode 100644 index 00000000..d51cac39 --- /dev/null +++ b/src/TreeToTS/templates/shared/description.ts @@ -0,0 +1,2 @@ +export const plusDescription = (description?: string, prefix = ''): string => + description ? `${prefix}/** ${description} */\n` : ''; diff --git a/src/TreeToTS/templates/shared/field.spec.ts b/src/TreeToTS/templates/shared/field.spec.ts new file mode 100644 index 00000000..f49bcf94 --- /dev/null +++ b/src/TreeToTS/templates/shared/field.spec.ts @@ -0,0 +1,61 @@ +import { resolveFieldType } from '@/TreeToTS/templates/shared/field'; +import { Options } from 'graphql-js-tree'; + +describe('Test type field generation', () => { + test('Required Field generation', () => { + const resolvedString = resolveFieldType('Person', { + type: Options.required, + nest: { + type: Options.name, + name: 'Person', + }, + }); + expect(resolvedString).toEqual(`Person`); + }); + test('Optional Field generation', () => { + const resolvedString = resolveFieldType('Person', { + type: Options.name, + name: 'Person', + }); + expect(resolvedString).toEqual(`Person | undefined`); + }); + test('Optional Array Optional Field generation', () => { + const resolvedString = resolveFieldType('Person', { + type: Options.array, + nest: { + type: Options.name, + name: 'Person', + }, + }); + expect(resolvedString).toEqual(`Array | undefined`); + }); + test('Required Array Optional Field generation', () => { + const resolvedString = resolveFieldType('Person', { + type: Options.required, + nest: { + type: Options.array, + nest: { + type: Options.name, + name: 'Person', + }, + }, + }); + expect(resolvedString).toEqual(`Array`); + }); + test('Required Array Required Field generation', () => { + const resolvedString = resolveFieldType('Person', { + type: Options.required, + nest: { + type: Options.array, + nest: { + type: Options.required, + nest: { + type: Options.name, + name: 'Person', + }, + }, + }, + }); + expect(resolvedString).toEqual(`Array`); + }); +}); diff --git a/src/TreeToTS/templates/shared/field.ts b/src/TreeToTS/templates/shared/field.ts new file mode 100644 index 00000000..1b4b7c66 --- /dev/null +++ b/src/TreeToTS/templates/shared/field.ts @@ -0,0 +1,35 @@ +import { plusDescription } from '@/TreeToTS/templates/shared/description'; +import { toTypeScriptPrimitive } from '@/TreeToTS/templates/shared/primitive'; +import { ParserField, Options, getTypeName, FieldType } from 'graphql-js-tree'; + +export const resolveFieldType = ( + name: string, + fType: FieldType, + fn: (str: string) => string = (x) => x, + isRequired = false, +): string => { + if (fType.type === Options.name) { + return fn(isRequired ? name : `${name} | undefined`); + } + if (fType.type === Options.array) { + return resolveFieldType( + name, + fType.nest, + isRequired ? (x) => `Array<${fn(x)}>` : (x) => `Array<${fn(x)}> | undefined`, + false, + ); + } + if (fType.type === Options.required) { + return resolveFieldType(name, fType.nest, fn, true); + } + throw new Error('Invalid field type'); +}; + +export const resolveField = (f: ParserField): string => { + const isNullType = (type: string): string => { + return f.type.fieldType.type === Options.required ? `: ${type}` : `?: ${type}`; + }; + return `${plusDescription(f.description, '\t')}\t${f.name}${isNullType( + resolveFieldType(toTypeScriptPrimitive(getTypeName(f.type.fieldType)), f.type.fieldType), + )}`; +}; diff --git a/src/TreeToTS/templates/shared/primitive.spec.ts b/src/TreeToTS/templates/shared/primitive.spec.ts new file mode 100644 index 00000000..50020aec --- /dev/null +++ b/src/TreeToTS/templates/shared/primitive.spec.ts @@ -0,0 +1,28 @@ +import { toTypeScriptPrimitive } from '@/TreeToTS/templates/shared/primitive'; + +describe('TypeScript primitive generation', () => { + test('for inexistent Ts type', () => { + const primitive = toTypeScriptPrimitive('Person'); + expect(primitive).toContain('Person'); + }); + test('for GraphQL String type', () => { + const primitive = toTypeScriptPrimitive('String'); + expect(primitive).toEqual('string'); + }); + test('for GraphQL Int type', () => { + const primitive = toTypeScriptPrimitive('Int'); + expect(primitive).toEqual('number'); + }); + test('for GraphQL Float type', () => { + const primitive = toTypeScriptPrimitive('Float'); + expect(primitive).toEqual('number'); + }); + test('for GraphQL Boolean type', () => { + const primitive = toTypeScriptPrimitive('Boolean'); + expect(primitive).toEqual('boolean'); + }); + test('for GraphQL ID type', () => { + const primitive = toTypeScriptPrimitive('ID'); + expect(primitive).toEqual('string'); + }); +}); diff --git a/src/TreeToTS/templates/shared/primitive.ts b/src/TreeToTS/templates/shared/primitive.ts new file mode 100644 index 00000000..af54f056 --- /dev/null +++ b/src/TreeToTS/templates/shared/primitive.ts @@ -0,0 +1,11 @@ +import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; + +const typeScriptMap: Record = { + Int: 'number', + Float: 'number', + Boolean: 'boolean', + ID: 'string', + String: 'string', +}; +export const isTypeScriptPrimitive = (a: string) => !!typeScriptMap[a]; +export const toTypeScriptPrimitive = (a: string): string => typeScriptMap[a] || `${TYPES}["${a}"]`; diff --git a/src/TreeToTS/templates/typescript/operations.ts b/src/TreeToTS/templates/typescript/operations.ts index 1c01723a..42c846ba 100644 --- a/src/TreeToTS/templates/typescript/operations.ts +++ b/src/TreeToTS/templates/typescript/operations.ts @@ -1,8 +1,8 @@ import { ResolvedOperations } from 'TreeToTS'; import { Environment } from '@/Models'; -import { VALUETYPES } from '../resolveValueTypes'; -import { TYPES } from '@/TreeToTS/templates/returnedTypes'; import { OperationType } from 'graphql-js-tree'; +import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; +import { VALUETYPES } from '@/TreeToTS/templates/valueTypes/models'; export const generateOperationsChaining = ({ query, mutation, subscription }: Partial) => { const allOps: Record = { diff --git a/src/TreeToTS/templates/valueTypes/arg.ts b/src/TreeToTS/templates/valueTypes/arg.ts new file mode 100644 index 00000000..7aa468ac --- /dev/null +++ b/src/TreeToTS/templates/valueTypes/arg.ts @@ -0,0 +1,61 @@ +import { plusDescription } from '@/TreeToTS/templates/shared/description'; +import { isTypeScriptPrimitive, toTypeScriptPrimitive } from '@/TreeToTS/templates/shared/primitive'; +import { truthyType } from '@/TreeToTS/templates/truthy'; +import { VALUETYPES } from '@/TreeToTS/templates/valueTypes/models'; +import { ParserField, Options, getTypeName, FieldType } from 'graphql-js-tree'; + +export const resolveArg = (f: ParserField): string => { + const { + type: { fieldType }, + } = f; + const isRequiredName = (name: string): string => { + if (fieldType.type === Options.required) { + return name; + } + return `${name}?`; + }; + const resolveArgsName = (name: string): string => { + return isRequiredName(name) + ': '; + }; + const typeName = getTypeName(f.type.fieldType); + const tsp = toTypeScriptPrimitive(typeName); + return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${resolveValueFieldType( + isTypeScriptPrimitive(typeName) ? tsp : createValueType(typeName), + f.type.fieldType, + )}`; +}; + +export const createValueType = (t: string): string => `${VALUETYPES}["${t}"]`; + +export const resolveValueFieldType = ( + name: string, + fType: FieldType, + fn: (str: string) => string = (x) => x, + isRequired = false, +): string => { + if (fType.type === Options.name) { + return fn(isRequired ? name : `${name} | undefined | null`); + } + if (fType.type === Options.array) { + return resolveValueFieldType( + name, + fType.nest, + isRequired ? (x) => `(${fn(x)})[] | undefined | null` : (x) => `(${fn(x)})[]`, + false, + ); + } + if (fType.type === Options.required) { + return resolveValueFieldType(name, fType.nest, fn, true); + } + throw new Error('Invalid field type'); +}; +export const resolveValueField = (f: ParserField, enumsAndScalars: string[]): string => { + const { args } = f; + const typeName = getTypeName(f.type.fieldType); + const resolvedTypeName = + isTypeScriptPrimitive(typeName) || enumsAndScalars.includes(typeName) ? truthyType : createValueType(typeName); + if (args && args.length) { + return `${f.name}?: [{${args.map(resolveArg).join(',')}},${resolvedTypeName}]`; + } + return `${plusDescription(f.description, '\t')}\t${`${f.name}?` + ':'}${resolvedTypeName}`; +}; diff --git a/src/TreeToTS/templates/valueTypes/index.ts b/src/TreeToTS/templates/valueTypes/index.ts new file mode 100644 index 00000000..6a6b1379 --- /dev/null +++ b/src/TreeToTS/templates/valueTypes/index.ts @@ -0,0 +1,63 @@ +import { truthyType } from '@/TreeToTS/templates/truthy'; +import { ParserField, TypeSystemDefinition, Helpers, TypeDefinition, getTypeName } from 'graphql-js-tree'; +import { createValueType, resolveArg, resolveValueField } from '@/TreeToTS/templates/valueTypes/arg'; +import { plusDescription } from '@/TreeToTS/templates/shared/description'; +import { VALUETYPES } from '@/TreeToTS/templates/valueTypes/models'; + +const AliasType = (code: string): string => `AliasType<${code}>`; + +const resolveValueTypeFromRoot = (i: ParserField, rootNodes: ParserField[], enumsAndScalars: string[]): string => { + if (!i.args || !i.args.length) { + return `["${i.name}"]:unknown`; + } + if (i.data.type === TypeDefinition.UnionTypeDefinition) { + return `["${i.name}"]: ${AliasType( + `{${i.args + .map( + (f) => `\t\t["...on ${getTypeName(f.type.fieldType)}"] : ${VALUETYPES}["${getTypeName(f.type.fieldType)}"]`, + ) + .join(',\n')}\n\t\t__typename?: ${truthyType}\n}`, + )}`; + } + if (i.data.type === TypeDefinition.EnumTypeDefinition) { + return `["${i.name}"]:${i.name}`; + } + if (i.data.type === TypeDefinition.InputObjectTypeDefinition) { + return `["${i.name}"]: {\n${i.args.map((f) => resolveArg(f)).join(',\n')}\n}`; + } + if (i.data.type === TypeDefinition.InterfaceTypeDefinition) { + const typesImplementing = rootNodes.filter((rn) => rn.interfaces && rn.interfaces.includes(i.name)); + return `["${i.name}"]:${AliasType( + `{ +\t${i.args.map((f) => resolveValueField(f, enumsAndScalars)).join(',\n')};\n\t\t${typesImplementing + .map((f) => `['...on ${f.name}']?: Omit<${createValueType(f.name)},keyof ${createValueType(i.name)}>;`) + .join('\n\t\t')}\n\t\t__typename?: ${truthyType}\n}`, + )}`; + } + return `["${i.name}"]: ${AliasType( + `{\n${i.args.map((f) => resolveValueField(f, enumsAndScalars)).join(',\n')},\n\t\t__typename?: ${truthyType}\n}`, + )}`; +}; +export const resolveValueType = (i: ParserField, rootNodes: ParserField[], enumsAndScalars: string[]): string => { + if (i.data.type === TypeSystemDefinition.DirectiveDefinition) { + return ''; + } + if (i.data.type === Helpers.Comment) { + return ''; + } + const output = resolveValueTypeFromRoot(i, rootNodes, enumsAndScalars); + return `${plusDescription(i.description)}${output}`; +}; +export const resolveValueTypes = (rootNodes: ParserField[]): string => { + const enumsAndScalars = rootNodes + .filter( + (n) => n.data?.type === TypeDefinition.EnumTypeDefinition || n.data?.type === TypeDefinition.ScalarTypeDefinition, + ) + .map((n) => n.name); + return `export type ${VALUETYPES} = { + ${rootNodes + .map((f) => resolveValueType(f, rootNodes, enumsAndScalars)) + .filter((v) => v) + .join(';\n\t')} + }`; +}; diff --git a/src/TreeToTS/templates/valueTypes/models.ts b/src/TreeToTS/templates/valueTypes/models.ts new file mode 100644 index 00000000..d32b9aeb --- /dev/null +++ b/src/TreeToTS/templates/valueTypes/models.ts @@ -0,0 +1 @@ +export const VALUETYPES = 'ValueTypes'; diff --git a/src/__tests__/TreeToTS/Chain.spec.ts b/src/__tests__/TreeToTS/Chain.spec.ts index 91024b13..66007ea8 100644 --- a/src/__tests__/TreeToTS/Chain.spec.ts +++ b/src/__tests__/TreeToTS/Chain.spec.ts @@ -1,3 +1,4 @@ +import { replSpace } from '@/__tests__/TestUtils'; import { Parser } from 'graphql-js-tree'; import { TreeToTS } from '../../TreeToTS'; @@ -11,7 +12,7 @@ describe('Chain tests', () => { } `; const tree = Parser.parseAddExtensions(schema); - const typeScriptCode = TreeToTS.resolveTreeSplit({ tree }); - expect(typeScriptCode.index).toContain(`Chain = (...options: chainOptions) => Thunder(apiFetch(options));`); + const m = replSpace(TreeToTS.resolveTreeSplit({ tree }).index); + m(`Chain = (...options: chainOptions) => Thunder(apiFetch(options));`); }); }); diff --git a/src/__tests__/TreeToTS/EsModule.spec.ts b/src/__tests__/TreeToTS/EsModule.spec.ts index 8ffbd6fb..0888f620 100644 --- a/src/__tests__/TreeToTS/EsModule.spec.ts +++ b/src/__tests__/TreeToTS/EsModule.spec.ts @@ -1,3 +1,4 @@ +import { replSpace } from '@/__tests__/TestUtils'; import { Parser } from 'graphql-js-tree'; import { TreeToTS } from '../../TreeToTS'; @@ -10,8 +11,8 @@ schema{ describe('Esmodule flag tests', () => { it('With esModule flag it should contain js import', () => { const tree = Parser.parseAddExtensions(schema); - const typeScriptCode = TreeToTS.resolveTreeSplit({ tree, esModule: true }); - expect(typeScriptCode.indexImports).toContain(`'./const.js'`); + const m = replSpace(TreeToTS.resolveTreeSplit({ tree, esModule: true }).indexImports); + m(`'./const.js'`); }); it('Without esModule flag it should not contain js import', () => { const tree = Parser.parseAddExtensions(schema); diff --git a/src/__tests__/TreeToTS/Extend.spec.ts b/src/__tests__/TreeToTS/Extend.spec.ts index 809fd393..106531fd 100644 --- a/src/__tests__/TreeToTS/Extend.spec.ts +++ b/src/__tests__/TreeToTS/Extend.spec.ts @@ -1,3 +1,4 @@ +import { replSpace } from '@/__tests__/TestUtils'; import { Parser } from 'graphql-js-tree'; import { TreeToTS } from '../../TreeToTS'; @@ -10,7 +11,7 @@ describe('Extend tests on parser', () => { } `; const tree = Parser.parseAddExtensions(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`age?:number`); + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`age?:number`); }); }); diff --git a/src/__tests__/TreeToTS/Field.spec.ts b/src/__tests__/TreeToTS/Field.spec.ts index 1efdf0d2..fc1ed95d 100644 --- a/src/__tests__/TreeToTS/Field.spec.ts +++ b/src/__tests__/TreeToTS/Field.spec.ts @@ -1,4 +1,5 @@ -import { TYPES } from '@/TreeToTS/templates/returnedTypes'; +import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; +import { replSpace } from '@/__tests__/TestUtils'; import { Parser, ScalarTypes } from 'graphql-js-tree'; import { TreeToTS } from '../../TreeToTS'; @@ -12,9 +13,9 @@ describe('Fields tests on TypeScript code', () => { verified: ${ScalarTypes.Boolean} }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); + const m = replSpace(TreeToTS.resolveTree({ tree })); const mockFields = [`id?: string`, `name?: string`, `age?: number`, `weight?: number`, `verified?: boolean`]; - mockFields.forEach((mf) => expect(typeScriptCode).toContain(mf)); + mockFields.forEach((mf) => m(mf)); }); test('Type objects', () => { const schema = ` @@ -23,8 +24,8 @@ describe('Fields tests on TypeScript code', () => { car: Car }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`car?: ${TYPES}["Car"]`); + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`car?: ${TYPES}["Car"]`); }); test('Interface objects', () => { const schema = ` @@ -33,8 +34,8 @@ describe('Fields tests on TypeScript code', () => { car: Car }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`car?: ${TYPES}["Car"]`); + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`car?: ${TYPES}["Car"]`); }); test('Enum objects', () => { const schema = ` @@ -44,8 +45,8 @@ describe('Fields tests on TypeScript code', () => { }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`car?: ${TYPES}["Car"]`); + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`car?: ${TYPES}["Car"]`); }); test('Custom scalar objects', () => { const schema = ` @@ -55,8 +56,8 @@ describe('Fields tests on TypeScript code', () => { }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`car?: ${TYPES}["Car"]`); + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`car?: ${TYPES}["Car"]`); }); test('Union objects', () => { const schema = ` @@ -68,8 +69,8 @@ describe('Fields tests on TypeScript code', () => { }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`machine?: ${TYPES}["Machine"]`); + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`machine?: ${TYPES}["Machine"]`); }); test(`Required fields`, () => { const schema = `type Person{ @@ -77,8 +78,8 @@ describe('Fields tests on TypeScript code', () => { }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`id: string`); + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`id: string`); }); test(`ListType fields`, () => { const schema = `type Person{ @@ -87,9 +88,9 @@ describe('Fields tests on TypeScript code', () => { }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`name?: Array`); - expect(typeScriptCode).toContain(`friends: Array<${TYPES}["Person"]>`); + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`name?: Array`); + m(`friends: Array<${TYPES}["Person"]>`); }); test(`Arguments`, () => { const schema = `type Person{ @@ -97,7 +98,7 @@ describe('Fields tests on TypeScript code', () => { }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`name?: string | undefined | null`); + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`name?: string | undefined | null`); }); }); diff --git a/src/__tests__/TreeToTS/Selectors.spec.ts b/src/__tests__/TreeToTS/Selectors.spec.ts index f0b2d363..4ec9b315 100644 --- a/src/__tests__/TreeToTS/Selectors.spec.ts +++ b/src/__tests__/TreeToTS/Selectors.spec.ts @@ -1,3 +1,4 @@ +import { replSpace } from '@/__tests__/TestUtils'; import { Parser } from 'graphql-js-tree'; import { TreeToTS } from '../../TreeToTS'; @@ -11,7 +12,7 @@ schema{ describe('Thunder tests', () => { it('TypeScript: Selectors', () => { const tree = Parser.parseAddExtensions(schema); - const { index } = TreeToTS.resolveTreeSplit({ tree }); - expect(index).toContain(`Selector =`); + const m = replSpace(TreeToTS.resolveTreeSplit({ tree }).index); + m(`Selector =`); }); }); diff --git a/src/__tests__/TreeToTS/Thunder.spec.ts b/src/__tests__/TreeToTS/Thunder.spec.ts index 63d7dc8d..1df16eed 100644 --- a/src/__tests__/TreeToTS/Thunder.spec.ts +++ b/src/__tests__/TreeToTS/Thunder.spec.ts @@ -1,3 +1,4 @@ +import { replSpace } from '@/__tests__/TestUtils'; import { Parser } from 'graphql-js-tree'; import { TreeToTS } from '../../TreeToTS'; @@ -11,14 +12,14 @@ schema{ describe('Thunder tests', () => { it('TypeScript: ThunderDefinitions', () => { const tree = Parser.parseAddExtensions(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); - expect(typeScriptCode).toContain(`export const Thunder = (fn: FetchFunction) => < - O extends 'query', - R extends keyof ValueTypes = GenericOperation ->( - operation: O, -) => (o: Z | ValueTypes[R], ops?: OperationOptions) => - fullChainConstruct(fn)(operation, allOperations[operation])(o as any, ops) as Promise>; + const m = replSpace(TreeToTS.resolveTree({ tree })); + m(`export const Thunder = (fn: FetchFunction) => < + O extends 'query', + R extends keyof ValueTypes = GenericOperation + >( + operation: O, + ) => (o: Z | ValueTypes[R], ops?: OperationOptions) => + fullChainConstruct(fn)(operation, allOperations[operation])(o as any, ops) as Promise>; `); }); }); diff --git a/src/__tests__/TreeToTS/TypeDefinitions.spec.ts b/src/__tests__/TreeToTS/TypeDefinitions.spec.ts index c28b90e6..b1257966 100644 --- a/src/__tests__/TreeToTS/TypeDefinitions.spec.ts +++ b/src/__tests__/TreeToTS/TypeDefinitions.spec.ts @@ -1,3 +1,4 @@ +import { replSpace } from '@/__tests__/TestUtils'; import { Parser } from 'graphql-js-tree'; import { TreeToTS } from '../../TreeToTS'; @@ -5,23 +6,23 @@ describe('TypeDefintion declarations tests on TypeScript type generator', () => test('ObjectTypeDefinition - type keyword', () => { const schema = 'type Person'; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); + const m = replSpace(TreeToTS.resolveTree({ tree })); const mockType = `["Person"]`; - expect(typeScriptCode).toContain(mockType); + m(mockType); }); test('InterfaceTypeDefinition - interface keyword', () => { const schema = 'interface Person'; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); + const m = replSpace(TreeToTS.resolveTree({ tree })); const mockType = `["Person"]`; - expect(typeScriptCode).toContain(mockType); + m(mockType); }); test('InputObjectTypeDefinition - input keyword', () => { const schema = 'input Person'; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); + const m = replSpace(TreeToTS.resolveTree({ tree })); const mockType = `["Person"]`; - expect(typeScriptCode).toContain(mockType); + m(mockType); }); test('EnumTypeDefinition - enum keyword', () => { const schema = `enum Status{ @@ -29,26 +30,26 @@ describe('TypeDefintion declarations tests on TypeScript type generator', () => PAUSED }`; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); + const m = replSpace(TreeToTS.resolveTree({ tree })); const mockType = `enum Status`; const mockValueActive = `ACTIVE = "ACTIVE"`; const mockValuePaused = `PAUSED = "PAUSED"`; - expect(typeScriptCode).toContain(mockValueActive); - expect(typeScriptCode).toContain(mockValuePaused); - expect(typeScriptCode).toContain(mockType); + m(mockValueActive); + m(mockValuePaused); + m(mockType); }); test('UnionTypeDefinition - union keyword', () => { const schema = 'union Person'; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); + const m = replSpace(TreeToTS.resolveTree({ tree })); const mockType = `["Person"]`; - expect(typeScriptCode).toContain(mockType); + m(mockType); }); test('ScalarTypeDefinition - scalar keyword', () => { const schema = 'scalar Person'; const tree = Parser.parse(schema); - const typeScriptCode = TreeToTS.resolveTree({ tree }); + const m = replSpace(TreeToTS.resolveTree({ tree })); const mockType = `["Person"]`; - expect(typeScriptCode).toContain(mockType); + m(mockType); }); }); From 2109d5bd0c3cb50bd62ca29616ba0f40b4de9b4d Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 30 Mar 2022 16:18:05 +0200 Subject: [PATCH 05/74] :construction: WIP work in progress on new generated functions --- examples/typescript-node/src/zeus/index.ts | 957 +++++++++--------- examples/typescript-node/src/zeus/modified.ts | 261 ----- examples/typescript-node/src/zeus/newIndex.ts | 115 +++ src/TreeToTS/functions/ScalarResolver.ts | 26 - src/TreeToTS/functions/TypesPropsResolver.ts | 70 -- src/TreeToTS/functions/buildQuery.ts | 8 - src/TreeToTS/functions/index.ts | 9 - src/TreeToTS/functions/isArrayFunction.ts | 52 - src/TreeToTS/functions/new/buildQuery.spec.ts | 169 ++++ src/TreeToTS/functions/new/buildQuery.ts | 30 + src/TreeToTS/functions/new/mocks.ts | 40 + src/TreeToTS/functions/new/models.ts | 35 + .../functions/new/purifyGraphQLKey.ts | 1 + .../functions/new/resolvePath.spec.ts | 31 + src/TreeToTS/functions/new/resolvePath.ts | 107 ++ src/TreeToTS/functions/objectToTree.ts | 8 - src/TreeToTS/functions/queryConstruct.ts | 8 - src/TreeToTS/functions/resolveKV.ts | 8 - src/TreeToTS/functions/seekForAliases.ts | 34 - .../functions/traverseToSeekArrays.ts | 38 - .../templates/typescript/functions.ts | 18 - 21 files changed, 988 insertions(+), 1037 deletions(-) delete mode 100644 examples/typescript-node/src/zeus/modified.ts create mode 100644 examples/typescript-node/src/zeus/newIndex.ts delete mode 100644 src/TreeToTS/functions/ScalarResolver.ts delete mode 100644 src/TreeToTS/functions/TypesPropsResolver.ts delete mode 100644 src/TreeToTS/functions/buildQuery.ts delete mode 100644 src/TreeToTS/functions/isArrayFunction.ts create mode 100644 src/TreeToTS/functions/new/buildQuery.spec.ts create mode 100644 src/TreeToTS/functions/new/buildQuery.ts create mode 100644 src/TreeToTS/functions/new/mocks.ts create mode 100644 src/TreeToTS/functions/new/models.ts create mode 100644 src/TreeToTS/functions/new/purifyGraphQLKey.ts create mode 100644 src/TreeToTS/functions/new/resolvePath.spec.ts create mode 100644 src/TreeToTS/functions/new/resolvePath.ts delete mode 100644 src/TreeToTS/functions/objectToTree.ts delete mode 100644 src/TreeToTS/functions/queryConstruct.ts delete mode 100644 src/TreeToTS/functions/resolveKV.ts delete mode 100644 src/TreeToTS/functions/seekForAliases.ts delete mode 100644 src/TreeToTS/functions/traverseToSeekArrays.ts diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 87dce799..8f0dec62 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -1,286 +1,286 @@ /* eslint-disable */ import { AllTypesProps, ReturnTypes } from './const'; -type ZEUS_INTERFACES = GraphQLTypes["Nameable"] -type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] +type ZEUS_INTERFACES = GraphQLTypes['Nameable']; +type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; export type ValueTypes = { - ["SpecialSkills"]:SpecialSkills; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean -}>; - /** create card inputs
*/ -["createCard"]: { - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: (ValueTypes["SpecialSkills"])[], - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined | null + ['SpecialSkills']: SpecialSkills; + ['Mutation']: AliasType<{ + addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; + __typename?: boolean; + }>; + /** create card inputs
*/ + ['createCard']: { + /** The attack power
*/ + Attack: number; + /** The defense power
*/ + Defense: number; + /** input skills */ + skills?: ValueTypes['SpecialSkills'][]; + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + /**
How many children the greek god had
*/ + Children?: number | undefined | null; + }; + ['Subscription']: AliasType<{ + deck?: ValueTypes['Card']; + __typename?: boolean; + }>; + /** Card used in card game
*/ + ['Card']: AliasType<{ + /** The attack power
*/ + Attack?: boolean; + /**
How many children the greek god had
*/ + Children?: boolean; + /** The defense power
*/ + Defense?: boolean; + attack?: [ + { + /** Attacked card/card ids
*/ cardID: string[] | undefined | null; + }, + ValueTypes['Card'], + ]; + /** Put your description here */ + cardImage?: ValueTypes['S3Object']; + /** Description of a card
*/ + description?: boolean; + id?: boolean; + image?: boolean; + /** The name of a card
*/ + name?: boolean; + skills?: boolean; + __typename?: boolean; + }>; + /** Aws S3 File */ + ['S3Object']: AliasType<{ + bucket?: boolean; + key?: boolean; + region?: boolean; + __typename?: boolean; + }>; + ['SpecialCard']: AliasType<{ + effect?: boolean; + name?: boolean; + __typename?: boolean; + }>; + ['ChangeCard']: AliasType<{ + ['...on SpecialCard']: ValueTypes['SpecialCard']; + ['...on EffectCard']: ValueTypes['EffectCard']; + __typename?: boolean; + }>; + /** Stack of cards */ + ['CardStack']: AliasType<{ + cards?: ValueTypes['Card']; + name?: boolean; + __typename?: boolean; + }>; + ['Query']: AliasType<{ + cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; + /** Draw a card
*/ + drawCard?: ValueTypes['Card']; + drawChangeCard?: ValueTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards?: ValueTypes['Card']; + myStacks?: ValueTypes['CardStack']; + nameables?: ValueTypes['Nameable']; + __typename?: boolean; + }>; + ['Nameable']: AliasType<{ + name?: boolean; + ['...on Card']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on CardStack']?: Omit; + ['...on EffectCard']?: Omit; + __typename?: boolean; + }>; + ['EffectCard']: AliasType<{ + effectSize?: boolean; + name?: boolean; + __typename?: boolean; + }>; }; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean -}>; - /** Card used in card game
*/ -["Card"]: AliasType<{ - /** The attack power
*/ - Attack?:boolean, - /**
How many children the greek god had
*/ - Children?:boolean, - /** The defense power
*/ - Defense?:boolean, -attack?: [{ /** Attacked card/card ids
*/ - cardID: (string)[] | undefined | null},ValueTypes["Card"]], - /** Put your description here */ - cardImage?:ValueTypes["S3Object"], - /** Description of a card
*/ - description?:boolean, - id?:boolean, - image?:boolean, - /** The name of a card
*/ - name?:boolean, - skills?:boolean, - __typename?: boolean -}>; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean, - key?:boolean, - region?:boolean, - __typename?: boolean -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean, - name?:boolean, - __typename?: boolean -}>; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] - __typename?: boolean -}>; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean, - __typename?: boolean -}>; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], - /** Draw a card
*/ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean -}>; - ["Nameable"]:AliasType<{ - name?:boolean; - ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on CardStack']?: Omit; - ['...on EffectCard']?: Omit; - __typename?: boolean -}>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean, - name?:boolean, - __typename?: boolean -}> - } export type ModelTypes = { - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["Mutation"]: { - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"]; - ["Subscription"]: { - deck?: Array | undefined -}; - /** Card used in card game
*/ -["Card"]: { - /** The attack power
*/ - Attack: number, - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The defense power
*/ - Defense: number, - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined, - /** Put your description here */ - cardImage?: GraphQLTypes["S3Object"] | undefined, - /** Description of a card
*/ - description: string, - id: string, - image: string, - /** The name of a card
*/ - name: string, - skills?: Array | undefined -}; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - ["SpecialCard"]: { - effect: string, - name: string -}; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string -}; - ["Query"]: { - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array + ['SpecialSkills']: GraphQLTypes['SpecialSkills']; + ['Mutation']: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes['Card']; + }; + /** create card inputs
*/ + ['createCard']: GraphQLTypes['createCard']; + ['Subscription']: { + deck?: Array | undefined; + }; + /** Card used in card game
*/ + ['Card']: { + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined; + /** Put your description here */ + cardImage?: GraphQLTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array | undefined; + }; + /** Aws S3 File */ + ['S3Object']: { + bucket: string; + key: string; + region: string; + }; + ['SpecialCard']: { + effect: string; + name: string; + }; + ['ChangeCard']: ModelTypes['SpecialCard'] | ModelTypes['EffectCard']; + /** Stack of cards */ + ['CardStack']: { + cards?: Array | undefined; + name: string; + }; + ['Query']: { + cardById?: GraphQLTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: GraphQLTypes['Card']; + drawChangeCard: GraphQLTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array; + myStacks?: Array | undefined; + nameables: Array; + }; + ['Nameable']: ModelTypes['Card'] | ModelTypes['SpecialCard'] | ModelTypes['CardStack'] | ModelTypes['EffectCard']; + ['EffectCard']: { + effectSize: number; + name: string; + }; }; - ["Nameable"]: ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"] | ModelTypes["EffectCard"]; - ["EffectCard"]: { - effectSize: number, - name: string -} - } export type GraphQLTypes = { - ["SpecialSkills"]: SpecialSkills; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - /** create card inputs
*/ -["createCard"]: { - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined -}; - /** Card used in card game
*/ -["Card"]: { - __typename: "Card", - /** The attack power
*/ - Attack: number, - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The defense power
*/ - Defense: number, - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined, - /** Put your description here */ - cardImage?: GraphQLTypes["S3Object"] | undefined, - /** Description of a card
*/ - description: string, - id: string, - image: string, - /** The name of a card
*/ - name: string, - skills?: Array | undefined -}; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string -}; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, - name: string -}; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, - name: string -}; - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - ["Nameable"]: { - __typename:"Card" | "SpecialCard" | "CardStack" | "EffectCard", - name: string - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['SpecialSkills']: SpecialSkills; + ['Mutation']: { + __typename: 'Mutation'; + /** add Card to Cards database
*/ + addCard: GraphQLTypes['Card']; + }; + /** create card inputs
*/ + ['createCard']: { + /** The attack power
*/ + Attack: number; + /** The defense power
*/ + Defense: number; + /** input skills */ + skills?: Array | undefined; + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + /**
How many children the greek god had
*/ + Children?: number | undefined; + }; + ['Subscription']: { + __typename: 'Subscription'; + deck?: Array | undefined; + }; + /** Card used in card game
*/ + ['Card']: { + __typename: 'Card'; + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined; + /** Put your description here */ + cardImage?: GraphQLTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array | undefined; + }; + /** Aws S3 File */ + ['S3Object']: { + __typename: 'S3Object'; + bucket: string; + key: string; + region: string; + }; + ['SpecialCard']: { + __typename: 'SpecialCard'; + effect: string; + name: string; + }; + ['ChangeCard']: { + __typename: 'SpecialCard' | 'EffectCard'; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + }; + /** Stack of cards */ + ['CardStack']: { + __typename: 'CardStack'; + cards?: Array | undefined; + name: string; + }; + ['Query']: { + __typename: 'Query'; + cardById?: GraphQLTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: GraphQLTypes['Card']; + drawChangeCard: GraphQLTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array; + myStacks?: Array | undefined; + nameables: Array; + }; + ['Nameable']: { + __typename: 'Card' | 'SpecialCard' | 'CardStack' | 'EffectCard'; + name: string; + ['...on Card']: '__union' & GraphQLTypes['Card']; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on CardStack']: '__union' & GraphQLTypes['CardStack']; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + }; + ['EffectCard']: { + __typename: 'EffectCard'; + effectSize: number; + name: string; + }; }; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, - name: string -} - } export const enum SpecialSkills { - THUNDER = "THUNDER", - RAIN = "RAIN", - FIRE = "FIRE" + THUNDER = 'THUNDER', + RAIN = 'RAIN', + FIRE = 'FIRE', } export class GraphQLError extends Error { - constructor(public response: GraphQLResponse) { - super(""); - console.error(response); - } - toString() { - return "GraphQL Response Error"; - } + constructor(public response: GraphQLResponse) { + super(''); + console.error(response); } - + toString() { + return 'GraphQL Response Error'; + } +} export type UnwrapPromise = T extends Promise ? R : T; -export type ZeusState Promise> = NonNullable< - UnwrapPromise> ->; +export type ZeusState Promise> = NonNullable>>; export type ZeusHook< - T extends ( - ...args: any[] - ) => Record Promise>, + T extends (...args: any[]) => Record Promise>, N extends keyof ReturnType > = ZeusState[N]>; @@ -333,6 +333,9 @@ export type InputType = IsPayLoad extends { __alias: infer R } } & MapType, '__alias'>> : MapType>; +export type InputValueType = { + [x: string]: boolean | [any, boolean | InputValueType] | InputValueType; +}; type Func

= (...args: P) => R; type AnyFunc = Func; export type ArgsType = F extends Func ? P : never; @@ -349,30 +352,19 @@ export type SubscriptionToGraphQL = { }; export type SelectionFunction = (t: T | V) => T; export type fetchOptions = ArgsType; -type websocketOptions = typeof WebSocket extends new ( - ...args: infer R -) => WebSocket - ? R - : never; -export type chainOptions = - | [fetchOptions[0], fetchOptions[1] & {websocket?: websocketOptions}] - | [fetchOptions[0]]; -export type FetchFunction = ( - query: string, - variables?: Record, -) => Promise; +type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; +export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; +export type FetchFunction = (query: string, variables?: Record) => Promise; export type SubscriptionFunction = (query: string) => any; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; - - export const ZeusSelect = () => ((t: any) => t) as SelectionFunction; export const ScalarResolver = (scalar: string, value: any) => { switch (scalar) { case 'String': - return `${JSON.stringify(value)}`; + return `${JSON.stringify(value)}`; case 'Int': return `${value}`; case 'Float': @@ -390,96 +382,87 @@ export const ScalarResolver = (scalar: string, value: any) => { } }; - export const TypesPropsResolver = ({ - value, - type, - name, - key, - blockArrays + value, + type, + name, + key, + blockArrays, }: { - value: any; - type: string; - name: string; - key?: string; - blockArrays?: boolean; + value: any; + type: string; + name: string; + key?: string; + blockArrays?: boolean; }): string => { - if (value === null) { - return `null`; - } - let resolvedValue = AllTypesProps[type][name]; - if (key) { - resolvedValue = resolvedValue[key]; - } - if (!resolvedValue) { - throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`) - } - const typeResolved = resolvedValue.type; - const isArray = resolvedValue.array; - const isArrayRequired = resolvedValue.arrayRequired; - if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { - const isRequired = resolvedValue.required ? '!' : ''; - let t = `${typeResolved}`; - if (isArray) { - if (isRequired) { - t = `${t}!`; - } - t = `[${t}]`; - if(isArrayRequired){ - t = `${t}!`; - } - }else{ - if (isRequired) { - t = `${t}!`; - } - } - return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; - } - if (isArray && !blockArrays) { - return `[${value - .map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })) - .join(',')}]`; + if (value === null) { + return `null`; + } + let resolvedValue = AllTypesProps[type][name]; + if (key) { + resolvedValue = resolvedValue[key]; + } + if (!resolvedValue) { + throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`); + } + const typeResolved = resolvedValue.type; + const isArray = resolvedValue.array; + const isArrayRequired = resolvedValue.arrayRequired; + if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { + const isRequired = resolvedValue.required ? '!' : ''; + let t = `${typeResolved}`; + if (isArray) { + if (isRequired) { + t = `${t}!`; + } + t = `[${t}]`; + if (isArrayRequired) { + t = `${t}!`; + } + } else { + if (isRequired) { + t = `${t}!`; + } } - const reslovedScalar = ScalarResolver(typeResolved, value); - if (!reslovedScalar) { - const resolvedType = AllTypesProps[typeResolved]; - if (typeof resolvedType === 'object') { - const argsKeys = Object.keys(resolvedType); - return `{${argsKeys - .filter((ak) => value[ak] !== undefined) - .map( - (ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}` - )}}`; - } - return ScalarResolver(AllTypesProps[typeResolved], value) as string; + return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; + } + if (isArray && !blockArrays) { + return `[${value.map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })).join(',')}]`; + } + const reslovedScalar = ScalarResolver(typeResolved, value); + if (!reslovedScalar) { + const resolvedType = AllTypesProps[typeResolved]; + if (typeof resolvedType === 'object') { + const argsKeys = Object.keys(resolvedType); + return `{${argsKeys + .filter((ak) => value[ak] !== undefined) + .map((ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}`)}}`; } - return reslovedScalar; + return ScalarResolver(AllTypesProps[typeResolved], value) as string; + } + return reslovedScalar; }; - -const isArrayFunction = ( - parent: string[], - a: any[] -) => { +const isArrayFunction = (parent: string[], a: any[]) => { const [values, r] = a; const [mainKey, key, ...keys] = parent; const keyValues = Object.keys(values).filter((k) => typeof values[k] !== 'undefined'); if (!keys.length) { - return keyValues.length > 0 - ? `(${keyValues - .map( - (v) => - `${v}:${TypesPropsResolver({ - value: values[v], - type: mainKey, - name: key, - key: v - })}` - ) - .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` - : traverseToSeekArrays(parent, r); - } + return keyValues.length > 0 + ? `(${keyValues + .map( + (v) => + `${v}:${TypesPropsResolver({ + value: values[v], + type: mainKey, + name: key, + key: v, + })}`, + ) + .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` + : traverseToSeekArrays(parent, r); + } const [typeResolverKey] = keys.splice(keys.length - 1, 1); let valueToResolve = ReturnTypes[mainKey][key]; @@ -496,22 +479,21 @@ const isArrayFunction = ( value: values[v], type: valueToResolve, name: typeResolverKey, - key: v - })}` + key: v, + })}`, ) .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` : traverseToSeekArrays(parent, r); return argumentString; }; - const resolveKV = (k: string, v: boolean | string | { [x: string]: boolean | string }) => typeof v === 'boolean' ? k : typeof v === 'object' ? `${k}{${objectToTree(v)}}` : `${k}${v}`; - const objectToTree = (o: { [x: string]: boolean | string }): string => - `{${Object.keys(o).map((k) => `${resolveKV(k, o[k])}`).join(' ')}}`; - + `{${Object.keys(o) + .map((k) => `${resolveKV(k, o[k])}`) + .join(' ')}}`; const traverseToSeekArrays = (parent: string[], a?: any): string => { if (!a) return ''; @@ -526,30 +508,28 @@ const traverseToSeekArrays = (parent: string[], a?: any): string => { Object.keys(a) .filter((k) => typeof a[k] !== 'undefined') .forEach((k) => { - if (k === '__alias') { - Object.keys(a[k]).forEach((aliasKey) => { - const aliasOperations = a[k][aliasKey]; - const aliasOperationName = Object.keys(aliasOperations)[0]; - const aliasOperation = aliasOperations[aliasOperationName]; - b[ - `${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}` - ] = traverseToSeekArrays([...parent, aliasOperationName], aliasOperation); - }); - } else { - b[k] = traverseToSeekArrays([...parent, k], a[k]); - } - }); + if (k === '__alias') { + Object.keys(a[k]).forEach((aliasKey) => { + const aliasOperations = a[k][aliasKey]; + const aliasOperationName = Object.keys(aliasOperations)[0]; + const aliasOperation = aliasOperations[aliasOperationName]; + b[`${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}`] = traverseToSeekArrays( + [...parent, aliasOperationName], + aliasOperation, + ); + }); + } else { + b[k] = traverseToSeekArrays([...parent, k], a[k]); + } + }); } else { return ''; } } return objectToTree(b); -}; - - -const buildQuery = (type: string, a?: Record) => - traverseToSeekArrays([type], a); +}; +const buildQuery = (type: string, a?: Record) => traverseToSeekArrays([type], a); const inspectVariables = (query: string) => { const regex = /\$\b\w*__ZEUS_VAR__\[?[^!^\]^\s^,^\)^\}]*[!]?[\]]?[!]?/g; @@ -575,26 +555,23 @@ const inspectVariables = (query: string) => { .join(', ')})${filteredQuery}`; }; - -export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => (o: Record) => - `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; - +export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => ( + o: Record, +) => `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription', tName: string) => ( o: Record, options?: OperationOptions, -) => fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r:any) => { - seekForAliases(r) - return r -}); - +) => + fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r: any) => { + seekForAliases(r); + return r; + }); export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => ( t: 'query' | 'mutation' | 'subscription', tName: string, -) => (o: Record, options?: OperationOptions) => - fn(queryConstruct(t, tName, options?.operationName)(o)); - +) => (o: Record, options?: OperationOptions) => fn(queryConstruct(t, tName, options?.operationName)(o)); const seekForAliases = (response: any) => { const traverseAlias = (value: any) => { @@ -625,70 +602,53 @@ const seekForAliases = (response: any) => { } }; - export const $ = (t: TemplateStringsArray): any => `ZEUS_VAR$${t.join('')}`; - -export const resolverFor = < - X, - T extends keyof ValueTypes, - Z extends keyof ValueTypes[T], ->( +export const resolverFor = ( type: T, field: Z, fn: ( args: Required[Z] extends [infer Input, any] ? Input : any, source: any, ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, -) => fn as (args?: any,source?: any) => any; - +) => fn as (args?: any, source?: any) => any; const handleFetchResponse = ( - response: Parameters['then']>[0], Function>>[0] + response: Parameters['then']>[0], Function>>[0], ): Promise => { if (!response.ok) { return new Promise((_, reject) => { - response.text().then(text => { - try { reject(JSON.parse(text)); } - catch (err) { reject(text); } - }).catch(reject); + response + .text() + .then((text) => { + try { + reject(JSON.parse(text)); + } catch (err) { + reject(text); + } + }) + .catch(reject); }); } return response.json(); }; export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { - let fetchFunction; - let queryString = query; - let fetchOptions = options[1] || {}; + let fetchFunction; + let queryString = query; + let fetchOptions = options[1] || {}; + try { + fetchFunction = require('node-fetch'); + } catch (error) { + throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); + } + if (fetchOptions.method && fetchOptions.method === 'GET') { try { - fetchFunction = require('node-fetch'); + queryString = require('querystring').stringify(query); } catch (error) { - throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); + throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); } - if (fetchOptions.method && fetchOptions.method === 'GET') { - try { - queryString = require('querystring').stringify(query); - } catch (error) { - throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); - } - return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) - .then(handleFetchResponse) - .then((response: GraphQLResponse) => { - if (response.errors) { - throw new GraphQLError(response); - } - return response.data; - }); - } - return fetchFunction(`${options[0]}`, { - body: JSON.stringify({ query: queryString, variables }), - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - ...fetchOptions - }) + return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) .then(handleFetchResponse) .then((response: GraphQLResponse) => { if (response.errors) { @@ -696,61 +656,68 @@ export const apiFetch = (options: fetchOptions) => (query: string, variables: Re } return response.data; }); - }; - + } + return fetchFunction(`${options[0]}`, { + body: JSON.stringify({ query: queryString, variables }), + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + ...fetchOptions, + }) + .then(handleFetchResponse) + .then((response: GraphQLResponse) => { + if (response.errors) { + throw new GraphQLError(response); + } + return response.data; + }); +}; -export const apiSubscription = (options: chainOptions) => ( - query: string, - ) => { - try { - const WebSocket = require('ws'); - const queryString = options[0] + '?query=' + encodeURIComponent(query); - const wsString = queryString.replace('http', 'ws'); - const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; - const webSocketOptions = options[1]?.websocket || [host]; - const ws = new WebSocket(...webSocketOptions); - return { - ws, - on: (e: (args: any) => void) => { - ws.onmessage = (event:any) => { - if(event.data){ - const parsed = JSON.parse(event.data) - const data = parsed.data - if (data) { - seekForAliases(data); - } - return e(data); +export const apiSubscription = (options: chainOptions) => (query: string) => { + try { + const WebSocket = require('ws'); + const queryString = options[0] + '?query=' + encodeURIComponent(query); + const wsString = queryString.replace('http', 'ws'); + const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; + const webSocketOptions = options[1]?.websocket || [host]; + const ws = new WebSocket(...webSocketOptions); + return { + ws, + on: (e: (args: any) => void) => { + ws.onmessage = (event: any) => { + if (event.data) { + const parsed = JSON.parse(event.data); + const data = parsed.data; + if (data) { + seekForAliases(data); } - }; - }, - off: (e: (args: any) => void) => { - ws.onclose = e; - }, - error: (e: (args: any) => void) => { - ws.onerror = e; - }, - open: (e: () => void) => { - ws.onopen = e; - }, - }; - } catch { - throw new Error('No websockets implemented. Please install ws'); - } - }; - - + return e(data); + } + }; + }, + off: (e: (args: any) => void) => { + ws.onclose = e; + }, + error: (e: (args: any) => void) => { + ws.onerror = e; + }, + open: (e: () => void) => { + ws.onopen = e; + }, + }; + } catch { + throw new Error('No websockets implemented. Please install ws'); + } +}; const allOperations = { - "query": "Query", - "mutation": "Mutation", - "subscription": "Subscription" -} + query: 'Query', + mutation: 'Mutation', + subscription: 'Subscription', +}; -export type GenericOperation = O extends 'query' - ? "Query" - : O extends 'mutation' - ? "Mutation" - : "Subscription" +export type GenericOperation = O extends 'query' ? 'Query' : O extends 'mutation' ? 'Mutation' : 'Subscription'; export const Thunder = (fn: FetchFunction) => < O extends 'query' | 'mutation' | 'subscription', @@ -760,21 +727,18 @@ export const Thunder = (fn: FetchFunction) => < ) => (o: Z | ValueTypes[R], ops?: OperationOptions) => fullChainConstruct(fn)(operation, allOperations[operation])(o as any, ops) as Promise>; -export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); - +export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); + export const SubscriptionThunder = (fn: SubscriptionFunction) => < O extends 'query' | 'mutation' | 'subscription', R extends keyof ValueTypes = GenericOperation >( operation: O, -) => ( - o: Z | ValueTypes[R], - ops?: OperationOptions -)=> - fullSubscriptionConstruct(fn)(operation, allOperations[operation])( - o as any, - ops, - ) as SubscriptionToGraphQL; +) => (o: Z | ValueTypes[R], ops?: OperationOptions) => + fullSubscriptionConstruct(fn)(operation, allOperations[operation])(o as any, ops) as SubscriptionToGraphQL< + Z, + GraphQLTypes[R] + >; export const Subscription = (...options: chainOptions) => SubscriptionThunder(apiSubscription(options)); export const Zeus = < @@ -787,6 +751,5 @@ export const Zeus = < operationName?: string, ) => queryConstruct(operation, allOperations[operation], operationName)(o as any); export const Selector = (key: T) => ZeusSelect(); - -export const Gql = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql') \ No newline at end of file +export const Gql = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql'); diff --git a/examples/typescript-node/src/zeus/modified.ts b/examples/typescript-node/src/zeus/modified.ts deleted file mode 100644 index 2ca42663..00000000 --- a/examples/typescript-node/src/zeus/modified.ts +++ /dev/null @@ -1,261 +0,0 @@ -/* eslint-disable */ - -import { AllTypesProps, ReturnTypes } from './const'; -type DictArrayFunction = [Record, Dict]; -type DictValue = boolean | DictArrayFunction | Dict; -type Dict = { - [x: string]: DictValue; -}; - -export const ScalarResolver = (scalar: string, value: any) => { - switch (scalar) { - case 'String': - return `${JSON.stringify(value)}`; - case 'Int': - return `${value}`; - case 'Float': - return `${value}`; - case 'Boolean': - return `${value}`; - case 'ID': - return `"${value}"`; - case 'enum': - return `${value}`; - case 'scalar': - return `${value}`; - default: - return false; - } -}; - -export const TypesPropsResolver = < - T extends keyof typeof AllTypesProps, - U extends keyof typeof AllTypesProps[T], - L extends keyof typeof AllTypesProps[T][U] ->({ - value, - type, - name, - key, - blockArrays, -}: { - value: any; - type: T; - name: U; - key?: L; - blockArrays?: boolean; -}): string => { - if (value === null) { - return `null`; - } - if (!(type in AllTypesProps)) { - throw new Error(`No type inside type props`); - } - const typeRecord = AllTypesProps[type]; - if (typeRecord === 'enum') { - throw new Error(`AllTypesProps type cannot be a string`); - } - if (!(name in typeRecord)) { - throw new Error(`No type inside type props`); - } - const resolvedValue = key ? typeRecord[name][key] : typeRecord[name]; - if (!resolvedValue) { - throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`); - } - - const typeResolved = resolvedValue.type; - const isArray = resolvedValue.array; - const isArrayRequired = resolvedValue.arrayRequired; - if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { - const isRequired = resolvedValue.required ? '!' : ''; - let t = `${typeResolved}`; - if (isArray) { - if (isRequired) { - t = `${t}!`; - } - t = `[${t}]`; - if (isArrayRequired) { - t = `${t}!`; - } - } else { - if (isRequired) { - t = `${t}!`; - } - } - return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; - } - if (isArray && !blockArrays) { - return `[${value.map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })).join(',')}]`; - } - const reslovedScalar = ScalarResolver(typeResolved, value); - if (!reslovedScalar) { - const resolvedType = AllTypesProps[typeResolved]; - if (typeof resolvedType === 'object') { - const argsKeys = Object.keys(resolvedType); - return `{${argsKeys - .filter((ak) => value[ak] !== undefined) - .map((ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}`)}}`; - } - return ScalarResolver(AllTypesProps[typeResolved], value) as string; - } - return reslovedScalar; -}; - -const isArrayFunction = (parent: string[], a: DictArrayFunction) => { - const [values, r] = a; - const [mainKey, key, ...keys] = parent; - const keyValues = Object.keys(values).filter((k) => typeof values[k] !== 'undefined'); - - if (!keys.length) { - return keyValues.length > 0 - ? `(${keyValues - .map( - (v) => - `${v}:${TypesPropsResolver({ - value: values[v], - type: mainKey, - name: key, - key: v, - })}`, - ) - .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` - : traverseToSeekArrays(parent, r); - } - - const [typeResolverKey] = keys.splice(keys.length - 1, 1); - let valueToResolve = ReturnTypes[mainKey][key]; - for (const k of keys) { - valueToResolve = ReturnTypes[valueToResolve][k]; - } - - const argumentString = - keyValues.length > 0 - ? `(${keyValues - .map( - (v) => - `${v}:${TypesPropsResolver({ - value: values[v], - type: valueToResolve, - name: typeResolverKey, - key: v, - })}`, - ) - .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` - : traverseToSeekArrays(parent, r); - return argumentString; -}; - -const resolveKV = (k: string, v: boolean | string | { [x: string]: boolean | string }) => - typeof v === 'boolean' ? k : typeof v === 'object' ? `${k}{${objectToTree(v)}}` : `${k}${v}`; - -const objectToTree = (o: { [x: string]: boolean | string }): string => - `{${Object.keys(o) - .map((k) => `${resolveKV(k, o[k])}`) - .join(' ')}}`; - -const traverseToSeekArrays = (parent: string[], a?: Dict): string => { - if (!a) return ''; - if (Object.keys(a).length === 0) { - return ''; - } - let b: Record = {}; - if (Array.isArray(a)) { - return isArrayFunction([...parent], a); - } else { - if (typeof a === 'object') { - Object.keys(a) - .filter((k) => typeof a[k] !== 'undefined') - .forEach((k) => { - if (k === '__alias') { - Object.keys(a[k]).forEach((aliasKey) => { - const aliasOperations = a[k][aliasKey]; - const aliasOperationName = Object.keys(aliasOperations)[0]; - const aliasOperation = aliasOperations[aliasOperationName]; - b[`${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}`] = traverseToSeekArrays( - [...parent, aliasOperationName], - aliasOperation, - ); - }); - } else { - b[k] = traverseToSeekArrays([...parent, k], a[k]); - } - }); - } else { - return ''; - } - } - return objectToTree(b); -}; - -const buildQuery = (type: string, a?: Dict) => traverseToSeekArrays([type], a); - -const inspectVariables = (query: string) => { - const regex = /\$\b\w*__ZEUS_VAR__\[?[^!^\]^\s^,^\)^\}]*[!]?[\]]?[!]?/g; - let result; - const AllVariables: string[] = []; - while ((result = regex.exec(query))) { - if (AllVariables.includes(result[0])) { - continue; - } - AllVariables.push(result[0]); - } - if (!AllVariables.length) { - return query; - } - let filteredQuery = query; - AllVariables.forEach((variable) => { - while (filteredQuery.includes(variable)) { - filteredQuery = filteredQuery.replace(variable, variable.split('__ZEUS_VAR__')[0]); - } - }); - return `(${AllVariables.map((a) => a.split('__ZEUS_VAR__')) - .map(([variableName, variableType]) => `${variableName}:${variableType}`) - .join(', ')})${filteredQuery}`; -}; - -export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => ( - o: Dict, -) => `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; - -export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription', tName: string) => ( - o: Dict, - options?: OperationOptions, -) => - fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r: any) => { - seekForAliases(r); - return r; - }); - -export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => ( - t: 'query' | 'mutation' | 'subscription', - tName: string, -) => (o: Dict, options?: OperationOptions) => fn(queryConstruct(t, tName, options?.operationName)(o)); - -const seekForAliases = (response: any) => { - const traverseAlias = (value: any) => { - if (Array.isArray(value)) { - value.forEach(seekForAliases); - } else { - if (typeof value === 'object') { - seekForAliases(value); - } - } - }; - if (typeof response === 'object' && response) { - const keys = Object.keys(response); - if (keys.length < 1) { - return; - } - keys.forEach((k) => { - const value = response[k]; - if (k.indexOf('__alias__') !== -1) { - const [operation, alias] = k.split('__alias__'); - response[alias] = { - [operation]: value, - }; - delete response[k]; - } - traverseAlias(value); - }); - } -}; diff --git a/examples/typescript-node/src/zeus/newIndex.ts b/examples/typescript-node/src/zeus/newIndex.ts new file mode 100644 index 00000000..3bbef334 --- /dev/null +++ b/examples/typescript-node/src/zeus/newIndex.ts @@ -0,0 +1,115 @@ +import { AllTypesProps } from './const'; + +export const ScalarResolver = (scalar: string, value: string) => { + switch (scalar) { + case 'String': + return `${JSON.stringify(value)}`; + case 'Int': + return `${value}`; + case 'Float': + return `${value}`; + case 'Boolean': + return `${value}`; + case 'ID': + return `"${value}"`; + case 'enum': + return `${value}`; + case 'scalar': + return `${value}`; + default: + return false; + } +}; + +export const extractType = (t: string) => { + const chars = t.split(''); +}; +export const TypesPropsResolver = ({ + value, + type, + name, + key, + blockArrays, +}: { + value: any; + type: string; + name: string; + key?: string; + blockArrays?: boolean; +}): string => { + if (value === null) { + return `null`; + } + let resolvedValue: Record | string = AllTypesProps[type][name]; + if (key && typeof resolvedValue === 'object') { + resolvedValue = resolvedValue[key as keyof typeof resolvedValue]; + } + if (!resolvedValue) { + throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`); + } + // resolvedValue moze byc np [SpecialSkills!] + const typeResolved = resolvedValue.type; + const isArray = resolvedValue.array; + const isArrayRequired = resolvedValue.arrayRequired; + if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { + const isRequired = resolvedValue.required ? '!' : ''; + let t = `${typeResolved}`; + if (isArray) { + if (isRequired) { + t = `${t}!`; + } + t = `[${t}]`; + if (isArrayRequired) { + t = `${t}!`; + } + } else { + if (isRequired) { + t = `${t}!`; + } + } + return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; + } + if (isArray && !blockArrays) { + return `[${value.map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })).join(',')}]`; + } + const reslovedScalar = ScalarResolver(typeResolved, value); + if (!reslovedScalar) { + const resolvedType = AllTypesProps[typeResolved]; + if (typeof resolvedType === 'object') { + const argsKeys = Object.keys(resolvedType); + return `{${argsKeys + .filter((ak) => value[ak] !== undefined) + .map((ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}`)}}`; + } + return ScalarResolver(AllTypesProps[typeResolved], value) as string; + } + return reslovedScalar; +}; + +export const getTypeName = (f: FieldType): string => { + if (f.type === Options.name) { + return f.name; + } + return getTypeName(f.nest); +}; + +export const compileType = (f: FieldType, fn: (x: string) => string = (x) => x): string => { + if (f.type === Options.name) { + return fn(f.name); + } else if (f.type === Options.array) { + return compileType(f.nest, (x) => `[${fn(x)}]`); + } else { + return compileType(f.nest, (x) => `${fn(x)}!`); + } +}; + +export type FieldType = + | { type: Options.name; name: string } + | { type: Options.required; nest: FieldType } + | { type: Options.array; nest: FieldType }; + +export enum Options { + array = 'array', + required = 'required', + name = 'name', +} diff --git a/src/TreeToTS/functions/ScalarResolver.ts b/src/TreeToTS/functions/ScalarResolver.ts deleted file mode 100644 index 0b11f71b..00000000 --- a/src/TreeToTS/functions/ScalarResolver.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { StringFunction } from './models'; - -export const ScalarResolverFunction: StringFunction = { - ts: ` -export const ScalarResolver = (scalar: string, value: any) => { - switch (scalar) { - case 'String': - return \`\${JSON.stringify(value)}\`; - case 'Int': - return \`\${value}\`; - case 'Float': - return \`\${value}\`; - case 'Boolean': - return \`\${value}\`; - case 'ID': - return \`"\${value}"\`; - case 'enum': - return \`\${value}\`; - case 'scalar': - return \`\${value}\`; - default: - return false; - } -}; -`, -}; diff --git a/src/TreeToTS/functions/TypesPropsResolver.ts b/src/TreeToTS/functions/TypesPropsResolver.ts deleted file mode 100644 index 51310b8f..00000000 --- a/src/TreeToTS/functions/TypesPropsResolver.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { StringFunction } from './models'; - -export const TypePropsResolverFunction: StringFunction = { - ts: ` -export const TypesPropsResolver = ({ - value, - type, - name, - key, - blockArrays -}: { - value: any; - type: string; - name: string; - key?: string; - blockArrays?: boolean; -}): string => { - if (value === null) { - return \`null\`; - } - let resolvedValue = AllTypesProps[type][name]; - if (key) { - resolvedValue = resolvedValue[key]; - } - if (!resolvedValue) { - throw new Error(\`Cannot resolve \${type} \${name}\${key ? \` \${key}\` : ''}\`) - } - const typeResolved = resolvedValue.type; - const isArray = resolvedValue.array; - const isArrayRequired = resolvedValue.arrayRequired; - if (typeof value === 'string' && value.startsWith(\`ZEUS_VAR$\`)) { - const isRequired = resolvedValue.required ? '!' : ''; - let t = \`\${typeResolved}\`; - if (isArray) { - if (isRequired) { - t = \`\${t}!\`; - } - t = \`[\${t}]\`; - if(isArrayRequired){ - t = \`\${t}!\`; - } - }else{ - if (isRequired) { - t = \`\${t}!\`; - } - } - return \`\\\$\${value.split(\`ZEUS_VAR$\`)[1]}__ZEUS_VAR__\${t}\`; - } - if (isArray && !blockArrays) { - return \`[\${value - .map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })) - .join(',')}]\`; - } - const reslovedScalar = ScalarResolver(typeResolved, value); - if (!reslovedScalar) { - const resolvedType = AllTypesProps[typeResolved]; - if (typeof resolvedType === 'object') { - const argsKeys = Object.keys(resolvedType); - return \`{\${argsKeys - .filter((ak) => value[ak] !== undefined) - .map( - (ak) => \`\${ak}:\${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}\` - )}}\`; - } - return ScalarResolver(AllTypesProps[typeResolved], value) as string; - } - return reslovedScalar; -}; -`, -}; diff --git a/src/TreeToTS/functions/buildQuery.ts b/src/TreeToTS/functions/buildQuery.ts deleted file mode 100644 index 4f0b2d82..00000000 --- a/src/TreeToTS/functions/buildQuery.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { StringFunction } from './models'; - -export const buildQueryFunction: StringFunction = { - ts: ` -const buildQuery = (type: string, a?: Record) => - traverseToSeekArrays([type], a); -`, -}; diff --git a/src/TreeToTS/functions/index.ts b/src/TreeToTS/functions/index.ts index ffbe3b04..f44e3963 100644 --- a/src/TreeToTS/functions/index.ts +++ b/src/TreeToTS/functions/index.ts @@ -1,16 +1,7 @@ -export * from './buildQuery'; -export * from './ScalarResolver'; -export * from './TypesPropsResolver'; export * from './ZeusSelect'; export * from './fullChainConstruct'; export * from './fullSubscriptionConstruct'; export * from './inspectVariables'; -export * from './isArrayFunction'; export * from './models'; -export * from './objectToTree'; -export * from './queryConstruct'; -export * from './resolveKV'; -export * from './seekForAliases'; -export * from './traverseToSeekArrays'; export * from './variable'; export * from './resolverFor'; diff --git a/src/TreeToTS/functions/isArrayFunction.ts b/src/TreeToTS/functions/isArrayFunction.ts deleted file mode 100644 index 7864ffc3..00000000 --- a/src/TreeToTS/functions/isArrayFunction.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { StringFunction } from './models'; - -export const isArrayFunctionFunction: StringFunction = { - ts: ` -const isArrayFunction = ( - parent: string[], - a: any[] -) => { - const [values, r] = a; - const [mainKey, key, ...keys] = parent; - const keyValues = Object.keys(values).filter((k) => typeof values[k] !== 'undefined'); - - if (!keys.length) { - return keyValues.length > 0 - ? \`(\${keyValues - .map( - (v) => - \`\${v}:\${TypesPropsResolver({ - value: values[v], - type: mainKey, - name: key, - key: v - })}\` - ) - .join(',')})\${r ? traverseToSeekArrays(parent, r) : ''}\` - : traverseToSeekArrays(parent, r); - } - - const [typeResolverKey] = keys.splice(keys.length - 1, 1); - let valueToResolve = ReturnTypes[mainKey][key]; - for (const k of keys) { - valueToResolve = ReturnTypes[valueToResolve][k]; - } - - const argumentString = - keyValues.length > 0 - ? \`(\${keyValues - .map( - (v) => - \`\${v}:\${TypesPropsResolver({ - value: values[v], - type: valueToResolve, - name: typeResolverKey, - key: v - })}\` - ) - .join(',')})\${r ? traverseToSeekArrays(parent, r) : ''}\` - : traverseToSeekArrays(parent, r); - return argumentString; -}; -`, -}; diff --git a/src/TreeToTS/functions/new/buildQuery.spec.ts b/src/TreeToTS/functions/new/buildQuery.spec.ts new file mode 100644 index 00000000..146c77fa --- /dev/null +++ b/src/TreeToTS/functions/new/buildQuery.spec.ts @@ -0,0 +1,169 @@ +import { InternalsBuildQuery } from '@/TreeToTS/functions/new/buildQuery'; +import { AllTypesProps, Ops, ReturnTypes } from '@/TreeToTS/functions/new/mocks'; +import { replSpace } from '@/__tests__/TestUtils'; + +const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops); + +describe('Test generated function buildQuery', () => { + test('Simple query', () => { + const matchExact = replSpace( + builder('query', { + cards: { + name: true, + age: true, + bio: true, + }, + }), + ); + matchExact(`query{ + cards{ + name + age + bio + } + }`); + }); + test('Query with arguments', () => { + const matchExact = replSpace( + builder('query', { + cardById: [ + { + id: 'a1', + name: 'blabla', + age: 123, + me: true, + }, + { + name: true, + age: true, + bio: true, + }, + ], + }), + ); + matchExact(`query{ + cardById(id: "a1", name: "blabla", age: 123, me: true){ + name + age + bio + } + }`); + }); + test('Mutation with arguments', () => { + const enum Status { + CREATED = 'CREATED', + DELETED = 'DELETED', + } + const matchExact = replSpace( + builder('mutation', { + createCard: [ + { + card: { + name: 'Hello', + status: Status.CREATED, + }, + }, + { + name: true, + }, + ], + }), + ); + matchExact(`mutation{ + createCard(card:{ + name: "Hello", + status: CREATED + }){ + name + } + }`); + }); + test('Simple query with alias', () => { + const matchExact = replSpace( + builder('query', { + __alias: { + play: { + cards: { + name: true, + age: true, + bio: true, + }, + }, + }, + }), + ); + matchExact(`query{ + play:cards{ + name + age + bio + } + }`); + }); + test('Simple query with enums', () => { + const enum Status { + CREATED = 'CREATED', + DELETED = 'DELETED', + } + const matchExact = replSpace( + builder('query', { + cardByStatus: [ + { + status: Status.CREATED, + }, + { + name: true, + age: true, + bio: true, + attack: [{ by: Status.CREATED }, { name: true }], + }, + ], + }), + ); + matchExact(`query{ + cardByStatus(status:CREATED){ + name + age + bio + attack(by: CREATED){ + name + } + } + }`); + }); + test('Simple query with alias and enum', () => { + const enum Status { + CREATED = 'CREATED', + DELETED = 'DELETED', + } + const matchExact = replSpace( + builder('query', { + __alias: { + play: { + cardByStatus: [ + { + status: Status.CREATED, + }, + { + name: true, + age: true, + bio: true, + attack: [{ by: Status.CREATED }, { name: true }], + }, + ], + }, + }, + }), + ); + matchExact(`query{ + play:cardByStatus(status:CREATED){ + name + age + bio + attack(by: CREATED){ + name + } + } + }`); + }); +}); diff --git a/src/TreeToTS/functions/new/buildQuery.ts b/src/TreeToTS/functions/new/buildQuery.ts new file mode 100644 index 00000000..32e39aae --- /dev/null +++ b/src/TreeToTS/functions/new/buildQuery.ts @@ -0,0 +1,30 @@ +import { AllTypesPropsType, ReturnTypesType, InputValueType, VType, Operations } from '@/TreeToTS/functions/new/models'; +import { purifyGraphQLKey } from '@/TreeToTS/functions/new/purifyGraphQLKey'; +import { InternalArgsBuilt } from '@/TreeToTS/functions/new/resolvePath'; + +export const InternalsBuildQuery = (props: AllTypesPropsType, returns: ReturnTypesType, ops: Operations) => { + const ibb = (k: string, o: InputValueType | VType, p = ''): string => { + const keyForPath = purifyGraphQLKey(k); + const newPath = [p, keyForPath].join('.'); + if (typeof o === 'boolean') { + return k; + } + if (Array.isArray(o)) { + return `${ibb(`${k}(${InternalArgsBuilt(props, returns, ops)(o[0], newPath)})`, o[1], p)}`; + } + if (k === '__alias') { + const alias = Object.keys(o)[0]; + const objectUnderAlias = o[alias]; + if (typeof objectUnderAlias !== 'object' || Array.isArray(objectUnderAlias)) { + throw new Error('Invalid alias it should be __alias:{ YOUR_ALIAS_NAME: { OPERATION_NAME: { ...selectors }}}'); + } + const operationName = Object.keys(objectUnderAlias)[0]; + const operation = objectUnderAlias[operationName]; + return ibb(`${alias}:${operationName}`, operation, p); + } + return `${k}{${Object.entries(o) + .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join('.'))) + .join('\n')}}`; + }; + return ibb; +}; diff --git a/src/TreeToTS/functions/new/mocks.ts b/src/TreeToTS/functions/new/mocks.ts new file mode 100644 index 00000000..052d2117 --- /dev/null +++ b/src/TreeToTS/functions/new/mocks.ts @@ -0,0 +1,40 @@ +export const AllTypesProps = { + Query: { + cardByStatus: { + status: 'Status', + }, + cards: { + attack: 'TypeOfAttack', + }, + }, + Mutation: { + createCard: { + card: 'CreateCard', + }, + }, + Card: { + attack: { + by: 'Status', + }, + }, + CreateCard: { + status: 'Status', + }, + Status: true, + TypeOfAttack: true, +}; + +export const ReturnTypes = { + Query: { + cardByStatus: 'Card', + cards: 'Card', + }, + Card: { + attack: 'Card', + }, +}; + +export const Ops = { + query: 'Query', + mutation: 'Mutation', +}; diff --git a/src/TreeToTS/functions/new/models.ts b/src/TreeToTS/functions/new/models.ts new file mode 100644 index 00000000..6049dbba --- /dev/null +++ b/src/TreeToTS/functions/new/models.ts @@ -0,0 +1,35 @@ +export type AllTypesPropsType = { + [x: string]: + | undefined + | boolean + | { + [x: string]: + | undefined + | string + | { + [x: string]: string | undefined; + }; + }; +}; + +export type ReturnTypesType = { + [x: string]: + | { + [x: string]: string | undefined; + } + | undefined; +}; +export type InputValueType = { + [x: string]: boolean | [any, boolean | InputValueType] | InputValueType; +}; +export type VType = boolean | [any, boolean | InputValueType] | InputValueType; + +export type PlainType = boolean | number | string | null | undefined; +export type ZeusArgsType = + | PlainType + | Array + | { + [x: string]: ZeusArgsType; + }; + +export type Operations = Record; diff --git a/src/TreeToTS/functions/new/purifyGraphQLKey.ts b/src/TreeToTS/functions/new/purifyGraphQLKey.ts new file mode 100644 index 00000000..35446766 --- /dev/null +++ b/src/TreeToTS/functions/new/purifyGraphQLKey.ts @@ -0,0 +1 @@ +export const purifyGraphQLKey = (k: string) => k.replace(/\([^)]*\)/g, '').replace(/^[^:]*\:/g, ''); diff --git a/src/TreeToTS/functions/new/resolvePath.spec.ts b/src/TreeToTS/functions/new/resolvePath.spec.ts new file mode 100644 index 00000000..85b2d335 --- /dev/null +++ b/src/TreeToTS/functions/new/resolvePath.spec.ts @@ -0,0 +1,31 @@ +import { AllTypesProps, Ops, ReturnTypes } from '@/TreeToTS/functions/new/mocks'; +import { ResolveFromPath } from '@/TreeToTS/functions/new/resolvePath'; + +const resolver = ResolveFromPath(AllTypesProps, ReturnTypes, Ops); + +describe(`Resolves correct type from pregenerated AllTypesProps and ReturnTypes`, () => { + test('It correctly resolves path for field argument', () => { + const r = resolver('.field<>Query.field<>cardByStatus.status'); + expect(r).toEqual('enum'); + }); + test('It correctly resolves path for input field', () => { + const r = resolver('.field<>Mutation.field<>createCard.card.status'); + expect(r).toEqual('enum'); + }); + test('It correctly resolves path for input field which is not enum', () => { + const r = resolver('.field<>Mutation.field<>createCard.card.name'); + expect(r).toEqual('not'); + }); + test('It correctly resolves path for TypeOfAttack enum', () => { + const r = resolver('.field<>Query.field<>cards.attack'); + expect(r).toEqual('enum'); + }); + test('It correctly resolves path for type field argument', () => { + const r = resolver('.field<>Query.field<>cards.field<>attack.by'); + expect(r).toEqual('enum'); + }); + test('It correctly resolves path for nested type field argument', () => { + const r = resolver('.field<>Query.field<>cards.field<>attack.field<>attack.by'); + expect(r).toEqual('enum'); + }); +}); diff --git a/src/TreeToTS/functions/new/resolvePath.ts b/src/TreeToTS/functions/new/resolvePath.ts new file mode 100644 index 00000000..a1e05559 --- /dev/null +++ b/src/TreeToTS/functions/new/resolvePath.ts @@ -0,0 +1,107 @@ +import { AllTypesPropsType, Operations, ReturnTypesType, ZeusArgsType } from '@/TreeToTS/functions/new/models'; + +const mapPart = (p: string) => { + const [isArg, isField] = p.split('<>'); + if (isField) { + return { + v: isField, + __type: 'field', + } as const; + } + return { + v: isArg, + __type: 'arg', + } as const; +}; + +type Part = ReturnType; + +export const ResolveFromPath = (props: AllTypesPropsType, returns: ReturnTypesType, ops: Operations) => { + const ResolvePropsType = (mappedParts: Part[]) => { + const oKey = ops[mappedParts[0].v]; + const propsP1 = oKey ? props[oKey] : props[mappedParts[0].v]; + if (typeof propsP1 === 'boolean' && mappedParts.length === 1) { + return 'enum'; + } + if (typeof propsP1 === 'object') { + const propsP2 = propsP1[mappedParts[1].v]; + if (typeof propsP2 === 'string') { + return rpp( + `${propsP2}.${mappedParts + .slice(2) + .map((mp) => mp.v) + .join('.')}`, + ); + } + if (typeof propsP2 === 'object') { + const propsP3 = propsP2[mappedParts[2].v]; + if (propsP3 && mappedParts[2].__type === 'arg') { + return rpp( + `${propsP3}.${mappedParts + .slice(3) + .map((mp) => mp.v) + .join('.')}`, + ); + } + } + } + }; + const ResolveReturnType = (mappedParts: Part[]) => { + const oKey = ops[mappedParts[0].v]; + const returnP1 = oKey ? returns[oKey] : returns[mappedParts[0].v]; + if (typeof returnP1 === 'object') { + const returnP2 = returnP1[mappedParts[1].v]; + if (returnP2) { + return rpp( + `${returnP2}.${mappedParts + .slice(2) + .map((mp) => mp.v) + .join('.')}`, + ); + } + } + }; + const rpp = (path: string): 'enum' | 'not' => { + const parts = path.split('.').filter((l) => l.length > 0); + const mappedParts = parts.map(mapPart); + const propsP1 = ResolvePropsType(mappedParts); + if (propsP1) { + return propsP1; + } + const returnP1 = ResolveReturnType(mappedParts); + if (returnP1) { + return returnP1; + } + return 'not'; + }; + return rpp; +}; + +export const InternalArgsBuilt = (props: AllTypesPropsType, returns: ReturnTypesType, ops: Operations) => { + const arb = (a: ZeusArgsType, p = '', root = true): string => { + if (Array.isArray(a)) { + return `[${a.map((arr) => arb(arr, p)).join(', ')}]`; + } + if (typeof a === 'string') { + const checkType = ResolveFromPath(props, returns, ops)(p); + if (checkType === 'enum') { + return `${a}`; + } + return `"${a}"`; + } + if (typeof a === 'object') { + if (a === null) { + return `null`; + } + const returnedObjectString = Object.entries(a) + .map(([k, v]) => `${k}: ${arb(v, [p, k].join('.'), false)}`) + .join(',\n'); + if (!root) { + return `{${returnedObjectString}}`; + } + return returnedObjectString; + } + return `${a}`; + }; + return arb; +}; diff --git a/src/TreeToTS/functions/objectToTree.ts b/src/TreeToTS/functions/objectToTree.ts deleted file mode 100644 index 7a9cb89a..00000000 --- a/src/TreeToTS/functions/objectToTree.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { StringFunction } from './models'; - -export const objectToTreeFunction: StringFunction = { - ts: ` -const objectToTree = (o: { [x: string]: boolean | string }): string => - \`{\${Object.keys(o).map((k) => \`\${resolveKV(k, o[k])}\`).join(' ')}}\`; -`, -}; diff --git a/src/TreeToTS/functions/queryConstruct.ts b/src/TreeToTS/functions/queryConstruct.ts deleted file mode 100644 index 1e9d17ba..00000000 --- a/src/TreeToTS/functions/queryConstruct.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { StringFunction } from './models'; - -export const queryConstructFunction: StringFunction = { - ts: ` -export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => (o: Record) => - \`\${t.toLowerCase()}\${operationName ? ' ' + operationName : ''}\${inspectVariables(buildQuery(tName, o))}\`; -`, -}; diff --git a/src/TreeToTS/functions/resolveKV.ts b/src/TreeToTS/functions/resolveKV.ts deleted file mode 100644 index 1911ea92..00000000 --- a/src/TreeToTS/functions/resolveKV.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { StringFunction } from './models'; - -export const resolveKVFunction: StringFunction = { - ts: ` -const resolveKV = (k: string, v: boolean | string | { [x: string]: boolean | string }) => - typeof v === 'boolean' ? k : typeof v === 'object' ? \`\${k}{\${objectToTree(v)}}\` : \`\${k}\${v}\`; -`, -}; diff --git a/src/TreeToTS/functions/seekForAliases.ts b/src/TreeToTS/functions/seekForAliases.ts deleted file mode 100644 index e69bb7a8..00000000 --- a/src/TreeToTS/functions/seekForAliases.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { StringFunction } from './models'; - -export const seekForAliasesFunction: StringFunction = { - ts: ` -const seekForAliases = (response: any) => { - const traverseAlias = (value: any) => { - if (Array.isArray(value)) { - value.forEach(seekForAliases); - } else { - if (typeof value === 'object') { - seekForAliases(value); - } - } - }; - if (typeof response === 'object' && response) { - const keys = Object.keys(response); - if (keys.length < 1) { - return; - } - keys.forEach((k) => { - const value = response[k]; - if (k.indexOf('__alias__') !== -1) { - const [operation, alias] = k.split('__alias__'); - response[alias] = { - [operation]: value, - }; - delete response[k]; - } - traverseAlias(value); - }); - } -}; -`, -}; diff --git a/src/TreeToTS/functions/traverseToSeekArrays.ts b/src/TreeToTS/functions/traverseToSeekArrays.ts deleted file mode 100644 index 46854937..00000000 --- a/src/TreeToTS/functions/traverseToSeekArrays.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { StringFunction } from './models'; - -export const traverseToSeekArraysFunction: StringFunction = { - ts: ` -const traverseToSeekArrays = (parent: string[], a?: any): string => { - if (!a) return ''; - if (Object.keys(a).length === 0) { - return ''; - } - let b: Record = {}; - if (Array.isArray(a)) { - return isArrayFunction([...parent], a); - } else { - if (typeof a === 'object') { - Object.keys(a) - .filter((k) => typeof a[k] !== 'undefined') - .forEach((k) => { - if (k === '__alias') { - Object.keys(a[k]).forEach((aliasKey) => { - const aliasOperations = a[k][aliasKey]; - const aliasOperationName = Object.keys(aliasOperations)[0]; - const aliasOperation = aliasOperations[aliasOperationName]; - b[ - \`\${aliasOperationName}__alias__\${aliasKey}: \${aliasOperationName}\` - ] = traverseToSeekArrays([...parent, aliasOperationName], aliasOperation); - }); - } else { - b[k] = traverseToSeekArrays([...parent, k], a[k]); - } - }); - } else { - return ''; - } - } - return objectToTree(b); -}; -`, -}; diff --git a/src/TreeToTS/templates/typescript/functions.ts b/src/TreeToTS/templates/typescript/functions.ts index b3050f86..37083bfa 100644 --- a/src/TreeToTS/templates/typescript/functions.ts +++ b/src/TreeToTS/templates/typescript/functions.ts @@ -1,16 +1,7 @@ import { Environment } from '@/Models'; import { ZeusSelectFunction, - TypePropsResolverFunction, - traverseToSeekArraysFunction, - seekForAliasesFunction, - ScalarResolverFunction, - resolveKVFunction, - queryConstructFunction, - objectToTreeFunction, - isArrayFunctionFunction, inspectVariablesFunction, - buildQueryFunction, fullChainConstructFunction, VariableFunction, resolverForFunction, @@ -19,18 +10,9 @@ import { export const typescriptFunctions = (env: Environment): string => ` ${ZeusSelectFunction.ts} -${ScalarResolverFunction.ts} -${TypePropsResolverFunction.ts} -${isArrayFunctionFunction.ts} -${resolveKVFunction.ts} -${objectToTreeFunction.ts} -${traverseToSeekArraysFunction.ts} -${buildQueryFunction.ts} ${inspectVariablesFunction.ts} -${queryConstructFunction.ts} ${fullChainConstructFunction.ts} ${fullSubscriptionConstruct.ts} -${seekForAliasesFunction.ts} ${VariableFunction.ts} ${resolverForFunction.ts} ${require(`./${env}/fetchFunction`).default} From 8208d3cbdf8aa60ee9d2a837923caacf10789b67 Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 30 Mar 2022 17:20:36 +0200 Subject: [PATCH 06/74] :construction: WIP producer script --- package.json | 3 +- src/CLI/libBuilder.ts | 24 +++++++++++++++ src/TreeToTS/functions/index.ts | 2 -- src/TreeToTS/functions/inspectVariables.ts | 29 ------------------- src/TreeToTS/functions/new/variablizer.ts | 3 ++ src/TreeToTS/functions/variable.ts | 7 ----- .../templates/typescript/functions.ts | 4 --- 7 files changed, 29 insertions(+), 43 deletions(-) create mode 100644 src/CLI/libBuilder.ts delete mode 100644 src/TreeToTS/functions/inspectVariables.ts create mode 100644 src/TreeToTS/functions/new/variablizer.ts delete mode 100644 src/TreeToTS/functions/variable.ts diff --git a/package.json b/package.json index 164cac15..8f16319f 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "generate-typescript-node-big": "node ./lib/CLI/index.js examples/typescript-node-big-schema/x.gql examples/typescript-node-big-schema/src --ts --n --apollo --reactQuery --stuccoSubscriptions", "run-example-typescript-node": "./run-example.sh examples/typescript-node", "lint": "ttsc && eslint \"./src/**/*.{ts,js}\" --quiet --fix", - "doc:ci": "cd doc && npm i && npm run build" + "doc:ci": "cd doc && npm i && npm run build", + "produce-lib": "ts-node src/CLI/libBuilder.ts" }, "repository": { "type": "git", diff --git a/src/CLI/libBuilder.ts b/src/CLI/libBuilder.ts new file mode 100644 index 00000000..e08b7b21 --- /dev/null +++ b/src/CLI/libBuilder.ts @@ -0,0 +1,24 @@ +#!/bin/node +import * as fs from 'fs'; +import path = require('path'); + +const bundleFunctions = () => { + const baseDirFunctions = path.join(process.cwd(), 'src/TreeToTS/functions'); + const baseDir = path.join(baseDirFunctions, 'new'); + const directories = fs.readdirSync(baseDir); + const allFunctions = directories + .filter((d) => d !== 'mocks.ts') + .filter((d) => !d.endsWith('spec.ts')) + .map((d) => path.join(baseDir, d)) + .map((d) => { + const content = fs.readFileSync(d); + return content + .toString('utf-8') + .replace(/import.*$/gm, '') + .replace(/export\s/gm, ''); + }); + const content = allFunctions.join('\n\n'); + fs.writeFileSync(path.join(baseDirFunctions, 'generated.ts'), content); +}; + +bundleFunctions(); diff --git a/src/TreeToTS/functions/index.ts b/src/TreeToTS/functions/index.ts index f44e3963..693fc15f 100644 --- a/src/TreeToTS/functions/index.ts +++ b/src/TreeToTS/functions/index.ts @@ -1,7 +1,5 @@ export * from './ZeusSelect'; export * from './fullChainConstruct'; export * from './fullSubscriptionConstruct'; -export * from './inspectVariables'; export * from './models'; -export * from './variable'; export * from './resolverFor'; diff --git a/src/TreeToTS/functions/inspectVariables.ts b/src/TreeToTS/functions/inspectVariables.ts deleted file mode 100644 index 8606e3cf..00000000 --- a/src/TreeToTS/functions/inspectVariables.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { StringFunction } from './models'; - -export const inspectVariablesFunction: StringFunction = { - ts: ` -const inspectVariables = (query: string) => { - const regex = /\\\$\\b\\w*__ZEUS_VAR__\\[?[^!^\\]^\\s^,^\\)^\\}]*[!]?[\\]]?[!]?/g; - let result; - const AllVariables: string[] = []; - while ((result = regex.exec(query))) { - if (AllVariables.includes(result[0])) { - continue; - } - AllVariables.push(result[0]); - } - if (!AllVariables.length) { - return query; - } - let filteredQuery = query; - AllVariables.forEach((variable) => { - while (filteredQuery.includes(variable)) { - filteredQuery = filteredQuery.replace(variable, variable.split('__ZEUS_VAR__')[0]); - } - }); - return \`(\${AllVariables.map((a) => a.split('__ZEUS_VAR__')) - .map(([variableName, variableType]) => \`\${variableName}:\${variableType}\`) - .join(', ')})\${filteredQuery}\`; -}; -`, -}; diff --git a/src/TreeToTS/functions/new/variablizer.ts b/src/TreeToTS/functions/new/variablizer.ts new file mode 100644 index 00000000..d8c4c147 --- /dev/null +++ b/src/TreeToTS/functions/new/variablizer.ts @@ -0,0 +1,3 @@ +export const variablizer = (variablesDict: T) => (variable: Z) => { + return `$${variable}}` as any; +}; diff --git a/src/TreeToTS/functions/variable.ts b/src/TreeToTS/functions/variable.ts deleted file mode 100644 index 9f890667..00000000 --- a/src/TreeToTS/functions/variable.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { StringFunction } from './models'; - -export const VariableFunction: StringFunction = { - ts: ` -export const \$ = (t: TemplateStringsArray): any => \`ZEUS_VAR\$\${t.join('')}\`; -`, -}; diff --git a/src/TreeToTS/templates/typescript/functions.ts b/src/TreeToTS/templates/typescript/functions.ts index 37083bfa..435ce0e5 100644 --- a/src/TreeToTS/templates/typescript/functions.ts +++ b/src/TreeToTS/templates/typescript/functions.ts @@ -1,19 +1,15 @@ import { Environment } from '@/Models'; import { ZeusSelectFunction, - inspectVariablesFunction, fullChainConstructFunction, - VariableFunction, resolverForFunction, fullSubscriptionConstruct, } from '@/TreeToTS/functions'; export const typescriptFunctions = (env: Environment): string => ` ${ZeusSelectFunction.ts} -${inspectVariablesFunction.ts} ${fullChainConstructFunction.ts} ${fullSubscriptionConstruct.ts} -${VariableFunction.ts} ${resolverForFunction.ts} ${require(`./${env}/fetchFunction`).default} ${require(`./${env}/apiSubscription`).default} From 0d0acf11516d8e06e057c03abb79ecbd41c79cff Mon Sep 17 00:00:00 2001 From: aexol Date: Mon, 11 Apr 2022 15:58:47 +0200 Subject: [PATCH 07/74] :construction: work in progress almost done on 5 --- doc/src/markdown/graphql/variables.md | 32 +- .../typescript-node-big-schema/package.json | 20 - .../typescript-node-big-schema/src/index.ts | 20 - .../src/zeus/apollo.ts | 35 - .../src/zeus/const.ts | 13790 ------------ .../src/zeus/index.ts | 17459 ---------------- .../src/zeus/reactQuery.ts | 27 - .../src/zeus/stuccoSubscriptions.ts | 41 - .../typescript-node-big-schema/tsconfig.json | 20 - examples/typescript-node-big-schema/x.gql | 14011 ------------- examples/typescript-node/src/index.ts | 27 +- examples/typescript-node/src/zeus/apollo.ts | 18 +- examples/typescript-node/src/zeus/const.ts | 105 +- examples/typescript-node/src/zeus/index.ts | 1312 +- examples/typescript-node/src/zeus/newIndex.ts | 115 - .../src/zeus/stuccoSubscriptions.ts | 2 +- examples/typescript-node/zeus.graphql | 140 +- package.json | 3 +- src/CLI/libBuilder.ts | 18 +- src/TreeToTS/functions/ZeusSelect.ts | 5 - src/TreeToTS/functions/fullChainConstruct.ts | 13 - .../functions/fullSubscriptionConstruct.ts | 11 - src/TreeToTS/functions/generated.ts | 423 + src/TreeToTS/functions/index.ts | 5 - src/TreeToTS/functions/models.ts | 3 - src/TreeToTS/functions/new/buildQuery.spec.ts | 119 + src/TreeToTS/functions/new/buildQuery.ts | 40 +- src/TreeToTS/functions/new/clientFunctions.ts | 54 + .../functions/new/fullChainConstruct.ts | 11 + .../new/fullSubscriptionConstruct.ts | 11 + src/TreeToTS/functions/new/mocks.ts | 280 +- src/TreeToTS/functions/new/models.ts | 46 +- .../functions/new/resolvePath.spec.ts | 12 +- src/TreeToTS/functions/new/resolvePath.ts | 39 +- src/TreeToTS/functions/new/resolverFor.ts | 10 + src/TreeToTS/functions/new/selectFunction.ts | 2 + .../typescript => functions/new}/types.ts | 54 +- .../functions/new/useZeusVariables.spec.ts | 14 + .../functions/new/useZeusVariables.ts | 22 + .../functions/new/variableParameter.sts | 10 + src/TreeToTS/functions/new/variablizer.ts | 3 - src/TreeToTS/functions/resolverFor.ts | 19 - src/TreeToTS/index.ts | 30 +- src/TreeToTS/templates/returnedPropTypes.ts | 17 +- .../typescript/browser/apiSubscription.ts | 3 - src/TreeToTS/templates/typescript/error.ts | 11 - .../templates/typescript/functions.ts | 12 +- src/TreeToTS/templates/typescript/index.ts | 3 - .../typescript/node/apiSubscription.ts | 3 - .../templates/typescript/operations.ts | 84 - src/__tests__/TreeToTS/Chain.spec.ts | 18 - src/__tests__/TreeToTS/EsModule.spec.ts | 23 - src/__tests__/TreeToTS/Extend.spec.ts | 17 - src/__tests__/TreeToTS/Field.spec.ts | 104 - src/__tests__/TreeToTS/Interface.spec.ts | 73 - src/__tests__/TreeToTS/Selectors.spec.ts | 18 - src/__tests__/TreeToTS/Thunder.spec.ts | 25 - .../TreeToTS/TypeDefinitions.spec.ts | 55 - src/plugins/apollo/index.spec.ts | 36 - src/plugins/apollo/index.ts | 6 +- src/plugins/react-query/index.spec.ts | 35 - src/plugins/stuccoSubscriptions/index.spec.ts | 26 - src/plugins/stuccoSubscriptions/index.ts | 2 +- 63 files changed, 1925 insertions(+), 47077 deletions(-) delete mode 100644 examples/typescript-node-big-schema/package.json delete mode 100644 examples/typescript-node-big-schema/src/index.ts delete mode 100644 examples/typescript-node-big-schema/src/zeus/apollo.ts delete mode 100644 examples/typescript-node-big-schema/src/zeus/const.ts delete mode 100644 examples/typescript-node-big-schema/src/zeus/index.ts delete mode 100644 examples/typescript-node-big-schema/src/zeus/reactQuery.ts delete mode 100644 examples/typescript-node-big-schema/src/zeus/stuccoSubscriptions.ts delete mode 100644 examples/typescript-node-big-schema/tsconfig.json delete mode 100644 examples/typescript-node-big-schema/x.gql delete mode 100644 examples/typescript-node/src/zeus/newIndex.ts delete mode 100644 src/TreeToTS/functions/ZeusSelect.ts delete mode 100644 src/TreeToTS/functions/fullChainConstruct.ts delete mode 100644 src/TreeToTS/functions/fullSubscriptionConstruct.ts create mode 100644 src/TreeToTS/functions/generated.ts delete mode 100644 src/TreeToTS/functions/index.ts delete mode 100644 src/TreeToTS/functions/models.ts create mode 100644 src/TreeToTS/functions/new/clientFunctions.ts create mode 100644 src/TreeToTS/functions/new/fullChainConstruct.ts create mode 100644 src/TreeToTS/functions/new/fullSubscriptionConstruct.ts create mode 100644 src/TreeToTS/functions/new/resolverFor.ts create mode 100644 src/TreeToTS/functions/new/selectFunction.ts rename src/TreeToTS/{templates/typescript => functions/new}/types.ts (54%) create mode 100644 src/TreeToTS/functions/new/useZeusVariables.spec.ts create mode 100644 src/TreeToTS/functions/new/useZeusVariables.ts create mode 100644 src/TreeToTS/functions/new/variableParameter.sts delete mode 100644 src/TreeToTS/functions/new/variablizer.ts delete mode 100644 src/TreeToTS/functions/resolverFor.ts delete mode 100644 src/TreeToTS/templates/typescript/error.ts delete mode 100644 src/TreeToTS/templates/typescript/operations.ts delete mode 100644 src/__tests__/TreeToTS/Chain.spec.ts delete mode 100644 src/__tests__/TreeToTS/EsModule.spec.ts delete mode 100644 src/__tests__/TreeToTS/Extend.spec.ts delete mode 100644 src/__tests__/TreeToTS/Field.spec.ts delete mode 100644 src/__tests__/TreeToTS/Interface.spec.ts delete mode 100644 src/__tests__/TreeToTS/Selectors.spec.ts delete mode 100644 src/__tests__/TreeToTS/Thunder.spec.ts delete mode 100644 src/__tests__/TreeToTS/TypeDefinitions.spec.ts delete mode 100644 src/plugins/apollo/index.spec.ts delete mode 100644 src/plugins/react-query/index.spec.ts delete mode 100644 src/plugins/stuccoSubscriptions/index.spec.ts diff --git a/doc/src/markdown/graphql/variables.md b/doc/src/markdown/graphql/variables.md index 4cb329f5..1af537f4 100644 --- a/doc/src/markdown/graphql/variables.md +++ b/doc/src/markdown/graphql/variables.md @@ -10,13 +10,23 @@ category: GraphQL It's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks. ```ts -import { Gql, $ } from './zeus'; +import { Gql, variablizer } from './zeus'; +const variables = { + card: { + Attack: 2, + Defense: 3, + description: 'Lord of the mountains', + name: 'Golrog', + }, +}; + +const $ = variablizer(variables); const addCardResult = await Gql('mutation')( { addCard: [ { - card: $`card`, + card: $('card'), }, { id: true, @@ -35,14 +45,7 @@ const addCardResult = await Gql('mutation')( ], }, { - variables: { - card: { - Attack: 2, - Defense: 3, - description: 'Lord of the mountains', - name: 'Golrog', - }, - }, + variables, }, ); ``` @@ -53,13 +56,6 @@ Note: The mutation function created by the Zeus versions of React Hooks like the const [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation }); await addCard({ - variables: { - card: { - Attack: 2, - Defense: 3, - description: 'Lord of the mountains', - name: 'Golrog', - }, - }, + variables, }); ``` diff --git a/examples/typescript-node-big-schema/package.json b/examples/typescript-node-big-schema/package.json deleted file mode 100644 index ecd32670..00000000 --- a/examples/typescript-node-big-schema/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "typescript-node", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "start": "ts-node src/index.ts" - }, - "author": "Aexol (http://aexol.com)", - "license": "ISC", - "devDependencies": { - "ts-node": "^8.3.0", - "typescript": "^4.5.5" - }, - "dependencies": { - "@apollo/client": "^3.4.16", - "node-fetch": "^2.6.0", - "react-query": "^3.27.0" - } -} diff --git a/examples/typescript-node-big-schema/src/index.ts b/examples/typescript-node-big-schema/src/index.ts deleted file mode 100644 index d04e7ac1..00000000 --- a/examples/typescript-node-big-schema/src/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Chain, Selector } from './zeus'; - -const run = async () => { - const s = Selector('query_root')({ - __typename: true, - aggregateBookings: [ - { limit: 5 }, - { __typename: true, nodes: { bookedAt: true, bookerName: true, checkOut: true } }, - ], - }); - const result = await Chain('http://example.com')('query')({ - __typename: true, - aggregateBookings: [ - { limit: 5 }, - { __typename: true, nodes: { bookedAt: true, bookerName: true, checkOut: true } }, - ], - }); - const resultSelector = await Chain('http://example.com')('query')(s); -}; -run(); diff --git a/examples/typescript-node-big-schema/src/zeus/apollo.ts b/examples/typescript-node-big-schema/src/zeus/apollo.ts deleted file mode 100644 index 576604eb..00000000 --- a/examples/typescript-node-big-schema/src/zeus/apollo.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* eslint-disable */ - -import { Zeus, GraphQLTypes, InputType, ValueTypes } from './index'; -import { gql, useMutation, useQuery, useLazyQuery, useSubscription } from '@apollo/client'; -import type { MutationHookOptions, QueryHookOptions, LazyQueryHookOptions, SubscriptionHookOptions } from '@apollo/client'; - - -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationName?: string, -) { - return useMutation>(gql(Zeus("mutation",mutation, operationName)), options); -} -export function useTypedQuery( - query: Z | ValueTypes[O], - options?: QueryHookOptions>, - operationName?: string, -) { - return useQuery>(gql(Zeus("query",query, operationName)), options); -} -export function useTypedLazyQuery( - LazyQuery: Z | ValueTypes[O], - options?: LazyQueryHookOptions>, - operationName?: string, -) { - return useLazyQuery>(gql(Zeus("query",LazyQuery, operationName)), options); -} -export function useTypedSubscription( - subscription: Z | ValueTypes[O], - options?: SubscriptionHookOptions>, - operationName?: string, -) { - return useSubscription>(gql(Zeus("subscription",subscription, operationName)), options); -} diff --git a/examples/typescript-node-big-schema/src/zeus/const.ts b/examples/typescript-node-big-schema/src/zeus/const.ts deleted file mode 100644 index ad2d5510..00000000 --- a/examples/typescript-node-big-schema/src/zeus/const.ts +++ /dev/null @@ -1,13790 +0,0 @@ -/* eslint-disable */ - -export const AllTypesProps: Record = { - _text: "String", - _text_comparison_exp:{ - _eq:{ - type:"_text" - }, - _gt:{ - type:"_text" - }, - _gte:{ - type:"_text" - }, - _in:{ - type:"[_text]!" - }, - _is_null:{ - type:"Boolean" - }, - _lt:{ - type:"_text" - }, - _lte:{ - type:"_text" - }, - _neq:{ - type:"_text" - }, - _nin:{ - type:"[_text]!" - } - }, - booking:{ - lines:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - lines_aggregate:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - metadata:{ - path:{ - type:"String" - } - }, - relatedBookings:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - relatedBookings_aggregate:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - tags:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - tags_aggregate:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - } - }, - booking_aggregate_fields:{ - count:{ - columns:{ - type:"[booking_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - booking_aggregate_order_by:{ - avg:{ - type:"booking_avg_order_by" - }, - count:{ - type:"order_by" - }, - max:{ - type:"booking_max_order_by" - }, - min:{ - type:"booking_min_order_by" - }, - stddev:{ - type:"booking_stddev_order_by" - }, - stddev_pop:{ - type:"booking_stddev_pop_order_by" - }, - stddev_samp:{ - type:"booking_stddev_samp_order_by" - }, - sum:{ - type:"booking_sum_order_by" - }, - var_pop:{ - type:"booking_var_pop_order_by" - }, - var_samp:{ - type:"booking_var_samp_order_by" - }, - variance:{ - type:"booking_variance_order_by" - } - }, - booking_append_input:{ - metadata:{ - type:"jsonb" - } - }, - booking_arr_rel_insert_input:{ - data:{ - type:"[booking_insert_input!]!" - }, - on_conflict:{ - type:"booking_on_conflict" - } - }, - booking_avg_order_by:{ - guests:{ - type:"order_by" - }, - nights:{ - type:"order_by" - } - }, - booking_bool_exp:{ - _and:{ - type:"[booking_bool_exp]!" - }, - _not:{ - type:"booking_bool_exp" - }, - _or:{ - type:"[booking_bool_exp]!" - }, - bookedAt:{ - type:"timestamptz_comparison_exp" - }, - bookerName:{ - type:"String_comparison_exp" - }, - bookingChannel:{ - type:"booking_channel_enum_comparison_exp" - }, - checkIn:{ - type:"timestamptz_comparison_exp" - }, - checkOut:{ - type:"timestamptz_comparison_exp" - }, - confirmationCode:{ - type:"String_comparison_exp" - }, - connection:{ - type:"connection_bool_exp" - }, - connectionId:{ - type:"uuid_comparison_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - currency:{ - type:"currency_enum_comparison_exp" - }, - entity:{ - type:"entity_bool_exp" - }, - entityId:{ - type:"uuid_comparison_exp" - }, - guestName:{ - type:"String_comparison_exp" - }, - guests:{ - type:"Int_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - isOTA:{ - type:"Boolean_comparison_exp" - }, - lines:{ - type:"line_bool_exp" - }, - metadata:{ - type:"jsonb_comparison_exp" - }, - nights:{ - type:"Int_comparison_exp" - }, - otaBooking:{ - type:"booking_bool_exp" - }, - otaBookingId:{ - type:"uuid_comparison_exp" - }, - relatedBookings:{ - type:"booking_bool_exp" - }, - status:{ - type:"booking_status_enum_comparison_exp" - }, - tags:{ - type:"tag_bool_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - uniqueRef:{ - type:"String_comparison_exp" - }, - unit:{ - type:"unit_bool_exp" - }, - unitId:{ - type:"uuid_comparison_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - } - }, - booking_channel_aggregate_fields:{ - count:{ - columns:{ - type:"[booking_channel_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - booking_channel_bool_exp:{ - _and:{ - type:"[booking_channel_bool_exp]!" - }, - _not:{ - type:"booking_channel_bool_exp" - }, - _or:{ - type:"[booking_channel_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - booking_channel_constraint: "enum", - booking_channel_enum: "enum", - booking_channel_enum_comparison_exp:{ - _eq:{ - type:"booking_channel_enum" - }, - _in:{ - type:"[booking_channel_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"booking_channel_enum" - }, - _nin:{ - type:"[booking_channel_enum]!" - } - }, - booking_channel_insert_input:{ - name:{ - type:"String" - } - }, - booking_channel_on_conflict:{ - constraint:{ - type:"booking_channel_constraint!" - }, - update_columns:{ - type:"[booking_channel_update_column!]!" - }, - where:{ - type:"booking_channel_bool_exp" - } - }, - booking_channel_order_by:{ - name:{ - type:"order_by" - } - }, - booking_channel_pk_columns_input:{ - name:{ - type:"String!" - } - }, - booking_channel_select_column: "enum", - booking_channel_set_input:{ - name:{ - type:"String" - } - }, - booking_channel_update_column: "enum", - booking_constraint: "enum", - booking_delete_at_path_input:{ - metadata:{ - type:"[String]!" - } - }, - booking_delete_elem_input:{ - metadata:{ - type:"Int" - } - }, - booking_delete_key_input:{ - metadata:{ - type:"String" - } - }, - booking_inc_input:{ - guests:{ - type:"Int" - }, - nights:{ - type:"Int" - } - }, - booking_insert_input:{ - bookedAt:{ - type:"timestamptz" - }, - bookerName:{ - type:"String" - }, - bookingChannel:{ - type:"booking_channel_enum" - }, - checkIn:{ - type:"timestamptz" - }, - checkOut:{ - type:"timestamptz" - }, - confirmationCode:{ - type:"String" - }, - connection:{ - type:"connection_obj_rel_insert_input" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - currency:{ - type:"currency_enum" - }, - entity:{ - type:"entity_obj_rel_insert_input" - }, - entityId:{ - type:"uuid" - }, - guestName:{ - type:"String" - }, - guests:{ - type:"Int" - }, - id:{ - type:"uuid" - }, - isOTA:{ - type:"Boolean" - }, - lines:{ - type:"line_arr_rel_insert_input" - }, - metadata:{ - type:"jsonb" - }, - nights:{ - type:"Int" - }, - otaBooking:{ - type:"booking_obj_rel_insert_input" - }, - otaBookingId:{ - type:"uuid" - }, - relatedBookings:{ - type:"booking_arr_rel_insert_input" - }, - status:{ - type:"booking_status_enum" - }, - tags:{ - type:"tag_arr_rel_insert_input" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - uniqueRef:{ - type:"String" - }, - unit:{ - type:"unit_obj_rel_insert_input" - }, - unitId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - } - }, - booking_max_order_by:{ - bookedAt:{ - type:"order_by" - }, - bookerName:{ - type:"order_by" - }, - checkIn:{ - type:"order_by" - }, - checkOut:{ - type:"order_by" - }, - confirmationCode:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - entityId:{ - type:"order_by" - }, - guestName:{ - type:"order_by" - }, - guests:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - nights:{ - type:"order_by" - }, - otaBookingId:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - booking_min_order_by:{ - bookedAt:{ - type:"order_by" - }, - bookerName:{ - type:"order_by" - }, - checkIn:{ - type:"order_by" - }, - checkOut:{ - type:"order_by" - }, - confirmationCode:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - entityId:{ - type:"order_by" - }, - guestName:{ - type:"order_by" - }, - guests:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - nights:{ - type:"order_by" - }, - otaBookingId:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - booking_obj_rel_insert_input:{ - data:{ - type:"booking_insert_input!" - }, - on_conflict:{ - type:"booking_on_conflict" - } - }, - booking_on_conflict:{ - constraint:{ - type:"booking_constraint!" - }, - update_columns:{ - type:"[booking_update_column!]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - booking_order_by:{ - bookedAt:{ - type:"order_by" - }, - bookerName:{ - type:"order_by" - }, - bookingChannel:{ - type:"order_by" - }, - checkIn:{ - type:"order_by" - }, - checkOut:{ - type:"order_by" - }, - confirmationCode:{ - type:"order_by" - }, - connection:{ - type:"connection_order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - currency:{ - type:"order_by" - }, - entity:{ - type:"entity_order_by" - }, - entityId:{ - type:"order_by" - }, - guestName:{ - type:"order_by" - }, - guests:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - isOTA:{ - type:"order_by" - }, - lines_aggregate:{ - type:"line_aggregate_order_by" - }, - metadata:{ - type:"order_by" - }, - nights:{ - type:"order_by" - }, - otaBooking:{ - type:"booking_order_by" - }, - otaBookingId:{ - type:"order_by" - }, - relatedBookings_aggregate:{ - type:"booking_aggregate_order_by" - }, - status:{ - type:"order_by" - }, - tags_aggregate:{ - type:"tag_aggregate_order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unit:{ - type:"unit_order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - booking_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - booking_prepend_input:{ - metadata:{ - type:"jsonb" - } - }, - booking_select_column: "enum", - booking_set_input:{ - bookedAt:{ - type:"timestamptz" - }, - bookerName:{ - type:"String" - }, - bookingChannel:{ - type:"booking_channel_enum" - }, - checkIn:{ - type:"timestamptz" - }, - checkOut:{ - type:"timestamptz" - }, - confirmationCode:{ - type:"String" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - currency:{ - type:"currency_enum" - }, - entityId:{ - type:"uuid" - }, - guestName:{ - type:"String" - }, - guests:{ - type:"Int" - }, - id:{ - type:"uuid" - }, - isOTA:{ - type:"Boolean" - }, - metadata:{ - type:"jsonb" - }, - nights:{ - type:"Int" - }, - otaBookingId:{ - type:"uuid" - }, - status:{ - type:"booking_status_enum" - }, - teamId:{ - type:"uuid" - }, - uniqueRef:{ - type:"String" - }, - unitId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - } - }, - booking_status_enum: "enum", - booking_status_enum_comparison_exp:{ - _eq:{ - type:"booking_status_enum" - }, - _in:{ - type:"[booking_status_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"booking_status_enum" - }, - _nin:{ - type:"[booking_status_enum]!" - } - }, - booking_stddev_order_by:{ - guests:{ - type:"order_by" - }, - nights:{ - type:"order_by" - } - }, - booking_stddev_pop_order_by:{ - guests:{ - type:"order_by" - }, - nights:{ - type:"order_by" - } - }, - booking_stddev_samp_order_by:{ - guests:{ - type:"order_by" - }, - nights:{ - type:"order_by" - } - }, - booking_sum_order_by:{ - guests:{ - type:"order_by" - }, - nights:{ - type:"order_by" - } - }, - booking_update_column: "enum", - booking_var_pop_order_by:{ - guests:{ - type:"order_by" - }, - nights:{ - type:"order_by" - } - }, - booking_var_samp_order_by:{ - guests:{ - type:"order_by" - }, - nights:{ - type:"order_by" - } - }, - booking_variance_order_by:{ - guests:{ - type:"order_by" - }, - nights:{ - type:"order_by" - } - }, - bookingStatus_aggregate_fields:{ - count:{ - columns:{ - type:"[bookingStatus_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - bookingStatus_bool_exp:{ - _and:{ - type:"[bookingStatus_bool_exp]!" - }, - _not:{ - type:"bookingStatus_bool_exp" - }, - _or:{ - type:"[bookingStatus_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - bookingStatus_constraint: "enum", - bookingStatus_insert_input:{ - name:{ - type:"String" - } - }, - bookingStatus_on_conflict:{ - constraint:{ - type:"bookingStatus_constraint!" - }, - update_columns:{ - type:"[bookingStatus_update_column!]!" - }, - where:{ - type:"bookingStatus_bool_exp" - } - }, - bookingStatus_order_by:{ - name:{ - type:"order_by" - } - }, - bookingStatus_pk_columns_input:{ - name:{ - type:"String!" - } - }, - bookingStatus_select_column: "enum", - bookingStatus_set_input:{ - name:{ - type:"String" - } - }, - bookingStatus_update_column: "enum", - Boolean_comparison_exp:{ - _eq:{ - type:"Boolean" - }, - _gt:{ - type:"Boolean" - }, - _gte:{ - type:"Boolean" - }, - _in:{ - type:"[Boolean]!" - }, - _is_null:{ - type:"Boolean" - }, - _lt:{ - type:"Boolean" - }, - _lte:{ - type:"Boolean" - }, - _neq:{ - type:"Boolean" - }, - _nin:{ - type:"[Boolean]!" - } - }, - classification_aggregate_fields:{ - count:{ - columns:{ - type:"[classification_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - classification_bool_exp:{ - _and:{ - type:"[classification_bool_exp]!" - }, - _not:{ - type:"classification_bool_exp" - }, - _or:{ - type:"[classification_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - classification_constraint: "enum", - classification_enum: "enum", - classification_enum_comparison_exp:{ - _eq:{ - type:"classification_enum" - }, - _in:{ - type:"[classification_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"classification_enum" - }, - _nin:{ - type:"[classification_enum]!" - } - }, - classification_insert_input:{ - name:{ - type:"String" - } - }, - classification_on_conflict:{ - constraint:{ - type:"classification_constraint!" - }, - update_columns:{ - type:"[classification_update_column!]!" - }, - where:{ - type:"classification_bool_exp" - } - }, - classification_order_by:{ - name:{ - type:"order_by" - } - }, - classification_pk_columns_input:{ - name:{ - type:"String!" - } - }, - classification_select_column: "enum", - classification_set_input:{ - name:{ - type:"String" - } - }, - classification_update_column: "enum", - connection:{ - bookings:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - bookings_aggregate:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - credentials:{ - path:{ - type:"String" - } - }, - entities:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - entities_aggregate:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - jobs:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - }, - jobs_aggregate:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - }, - lines:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - lines_aggregate:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - metrics:{ - distinct_on:{ - type:"[metric_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[metric_order_by]!" - }, - where:{ - type:"metric_bool_exp" - } - }, - metrics_aggregate:{ - distinct_on:{ - type:"[metric_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[metric_order_by]!" - }, - where:{ - type:"metric_bool_exp" - } - }, - payments:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - payments_aggregate:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - persistentState:{ - path:{ - type:"String" - } - }, - tags:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - tags_aggregate:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - units:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - }, - units_aggregate:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - } - }, - connection_aggregate_fields:{ - count:{ - columns:{ - type:"[connection_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - connection_aggregate_order_by:{ - count:{ - type:"order_by" - }, - max:{ - type:"connection_max_order_by" - }, - min:{ - type:"connection_min_order_by" - } - }, - connection_append_input:{ - credentials:{ - type:"jsonb" - }, - persistentState:{ - type:"jsonb" - } - }, - connection_arr_rel_insert_input:{ - data:{ - type:"[connection_insert_input!]!" - }, - on_conflict:{ - type:"connection_on_conflict" - } - }, - connection_bool_exp:{ - _and:{ - type:"[connection_bool_exp]!" - }, - _not:{ - type:"connection_bool_exp" - }, - _or:{ - type:"[connection_bool_exp]!" - }, - bookings:{ - type:"booking_bool_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - credentials:{ - type:"jsonb_comparison_exp" - }, - entities:{ - type:"entity_bool_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - integration:{ - type:"integration_bool_exp" - }, - integrationId:{ - type:"uuid_comparison_exp" - }, - jobs:{ - type:"job_bool_exp" - }, - lines:{ - type:"line_bool_exp" - }, - metrics:{ - type:"metric_bool_exp" - }, - name:{ - type:"String_comparison_exp" - }, - payments:{ - type:"payment_bool_exp" - }, - persistentState:{ - type:"jsonb_comparison_exp" - }, - status:{ - type:"String_comparison_exp" - }, - tags:{ - type:"tag_bool_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - units:{ - type:"unit_bool_exp" - }, - webhookKey:{ - type:"String_comparison_exp" - } - }, - connection_constraint: "enum", - connection_delete_at_path_input:{ - credentials:{ - type:"[String]!" - }, - persistentState:{ - type:"[String]!" - } - }, - connection_delete_elem_input:{ - credentials:{ - type:"Int" - }, - persistentState:{ - type:"Int" - } - }, - connection_delete_key_input:{ - credentials:{ - type:"String" - }, - persistentState:{ - type:"String" - } - }, - connection_insert_input:{ - bookings:{ - type:"booking_arr_rel_insert_input" - }, - createdAt:{ - type:"timestamptz" - }, - credentials:{ - type:"jsonb" - }, - entities:{ - type:"entity_arr_rel_insert_input" - }, - id:{ - type:"uuid" - }, - integration:{ - type:"integration_obj_rel_insert_input" - }, - integrationId:{ - type:"uuid" - }, - jobs:{ - type:"job_arr_rel_insert_input" - }, - lines:{ - type:"line_arr_rel_insert_input" - }, - metrics:{ - type:"metric_arr_rel_insert_input" - }, - name:{ - type:"String" - }, - payments:{ - type:"payment_arr_rel_insert_input" - }, - persistentState:{ - type:"jsonb" - }, - status:{ - type:"String" - }, - tags:{ - type:"tag_arr_rel_insert_input" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - units:{ - type:"unit_arr_rel_insert_input" - }, - webhookKey:{ - type:"String" - } - }, - connection_max_order_by:{ - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - integrationId:{ - type:"order_by" - }, - name:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - webhookKey:{ - type:"order_by" - } - }, - connection_min_order_by:{ - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - integrationId:{ - type:"order_by" - }, - name:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - webhookKey:{ - type:"order_by" - } - }, - connection_obj_rel_insert_input:{ - data:{ - type:"connection_insert_input!" - }, - on_conflict:{ - type:"connection_on_conflict" - } - }, - connection_on_conflict:{ - constraint:{ - type:"connection_constraint!" - }, - update_columns:{ - type:"[connection_update_column!]!" - }, - where:{ - type:"connection_bool_exp" - } - }, - connection_order_by:{ - bookings_aggregate:{ - type:"booking_aggregate_order_by" - }, - createdAt:{ - type:"order_by" - }, - credentials:{ - type:"order_by" - }, - entities_aggregate:{ - type:"entity_aggregate_order_by" - }, - id:{ - type:"order_by" - }, - integration:{ - type:"integration_order_by" - }, - integrationId:{ - type:"order_by" - }, - jobs_aggregate:{ - type:"job_aggregate_order_by" - }, - lines_aggregate:{ - type:"line_aggregate_order_by" - }, - metrics_aggregate:{ - type:"metric_aggregate_order_by" - }, - name:{ - type:"order_by" - }, - payments_aggregate:{ - type:"payment_aggregate_order_by" - }, - persistentState:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - tags_aggregate:{ - type:"tag_aggregate_order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - units_aggregate:{ - type:"unit_aggregate_order_by" - }, - webhookKey:{ - type:"order_by" - } - }, - connection_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - connection_prepend_input:{ - credentials:{ - type:"jsonb" - }, - persistentState:{ - type:"jsonb" - } - }, - connection_select_column: "enum", - connection_set_input:{ - createdAt:{ - type:"timestamptz" - }, - credentials:{ - type:"jsonb" - }, - id:{ - type:"uuid" - }, - integrationId:{ - type:"uuid" - }, - name:{ - type:"String" - }, - persistentState:{ - type:"jsonb" - }, - status:{ - type:"String" - }, - teamId:{ - type:"uuid" - }, - webhookKey:{ - type:"String" - } - }, - connection_update_column: "enum", - currency_aggregate_fields:{ - count:{ - columns:{ - type:"[currency_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - currency_bool_exp:{ - _and:{ - type:"[currency_bool_exp]!" - }, - _not:{ - type:"currency_bool_exp" - }, - _or:{ - type:"[currency_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - currency_constraint: "enum", - currency_enum: "enum", - currency_enum_comparison_exp:{ - _eq:{ - type:"currency_enum" - }, - _in:{ - type:"[currency_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"currency_enum" - }, - _nin:{ - type:"[currency_enum]!" - } - }, - currency_insert_input:{ - name:{ - type:"String" - } - }, - currency_on_conflict:{ - constraint:{ - type:"currency_constraint!" - }, - update_columns:{ - type:"[currency_update_column!]!" - }, - where:{ - type:"currency_bool_exp" - } - }, - currency_order_by:{ - name:{ - type:"order_by" - } - }, - currency_pk_columns_input:{ - name:{ - type:"String!" - } - }, - currency_select_column: "enum", - currency_set_input:{ - name:{ - type:"String" - } - }, - currency_update_column: "enum", - entity:{ - bookings:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - bookings_aggregate:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - diffJson:{ - path:{ - type:"String" - } - }, - json:{ - path:{ - type:"String" - } - }, - normalizedJson:{ - path:{ - type:"String" - } - }, - payments:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - payments_aggregate:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - successorEntities:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - successorEntities_aggregate:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - units:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - }, - units_aggregate:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - } - }, - entity_aggregate_fields:{ - count:{ - columns:{ - type:"[entity_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - entity_aggregate_order_by:{ - count:{ - type:"order_by" - }, - max:{ - type:"entity_max_order_by" - }, - min:{ - type:"entity_min_order_by" - } - }, - entity_append_input:{ - diffJson:{ - type:"jsonb" - }, - json:{ - type:"jsonb" - }, - normalizedJson:{ - type:"jsonb" - } - }, - entity_arr_rel_insert_input:{ - data:{ - type:"[entity_insert_input!]!" - }, - on_conflict:{ - type:"entity_on_conflict" - } - }, - entity_bool_exp:{ - _and:{ - type:"[entity_bool_exp]!" - }, - _not:{ - type:"entity_bool_exp" - }, - _or:{ - type:"[entity_bool_exp]!" - }, - bookings:{ - type:"booking_bool_exp" - }, - connection:{ - type:"connection_bool_exp" - }, - connectionId:{ - type:"uuid_comparison_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - description:{ - type:"String_comparison_exp" - }, - diffJson:{ - type:"jsonb_comparison_exp" - }, - hash:{ - type:"String_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - job:{ - type:"job_bool_exp" - }, - jobId:{ - type:"uuid_comparison_exp" - }, - json:{ - type:"jsonb_comparison_exp" - }, - normalizedJson:{ - type:"jsonb_comparison_exp" - }, - normalizedType:{ - type:"normalized_type_enum_comparison_exp" - }, - parsedAt:{ - type:"timestamptz_comparison_exp" - }, - payments:{ - type:"payment_bool_exp" - }, - predecessorEntity:{ - type:"entity_bool_exp" - }, - predecessorEntityId:{ - type:"uuid_comparison_exp" - }, - status:{ - type:"entity_status_enum_comparison_exp" - }, - statusText:{ - type:"String_comparison_exp" - }, - successorEntities:{ - type:"entity_bool_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - type:{ - type:"String_comparison_exp" - }, - uniqueRef:{ - type:"String_comparison_exp" - }, - units:{ - type:"unit_bool_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - } - }, - entity_constraint: "enum", - entity_delete_at_path_input:{ - diffJson:{ - type:"[String]!" - }, - json:{ - type:"[String]!" - }, - normalizedJson:{ - type:"[String]!" - } - }, - entity_delete_elem_input:{ - diffJson:{ - type:"Int" - }, - json:{ - type:"Int" - }, - normalizedJson:{ - type:"Int" - } - }, - entity_delete_key_input:{ - diffJson:{ - type:"String" - }, - json:{ - type:"String" - }, - normalizedJson:{ - type:"String" - } - }, - entity_insert_input:{ - bookings:{ - type:"booking_arr_rel_insert_input" - }, - connection:{ - type:"connection_obj_rel_insert_input" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - description:{ - type:"String" - }, - diffJson:{ - type:"jsonb" - }, - hash:{ - type:"String" - }, - id:{ - type:"uuid" - }, - job:{ - type:"job_obj_rel_insert_input" - }, - jobId:{ - type:"uuid" - }, - json:{ - type:"jsonb" - }, - normalizedJson:{ - type:"jsonb" - }, - normalizedType:{ - type:"normalized_type_enum" - }, - parsedAt:{ - type:"timestamptz" - }, - payments:{ - type:"payment_arr_rel_insert_input" - }, - predecessorEntity:{ - type:"entity_obj_rel_insert_input" - }, - predecessorEntityId:{ - type:"uuid" - }, - status:{ - type:"entity_status_enum" - }, - statusText:{ - type:"String" - }, - successorEntities:{ - type:"entity_arr_rel_insert_input" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - units:{ - type:"unit_arr_rel_insert_input" - }, - updatedAt:{ - type:"timestamptz" - } - }, - entity_max_order_by:{ - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - description:{ - type:"order_by" - }, - hash:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - jobId:{ - type:"order_by" - }, - parsedAt:{ - type:"order_by" - }, - predecessorEntityId:{ - type:"order_by" - }, - statusText:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - entity_min_order_by:{ - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - description:{ - type:"order_by" - }, - hash:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - jobId:{ - type:"order_by" - }, - parsedAt:{ - type:"order_by" - }, - predecessorEntityId:{ - type:"order_by" - }, - statusText:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - entity_obj_rel_insert_input:{ - data:{ - type:"entity_insert_input!" - }, - on_conflict:{ - type:"entity_on_conflict" - } - }, - entity_on_conflict:{ - constraint:{ - type:"entity_constraint!" - }, - update_columns:{ - type:"[entity_update_column!]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - entity_order_by:{ - bookings_aggregate:{ - type:"booking_aggregate_order_by" - }, - connection:{ - type:"connection_order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - description:{ - type:"order_by" - }, - diffJson:{ - type:"order_by" - }, - hash:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - job:{ - type:"job_order_by" - }, - jobId:{ - type:"order_by" - }, - json:{ - type:"order_by" - }, - normalizedJson:{ - type:"order_by" - }, - normalizedType:{ - type:"order_by" - }, - parsedAt:{ - type:"order_by" - }, - payments_aggregate:{ - type:"payment_aggregate_order_by" - }, - predecessorEntity:{ - type:"entity_order_by" - }, - predecessorEntityId:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - statusText:{ - type:"order_by" - }, - successorEntities_aggregate:{ - type:"entity_aggregate_order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - units_aggregate:{ - type:"unit_aggregate_order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - entity_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - entity_prepend_input:{ - diffJson:{ - type:"jsonb" - }, - json:{ - type:"jsonb" - }, - normalizedJson:{ - type:"jsonb" - } - }, - entity_select_column: "enum", - entity_set_input:{ - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - description:{ - type:"String" - }, - diffJson:{ - type:"jsonb" - }, - hash:{ - type:"String" - }, - id:{ - type:"uuid" - }, - jobId:{ - type:"uuid" - }, - json:{ - type:"jsonb" - }, - normalizedJson:{ - type:"jsonb" - }, - normalizedType:{ - type:"normalized_type_enum" - }, - parsedAt:{ - type:"timestamptz" - }, - predecessorEntityId:{ - type:"uuid" - }, - status:{ - type:"entity_status_enum" - }, - statusText:{ - type:"String" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - updatedAt:{ - type:"timestamptz" - } - }, - entity_status_enum: "enum", - entity_status_enum_comparison_exp:{ - _eq:{ - type:"entity_status_enum" - }, - _in:{ - type:"[entity_status_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"entity_status_enum" - }, - _nin:{ - type:"[entity_status_enum]!" - } - }, - entity_update_column: "enum", - entityStatus_aggregate_fields:{ - count:{ - columns:{ - type:"[entityStatus_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - entityStatus_bool_exp:{ - _and:{ - type:"[entityStatus_bool_exp]!" - }, - _not:{ - type:"entityStatus_bool_exp" - }, - _or:{ - type:"[entityStatus_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - entityStatus_constraint: "enum", - entityStatus_insert_input:{ - name:{ - type:"String" - } - }, - entityStatus_on_conflict:{ - constraint:{ - type:"entityStatus_constraint!" - }, - update_columns:{ - type:"[entityStatus_update_column!]!" - }, - where:{ - type:"entityStatus_bool_exp" - } - }, - entityStatus_order_by:{ - name:{ - type:"order_by" - } - }, - entityStatus_pk_columns_input:{ - name:{ - type:"String!" - } - }, - entityStatus_select_column: "enum", - entityStatus_set_input:{ - name:{ - type:"String" - } - }, - entityStatus_update_column: "enum", - float8: "String", - float8_comparison_exp:{ - _eq:{ - type:"float8" - }, - _gt:{ - type:"float8" - }, - _gte:{ - type:"float8" - }, - _in:{ - type:"[float8]!" - }, - _is_null:{ - type:"Boolean" - }, - _lt:{ - type:"float8" - }, - _lte:{ - type:"float8" - }, - _neq:{ - type:"float8" - }, - _nin:{ - type:"[float8]!" - } - }, - Int_comparison_exp:{ - _eq:{ - type:"Int" - }, - _gt:{ - type:"Int" - }, - _gte:{ - type:"Int" - }, - _in:{ - type:"[Int]!" - }, - _is_null:{ - type:"Boolean" - }, - _lt:{ - type:"Int" - }, - _lte:{ - type:"Int" - }, - _neq:{ - type:"Int" - }, - _nin:{ - type:"[Int]!" - } - }, - integration:{ - connections:{ - distinct_on:{ - type:"[connection_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[connection_order_by]!" - }, - where:{ - type:"connection_bool_exp" - } - }, - connections_aggregate:{ - distinct_on:{ - type:"[connection_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[connection_order_by]!" - }, - where:{ - type:"connection_bool_exp" - } - }, - jobs:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - }, - jobs_aggregate:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - } - }, - integration_aggregate_fields:{ - count:{ - columns:{ - type:"[integration_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - integration_aggregate_order_by:{ - count:{ - type:"order_by" - }, - max:{ - type:"integration_max_order_by" - }, - min:{ - type:"integration_min_order_by" - } - }, - integration_arr_rel_insert_input:{ - data:{ - type:"[integration_insert_input!]!" - }, - on_conflict:{ - type:"integration_on_conflict" - } - }, - integration_bool_exp:{ - _and:{ - type:"[integration_bool_exp]!" - }, - _not:{ - type:"integration_bool_exp" - }, - _or:{ - type:"[integration_bool_exp]!" - }, - apiDevUrl:{ - type:"String_comparison_exp" - }, - apiUrl:{ - type:"String_comparison_exp" - }, - connections:{ - type:"connection_bool_exp" - }, - icon:{ - type:"String_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - isApproved:{ - type:"Boolean_comparison_exp" - }, - isPrivate:{ - type:"Boolean_comparison_exp" - }, - jobs:{ - type:"job_bool_exp" - }, - name:{ - type:"String_comparison_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - type:{ - type:"integration_type_enum_comparison_exp" - }, - uniqueRef:{ - type:"String_comparison_exp" - } - }, - integration_constraint: "enum", - integration_insert_input:{ - apiDevUrl:{ - type:"String" - }, - apiUrl:{ - type:"String" - }, - connections:{ - type:"connection_arr_rel_insert_input" - }, - icon:{ - type:"String" - }, - id:{ - type:"uuid" - }, - isApproved:{ - type:"Boolean" - }, - isPrivate:{ - type:"Boolean" - }, - jobs:{ - type:"job_arr_rel_insert_input" - }, - name:{ - type:"String" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"integration_type_enum" - }, - uniqueRef:{ - type:"String" - } - }, - integration_max_order_by:{ - apiDevUrl:{ - type:"order_by" - }, - apiUrl:{ - type:"order_by" - }, - icon:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - name:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - } - }, - integration_min_order_by:{ - apiDevUrl:{ - type:"order_by" - }, - apiUrl:{ - type:"order_by" - }, - icon:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - name:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - } - }, - integration_obj_rel_insert_input:{ - data:{ - type:"integration_insert_input!" - }, - on_conflict:{ - type:"integration_on_conflict" - } - }, - integration_on_conflict:{ - constraint:{ - type:"integration_constraint!" - }, - update_columns:{ - type:"[integration_update_column!]!" - }, - where:{ - type:"integration_bool_exp" - } - }, - integration_order_by:{ - apiDevUrl:{ - type:"order_by" - }, - apiUrl:{ - type:"order_by" - }, - connections_aggregate:{ - type:"connection_aggregate_order_by" - }, - icon:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - isApproved:{ - type:"order_by" - }, - isPrivate:{ - type:"order_by" - }, - jobs_aggregate:{ - type:"job_aggregate_order_by" - }, - name:{ - type:"order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - } - }, - integration_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - integration_select_column: "enum", - integration_set_input:{ - apiDevUrl:{ - type:"String" - }, - apiUrl:{ - type:"String" - }, - icon:{ - type:"String" - }, - id:{ - type:"uuid" - }, - isApproved:{ - type:"Boolean" - }, - isPrivate:{ - type:"Boolean" - }, - name:{ - type:"String" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"integration_type_enum" - }, - uniqueRef:{ - type:"String" - } - }, - integration_type_enum: "enum", - integration_type_enum_comparison_exp:{ - _eq:{ - type:"integration_type_enum" - }, - _in:{ - type:"[integration_type_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"integration_type_enum" - }, - _nin:{ - type:"[integration_type_enum]!" - } - }, - integration_update_column: "enum", - integrationType_aggregate_fields:{ - count:{ - columns:{ - type:"[integrationType_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - integrationType_bool_exp:{ - _and:{ - type:"[integrationType_bool_exp]!" - }, - _not:{ - type:"integrationType_bool_exp" - }, - _or:{ - type:"[integrationType_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - integrationType_constraint: "enum", - integrationType_insert_input:{ - name:{ - type:"String" - } - }, - integrationType_on_conflict:{ - constraint:{ - type:"integrationType_constraint!" - }, - update_columns:{ - type:"[integrationType_update_column!]!" - }, - where:{ - type:"integrationType_bool_exp" - } - }, - integrationType_order_by:{ - name:{ - type:"order_by" - } - }, - integrationType_pk_columns_input:{ - name:{ - type:"String!" - } - }, - integrationType_select_column: "enum", - integrationType_set_input:{ - name:{ - type:"String" - } - }, - integrationType_update_column: "enum", - issue:{ - requestParams:{ - path:{ - type:"String" - } - }, - resolveParams:{ - path:{ - type:"String" - } - } - }, - issue_aggregate_fields:{ - count:{ - columns:{ - type:"[issue_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - issue_aggregate_order_by:{ - count:{ - type:"order_by" - }, - max:{ - type:"issue_max_order_by" - }, - min:{ - type:"issue_min_order_by" - } - }, - issue_append_input:{ - requestParams:{ - type:"jsonb" - }, - resolveParams:{ - type:"jsonb" - } - }, - issue_arr_rel_insert_input:{ - data:{ - type:"[issue_insert_input!]!" - }, - on_conflict:{ - type:"issue_on_conflict" - } - }, - issue_bool_exp:{ - _and:{ - type:"[issue_bool_exp]!" - }, - _not:{ - type:"issue_bool_exp" - }, - _or:{ - type:"[issue_bool_exp]!" - }, - code:{ - type:"String_comparison_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - isPublic:{ - type:"Boolean_comparison_exp" - }, - isResolved:{ - type:"Boolean_comparison_exp" - }, - job:{ - type:"job_bool_exp" - }, - jobId:{ - type:"uuid_comparison_exp" - }, - message:{ - type:"String_comparison_exp" - }, - requestParams:{ - type:"jsonb_comparison_exp" - }, - resolveParams:{ - type:"jsonb_comparison_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - type:{ - type:"String_comparison_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - } - }, - issue_constraint: "enum", - issue_delete_at_path_input:{ - requestParams:{ - type:"[String]!" - }, - resolveParams:{ - type:"[String]!" - } - }, - issue_delete_elem_input:{ - requestParams:{ - type:"Int" - }, - resolveParams:{ - type:"Int" - } - }, - issue_delete_key_input:{ - requestParams:{ - type:"String" - }, - resolveParams:{ - type:"String" - } - }, - issue_insert_input:{ - code:{ - type:"String" - }, - createdAt:{ - type:"timestamptz" - }, - id:{ - type:"uuid" - }, - isPublic:{ - type:"Boolean" - }, - isResolved:{ - type:"Boolean" - }, - job:{ - type:"job_obj_rel_insert_input" - }, - jobId:{ - type:"uuid" - }, - message:{ - type:"String" - }, - requestParams:{ - type:"jsonb" - }, - resolveParams:{ - type:"jsonb" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - updatedAt:{ - type:"timestamptz" - } - }, - issue_max_order_by:{ - code:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - jobId:{ - type:"order_by" - }, - message:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - issue_min_order_by:{ - code:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - jobId:{ - type:"order_by" - }, - message:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - issue_on_conflict:{ - constraint:{ - type:"issue_constraint!" - }, - update_columns:{ - type:"[issue_update_column!]!" - }, - where:{ - type:"issue_bool_exp" - } - }, - issue_order_by:{ - code:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - isPublic:{ - type:"order_by" - }, - isResolved:{ - type:"order_by" - }, - job:{ - type:"job_order_by" - }, - jobId:{ - type:"order_by" - }, - message:{ - type:"order_by" - }, - requestParams:{ - type:"order_by" - }, - resolveParams:{ - type:"order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - issue_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - issue_prepend_input:{ - requestParams:{ - type:"jsonb" - }, - resolveParams:{ - type:"jsonb" - } - }, - issue_select_column: "enum", - issue_set_input:{ - code:{ - type:"String" - }, - createdAt:{ - type:"timestamptz" - }, - id:{ - type:"uuid" - }, - isPublic:{ - type:"Boolean" - }, - isResolved:{ - type:"Boolean" - }, - jobId:{ - type:"uuid" - }, - message:{ - type:"String" - }, - requestParams:{ - type:"jsonb" - }, - resolveParams:{ - type:"jsonb" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - updatedAt:{ - type:"timestamptz" - } - }, - issue_update_column: "enum", - job:{ - entities:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - entities_aggregate:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - issues:{ - distinct_on:{ - type:"[issue_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[issue_order_by]!" - }, - where:{ - type:"issue_bool_exp" - } - }, - issues_aggregate:{ - distinct_on:{ - type:"[issue_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[issue_order_by]!" - }, - where:{ - type:"issue_bool_exp" - } - }, - logs:{ - path:{ - type:"String" - } - }, - params:{ - path:{ - type:"String" - } - }, - response:{ - path:{ - type:"String" - } - } - }, - job_aggregate_fields:{ - count:{ - columns:{ - type:"[job_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - job_aggregate_order_by:{ - count:{ - type:"order_by" - }, - max:{ - type:"job_max_order_by" - }, - min:{ - type:"job_min_order_by" - } - }, - job_append_input:{ - logs:{ - type:"jsonb" - }, - params:{ - type:"jsonb" - }, - response:{ - type:"jsonb" - } - }, - job_arr_rel_insert_input:{ - data:{ - type:"[job_insert_input!]!" - }, - on_conflict:{ - type:"job_on_conflict" - } - }, - job_bool_exp:{ - _and:{ - type:"[job_bool_exp]!" - }, - _not:{ - type:"job_bool_exp" - }, - _or:{ - type:"[job_bool_exp]!" - }, - apiVersion:{ - type:"String_comparison_exp" - }, - connection:{ - type:"connection_bool_exp" - }, - connectionId:{ - type:"uuid_comparison_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - endedAt:{ - type:"timestamptz_comparison_exp" - }, - entities:{ - type:"entity_bool_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - integration:{ - type:"integration_bool_exp" - }, - integrationId:{ - type:"uuid_comparison_exp" - }, - integrationSdkVersion:{ - type:"String_comparison_exp" - }, - integrationVersion:{ - type:"String_comparison_exp" - }, - issues:{ - type:"issue_bool_exp" - }, - logFile:{ - type:"String_comparison_exp" - }, - logLink:{ - type:"String_comparison_exp" - }, - logs:{ - type:"jsonb_comparison_exp" - }, - method:{ - type:"job_method_enum_comparison_exp" - }, - params:{ - type:"jsonb_comparison_exp" - }, - requestId:{ - type:"String_comparison_exp" - }, - response:{ - type:"jsonb_comparison_exp" - }, - sdkVersion:{ - type:"String_comparison_exp" - }, - startedAt:{ - type:"timestamptz_comparison_exp" - }, - status:{ - type:"job_status_enum_comparison_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - } - }, - job_constraint: "enum", - job_delete_at_path_input:{ - logs:{ - type:"[String]!" - }, - params:{ - type:"[String]!" - }, - response:{ - type:"[String]!" - } - }, - job_delete_elem_input:{ - logs:{ - type:"Int" - }, - params:{ - type:"Int" - }, - response:{ - type:"Int" - } - }, - job_delete_key_input:{ - logs:{ - type:"String" - }, - params:{ - type:"String" - }, - response:{ - type:"String" - } - }, - job_insert_input:{ - apiVersion:{ - type:"String" - }, - connection:{ - type:"connection_obj_rel_insert_input" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - endedAt:{ - type:"timestamptz" - }, - entities:{ - type:"entity_arr_rel_insert_input" - }, - id:{ - type:"uuid" - }, - integration:{ - type:"integration_obj_rel_insert_input" - }, - integrationId:{ - type:"uuid" - }, - integrationSdkVersion:{ - type:"String" - }, - integrationVersion:{ - type:"String" - }, - issues:{ - type:"issue_arr_rel_insert_input" - }, - logFile:{ - type:"String" - }, - logLink:{ - type:"String" - }, - logs:{ - type:"jsonb" - }, - method:{ - type:"job_method_enum" - }, - params:{ - type:"jsonb" - }, - requestId:{ - type:"String" - }, - response:{ - type:"jsonb" - }, - sdkVersion:{ - type:"String" - }, - startedAt:{ - type:"timestamptz" - }, - status:{ - type:"job_status_enum" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - } - }, - job_max_order_by:{ - apiVersion:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - endedAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - integrationId:{ - type:"order_by" - }, - integrationSdkVersion:{ - type:"order_by" - }, - integrationVersion:{ - type:"order_by" - }, - logFile:{ - type:"order_by" - }, - logLink:{ - type:"order_by" - }, - requestId:{ - type:"order_by" - }, - sdkVersion:{ - type:"order_by" - }, - startedAt:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - job_method_enum: "enum", - job_method_enum_comparison_exp:{ - _eq:{ - type:"job_method_enum" - }, - _in:{ - type:"[job_method_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"job_method_enum" - }, - _nin:{ - type:"[job_method_enum]!" - } - }, - job_min_order_by:{ - apiVersion:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - endedAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - integrationId:{ - type:"order_by" - }, - integrationSdkVersion:{ - type:"order_by" - }, - integrationVersion:{ - type:"order_by" - }, - logFile:{ - type:"order_by" - }, - logLink:{ - type:"order_by" - }, - requestId:{ - type:"order_by" - }, - sdkVersion:{ - type:"order_by" - }, - startedAt:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - job_obj_rel_insert_input:{ - data:{ - type:"job_insert_input!" - }, - on_conflict:{ - type:"job_on_conflict" - } - }, - job_on_conflict:{ - constraint:{ - type:"job_constraint!" - }, - update_columns:{ - type:"[job_update_column!]!" - }, - where:{ - type:"job_bool_exp" - } - }, - job_order_by:{ - apiVersion:{ - type:"order_by" - }, - connection:{ - type:"connection_order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - endedAt:{ - type:"order_by" - }, - entities_aggregate:{ - type:"entity_aggregate_order_by" - }, - id:{ - type:"order_by" - }, - integration:{ - type:"integration_order_by" - }, - integrationId:{ - type:"order_by" - }, - integrationSdkVersion:{ - type:"order_by" - }, - integrationVersion:{ - type:"order_by" - }, - issues_aggregate:{ - type:"issue_aggregate_order_by" - }, - logFile:{ - type:"order_by" - }, - logLink:{ - type:"order_by" - }, - logs:{ - type:"order_by" - }, - method:{ - type:"order_by" - }, - params:{ - type:"order_by" - }, - requestId:{ - type:"order_by" - }, - response:{ - type:"order_by" - }, - sdkVersion:{ - type:"order_by" - }, - startedAt:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - job_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - job_prepend_input:{ - logs:{ - type:"jsonb" - }, - params:{ - type:"jsonb" - }, - response:{ - type:"jsonb" - } - }, - job_select_column: "enum", - job_set_input:{ - apiVersion:{ - type:"String" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - endedAt:{ - type:"timestamptz" - }, - id:{ - type:"uuid" - }, - integrationId:{ - type:"uuid" - }, - integrationSdkVersion:{ - type:"String" - }, - integrationVersion:{ - type:"String" - }, - logFile:{ - type:"String" - }, - logLink:{ - type:"String" - }, - logs:{ - type:"jsonb" - }, - method:{ - type:"job_method_enum" - }, - params:{ - type:"jsonb" - }, - requestId:{ - type:"String" - }, - response:{ - type:"jsonb" - }, - sdkVersion:{ - type:"String" - }, - startedAt:{ - type:"timestamptz" - }, - status:{ - type:"job_status_enum" - }, - teamId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - } - }, - job_status_enum: "enum", - job_status_enum_comparison_exp:{ - _eq:{ - type:"job_status_enum" - }, - _in:{ - type:"[job_status_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"job_status_enum" - }, - _nin:{ - type:"[job_status_enum]!" - } - }, - job_update_column: "enum", - jobMethod_aggregate_fields:{ - count:{ - columns:{ - type:"[jobMethod_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - jobMethod_bool_exp:{ - _and:{ - type:"[jobMethod_bool_exp]!" - }, - _not:{ - type:"jobMethod_bool_exp" - }, - _or:{ - type:"[jobMethod_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - jobMethod_constraint: "enum", - jobMethod_insert_input:{ - name:{ - type:"String" - } - }, - jobMethod_on_conflict:{ - constraint:{ - type:"jobMethod_constraint!" - }, - update_columns:{ - type:"[jobMethod_update_column!]!" - }, - where:{ - type:"jobMethod_bool_exp" - } - }, - jobMethod_order_by:{ - name:{ - type:"order_by" - } - }, - jobMethod_pk_columns_input:{ - name:{ - type:"String!" - } - }, - jobMethod_select_column: "enum", - jobMethod_set_input:{ - name:{ - type:"String" - } - }, - jobMethod_update_column: "enum", - jobStatus_aggregate_fields:{ - count:{ - columns:{ - type:"[jobStatus_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - jobStatus_bool_exp:{ - _and:{ - type:"[jobStatus_bool_exp]!" - }, - _not:{ - type:"jobStatus_bool_exp" - }, - _or:{ - type:"[jobStatus_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - jobStatus_constraint: "enum", - jobStatus_insert_input:{ - name:{ - type:"String" - } - }, - jobStatus_on_conflict:{ - constraint:{ - type:"jobStatus_constraint!" - }, - update_columns:{ - type:"[jobStatus_update_column!]!" - }, - where:{ - type:"jobStatus_bool_exp" - } - }, - jobStatus_order_by:{ - name:{ - type:"order_by" - } - }, - jobStatus_pk_columns_input:{ - name:{ - type:"String!" - } - }, - jobStatus_select_column: "enum", - jobStatus_set_input:{ - name:{ - type:"String" - } - }, - jobStatus_update_column: "enum", - jsonb: "String", - jsonb_comparison_exp:{ - _contained_in:{ - type:"jsonb" - }, - _contains:{ - type:"jsonb" - }, - _eq:{ - type:"jsonb" - }, - _gt:{ - type:"jsonb" - }, - _gte:{ - type:"jsonb" - }, - _has_key:{ - type:"String" - }, - _has_keys_all:{ - type:"[String]!" - }, - _has_keys_any:{ - type:"[String]!" - }, - _in:{ - type:"[jsonb]!" - }, - _is_null:{ - type:"Boolean" - }, - _lt:{ - type:"jsonb" - }, - _lte:{ - type:"jsonb" - }, - _neq:{ - type:"jsonb" - }, - _nin:{ - type:"[jsonb]!" - } - }, - line:{ - enhancementLines:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - enhancementLines_aggregate:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - metadata:{ - path:{ - type:"String" - } - } - }, - line_aggregate_fields:{ - count:{ - columns:{ - type:"[line_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - line_aggregate_order_by:{ - avg:{ - type:"line_avg_order_by" - }, - count:{ - type:"order_by" - }, - max:{ - type:"line_max_order_by" - }, - min:{ - type:"line_min_order_by" - }, - stddev:{ - type:"line_stddev_order_by" - }, - stddev_pop:{ - type:"line_stddev_pop_order_by" - }, - stddev_samp:{ - type:"line_stddev_samp_order_by" - }, - sum:{ - type:"line_sum_order_by" - }, - var_pop:{ - type:"line_var_pop_order_by" - }, - var_samp:{ - type:"line_var_samp_order_by" - }, - variance:{ - type:"line_variance_order_by" - } - }, - line_append_input:{ - metadata:{ - type:"jsonb" - } - }, - line_arr_rel_insert_input:{ - data:{ - type:"[line_insert_input!]!" - }, - on_conflict:{ - type:"line_on_conflict" - } - }, - line_avg_order_by:{ - centTotal:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - } - }, - line_bool_exp:{ - _and:{ - type:"[line_bool_exp]!" - }, - _not:{ - type:"line_bool_exp" - }, - _or:{ - type:"[line_bool_exp]!" - }, - booking:{ - type:"booking_bool_exp" - }, - bookingId:{ - type:"uuid_comparison_exp" - }, - centTotal:{ - type:"Int_comparison_exp" - }, - classification:{ - type:"classification_enum_comparison_exp" - }, - connection:{ - type:"connection_bool_exp" - }, - connectionId:{ - type:"uuid_comparison_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - description:{ - type:"String_comparison_exp" - }, - enhancementLines:{ - type:"line_bool_exp" - }, - enhancingLine:{ - type:"line_bool_exp" - }, - enhancingLineId:{ - type:"uuid_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - invoiceStatus:{ - type:"String_comparison_exp" - }, - isEnhanced:{ - type:"Boolean_comparison_exp" - }, - metadata:{ - type:"jsonb_comparison_exp" - }, - originCentTotal:{ - type:"Int_comparison_exp" - }, - originCurrency:{ - type:"String_comparison_exp" - }, - originExchangeRate:{ - type:"numeric_comparison_exp" - }, - payment:{ - type:"payment_bool_exp" - }, - paymentId:{ - type:"uuid_comparison_exp" - }, - subclassification:{ - type:"subclassification_enum_comparison_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - type:{ - type:"String_comparison_exp" - }, - uniqueRef:{ - type:"String_comparison_exp" - }, - unitId:{ - type:"uuid_comparison_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - } - }, - line_constraint: "enum", - line_delete_at_path_input:{ - metadata:{ - type:"[String]!" - } - }, - line_delete_elem_input:{ - metadata:{ - type:"Int" - } - }, - line_delete_key_input:{ - metadata:{ - type:"String" - } - }, - line_inc_input:{ - centTotal:{ - type:"Int" - }, - originCentTotal:{ - type:"Int" - }, - originExchangeRate:{ - type:"numeric" - } - }, - line_insert_input:{ - booking:{ - type:"booking_obj_rel_insert_input" - }, - bookingId:{ - type:"uuid" - }, - centTotal:{ - type:"Int" - }, - classification:{ - type:"classification_enum" - }, - connection:{ - type:"connection_obj_rel_insert_input" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - description:{ - type:"String" - }, - enhancementLines:{ - type:"line_arr_rel_insert_input" - }, - enhancingLine:{ - type:"line_obj_rel_insert_input" - }, - enhancingLineId:{ - type:"uuid" - }, - id:{ - type:"uuid" - }, - invoiceStatus:{ - type:"String" - }, - isEnhanced:{ - type:"Boolean" - }, - metadata:{ - type:"jsonb" - }, - originCentTotal:{ - type:"Int" - }, - originCurrency:{ - type:"String" - }, - originExchangeRate:{ - type:"numeric" - }, - payment:{ - type:"payment_obj_rel_insert_input" - }, - paymentId:{ - type:"uuid" - }, - subclassification:{ - type:"subclassification_enum" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - unitId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - } - }, - line_max_order_by:{ - bookingId:{ - type:"order_by" - }, - centTotal:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - description:{ - type:"order_by" - }, - enhancingLineId:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - invoiceStatus:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originCurrency:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - }, - paymentId:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - line_min_order_by:{ - bookingId:{ - type:"order_by" - }, - centTotal:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - description:{ - type:"order_by" - }, - enhancingLineId:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - invoiceStatus:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originCurrency:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - }, - paymentId:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - line_obj_rel_insert_input:{ - data:{ - type:"line_insert_input!" - }, - on_conflict:{ - type:"line_on_conflict" - } - }, - line_on_conflict:{ - constraint:{ - type:"line_constraint!" - }, - update_columns:{ - type:"[line_update_column!]!" - }, - where:{ - type:"line_bool_exp" - } - }, - line_order_by:{ - booking:{ - type:"booking_order_by" - }, - bookingId:{ - type:"order_by" - }, - centTotal:{ - type:"order_by" - }, - classification:{ - type:"order_by" - }, - connection:{ - type:"connection_order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - description:{ - type:"order_by" - }, - enhancementLines_aggregate:{ - type:"line_aggregate_order_by" - }, - enhancingLine:{ - type:"line_order_by" - }, - enhancingLineId:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - invoiceStatus:{ - type:"order_by" - }, - isEnhanced:{ - type:"order_by" - }, - metadata:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originCurrency:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - }, - payment:{ - type:"payment_order_by" - }, - paymentId:{ - type:"order_by" - }, - subclassification:{ - type:"order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - line_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - line_prepend_input:{ - metadata:{ - type:"jsonb" - } - }, - line_select_column: "enum", - line_set_input:{ - bookingId:{ - type:"uuid" - }, - centTotal:{ - type:"Int" - }, - classification:{ - type:"classification_enum" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - description:{ - type:"String" - }, - enhancingLineId:{ - type:"uuid" - }, - id:{ - type:"uuid" - }, - invoiceStatus:{ - type:"String" - }, - isEnhanced:{ - type:"Boolean" - }, - metadata:{ - type:"jsonb" - }, - originCentTotal:{ - type:"Int" - }, - originCurrency:{ - type:"String" - }, - originExchangeRate:{ - type:"numeric" - }, - paymentId:{ - type:"uuid" - }, - subclassification:{ - type:"subclassification_enum" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - unitId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - } - }, - line_stddev_order_by:{ - centTotal:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - } - }, - line_stddev_pop_order_by:{ - centTotal:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - } - }, - line_stddev_samp_order_by:{ - centTotal:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - } - }, - line_sum_order_by:{ - centTotal:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - } - }, - line_update_column: "enum", - line_var_pop_order_by:{ - centTotal:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - } - }, - line_var_samp_order_by:{ - centTotal:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - } - }, - line_variance_order_by:{ - centTotal:{ - type:"order_by" - }, - originCentTotal:{ - type:"order_by" - }, - originExchangeRate:{ - type:"order_by" - } - }, - metric:{ - metadata:{ - path:{ - type:"String" - } - } - }, - metric_aggregate_fields:{ - count:{ - columns:{ - type:"[metric_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - metric_aggregate_order_by:{ - avg:{ - type:"metric_avg_order_by" - }, - count:{ - type:"order_by" - }, - max:{ - type:"metric_max_order_by" - }, - min:{ - type:"metric_min_order_by" - }, - stddev:{ - type:"metric_stddev_order_by" - }, - stddev_pop:{ - type:"metric_stddev_pop_order_by" - }, - stddev_samp:{ - type:"metric_stddev_samp_order_by" - }, - sum:{ - type:"metric_sum_order_by" - }, - var_pop:{ - type:"metric_var_pop_order_by" - }, - var_samp:{ - type:"metric_var_samp_order_by" - }, - variance:{ - type:"metric_variance_order_by" - } - }, - metric_append_input:{ - metadata:{ - type:"jsonb" - } - }, - metric_arr_rel_insert_input:{ - data:{ - type:"[metric_insert_input!]!" - }, - on_conflict:{ - type:"metric_on_conflict" - } - }, - metric_avg_order_by:{ - value:{ - type:"order_by" - } - }, - metric_bool_exp:{ - _and:{ - type:"[metric_bool_exp]!" - }, - _not:{ - type:"metric_bool_exp" - }, - _or:{ - type:"[metric_bool_exp]!" - }, - connection:{ - type:"connection_bool_exp" - }, - connectionId:{ - type:"uuid_comparison_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - ensuedAt:{ - type:"timestamptz_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - metadata:{ - type:"jsonb_comparison_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - text:{ - type:"String_comparison_exp" - }, - type:{ - type:"String_comparison_exp" - }, - uniqueRef:{ - type:"String_comparison_exp" - }, - unitId:{ - type:"uuid_comparison_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - }, - value:{ - type:"float8_comparison_exp" - } - }, - metric_constraint: "enum", - metric_delete_at_path_input:{ - metadata:{ - type:"[String]!" - } - }, - metric_delete_elem_input:{ - metadata:{ - type:"Int" - } - }, - metric_delete_key_input:{ - metadata:{ - type:"String" - } - }, - metric_inc_input:{ - value:{ - type:"float8" - } - }, - metric_insert_input:{ - connection:{ - type:"connection_obj_rel_insert_input" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - ensuedAt:{ - type:"timestamptz" - }, - id:{ - type:"uuid" - }, - metadata:{ - type:"jsonb" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - text:{ - type:"String" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - unitId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - }, - value:{ - type:"float8" - } - }, - metric_max_order_by:{ - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - ensuedAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - text:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - }, - value:{ - type:"order_by" - } - }, - metric_min_order_by:{ - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - ensuedAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - text:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - }, - value:{ - type:"order_by" - } - }, - metric_on_conflict:{ - constraint:{ - type:"metric_constraint!" - }, - update_columns:{ - type:"[metric_update_column!]!" - }, - where:{ - type:"metric_bool_exp" - } - }, - metric_order_by:{ - connection:{ - type:"connection_order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - ensuedAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - metadata:{ - type:"order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - text:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - }, - value:{ - type:"order_by" - } - }, - metric_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - metric_prepend_input:{ - metadata:{ - type:"jsonb" - } - }, - metric_select_column: "enum", - metric_set_input:{ - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - ensuedAt:{ - type:"timestamptz" - }, - id:{ - type:"uuid" - }, - metadata:{ - type:"jsonb" - }, - teamId:{ - type:"uuid" - }, - text:{ - type:"String" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - unitId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - }, - value:{ - type:"float8" - } - }, - metric_stddev_order_by:{ - value:{ - type:"order_by" - } - }, - metric_stddev_pop_order_by:{ - value:{ - type:"order_by" - } - }, - metric_stddev_samp_order_by:{ - value:{ - type:"order_by" - } - }, - metric_sum_order_by:{ - value:{ - type:"order_by" - } - }, - metric_update_column: "enum", - metric_var_pop_order_by:{ - value:{ - type:"order_by" - } - }, - metric_var_samp_order_by:{ - value:{ - type:"order_by" - } - }, - metric_variance_order_by:{ - value:{ - type:"order_by" - } - }, - mutation_root:{ - deleteBooking:{ - id:{ - type:"uuid!" - } - }, - deleteBookingStatus:{ - name:{ - type:"String!" - } - }, - deleteBookingStatuses:{ - where:{ - type:"bookingStatus_bool_exp!" - } - }, - deleteBookings:{ - where:{ - type:"booking_bool_exp!" - } - }, - deleteClassification:{ - name:{ - type:"String!" - } - }, - deleteClassifications:{ - where:{ - type:"classification_bool_exp!" - } - }, - deleteConnection:{ - id:{ - type:"uuid!" - } - }, - deleteConnections:{ - where:{ - type:"connection_bool_exp!" - } - }, - deleteCurrencies:{ - where:{ - type:"currency_bool_exp!" - } - }, - deleteCurrency:{ - name:{ - type:"String!" - } - }, - deleteEntities:{ - where:{ - type:"entity_bool_exp!" - } - }, - deleteEntity:{ - id:{ - type:"uuid!" - } - }, - deleteEntityStatus:{ - name:{ - type:"String!" - } - }, - deleteEntityStatuses:{ - where:{ - type:"entityStatus_bool_exp!" - } - }, - deleteIntegration:{ - id:{ - type:"uuid!" - } - }, - deleteIntegrationType:{ - name:{ - type:"String!" - } - }, - deleteIntegrationTypes:{ - where:{ - type:"integrationType_bool_exp!" - } - }, - deleteIntegrations:{ - where:{ - type:"integration_bool_exp!" - } - }, - deleteIssue:{ - id:{ - type:"uuid!" - } - }, - deleteIssues:{ - where:{ - type:"issue_bool_exp!" - } - }, - deleteJob:{ - id:{ - type:"uuid!" - } - }, - deleteJobMethod:{ - name:{ - type:"String!" - } - }, - deleteJobMethods:{ - where:{ - type:"jobMethod_bool_exp!" - } - }, - deleteJobStatus:{ - name:{ - type:"String!" - } - }, - deleteJobStatuses:{ - where:{ - type:"jobStatus_bool_exp!" - } - }, - deleteJobs:{ - where:{ - type:"job_bool_exp!" - } - }, - deleteLine:{ - id:{ - type:"uuid!" - } - }, - deleteLines:{ - where:{ - type:"line_bool_exp!" - } - }, - deleteMetric:{ - id:{ - type:"uuid!" - } - }, - deleteMetrics:{ - where:{ - type:"metric_bool_exp!" - } - }, - deleteNormalizedType:{ - name:{ - type:"String!" - } - }, - deleteNormalizedTypes:{ - where:{ - type:"normalizedType_bool_exp!" - } - }, - deletePayment:{ - id:{ - type:"uuid!" - } - }, - deletePaymentStatus:{ - name:{ - type:"String!" - } - }, - deletePaymentStatuses:{ - where:{ - type:"paymentStatus_bool_exp!" - } - }, - deletePaymentType:{ - name:{ - type:"String!" - } - }, - deletePaymentTypes:{ - where:{ - type:"paymentType_bool_exp!" - } - }, - deletePayments:{ - where:{ - type:"payment_bool_exp!" - } - }, - deleteSubclassification:{ - name:{ - type:"String!" - } - }, - deleteSubclassifications:{ - where:{ - type:"subclassification_bool_exp!" - } - }, - deleteTag:{ - id:{ - type:"uuid!" - } - }, - deleteTags:{ - where:{ - type:"tag_bool_exp!" - } - }, - deleteTeam:{ - id:{ - type:"uuid!" - } - }, - deleteTeamUser:{ - id:{ - type:"uuid!" - } - }, - deleteTeamUsers:{ - where:{ - type:"teamUser_bool_exp!" - } - }, - deleteTeams:{ - where:{ - type:"team_bool_exp!" - } - }, - deleteUnit:{ - id:{ - type:"uuid!" - } - }, - deleteUnits:{ - where:{ - type:"unit_bool_exp!" - } - }, - deleteUser:{ - id:{ - type:"uuid!" - } - }, - deleteUserStatus:{ - name:{ - type:"String!" - } - }, - deleteUserStatuses:{ - where:{ - type:"userStatus_bool_exp!" - } - }, - deleteUsers:{ - where:{ - type:"user_bool_exp!" - } - }, - deleteWebhook:{ - id:{ - type:"uuid!" - } - }, - deleteWebhooks:{ - where:{ - type:"webhook_bool_exp!" - } - }, - delete_booking_channel:{ - where:{ - type:"booking_channel_bool_exp!" - } - }, - delete_booking_channel_by_pk:{ - name:{ - type:"String!" - } - }, - insertBooking:{ - object:{ - type:"booking_insert_input!" - }, - on_conflict:{ - type:"booking_on_conflict" - } - }, - insertBookingStatus:{ - object:{ - type:"bookingStatus_insert_input!" - }, - on_conflict:{ - type:"bookingStatus_on_conflict" - } - }, - insertBookingStatuses:{ - objects:{ - type:"[bookingStatus_insert_input!]!" - }, - on_conflict:{ - type:"bookingStatus_on_conflict" - } - }, - insertBookings:{ - objects:{ - type:"[booking_insert_input!]!" - }, - on_conflict:{ - type:"booking_on_conflict" - } - }, - insertClassification:{ - object:{ - type:"classification_insert_input!" - }, - on_conflict:{ - type:"classification_on_conflict" - } - }, - insertClassifications:{ - objects:{ - type:"[classification_insert_input!]!" - }, - on_conflict:{ - type:"classification_on_conflict" - } - }, - insertConnection:{ - object:{ - type:"connection_insert_input!" - }, - on_conflict:{ - type:"connection_on_conflict" - } - }, - insertConnections:{ - objects:{ - type:"[connection_insert_input!]!" - }, - on_conflict:{ - type:"connection_on_conflict" - } - }, - insertCurrencies:{ - objects:{ - type:"[currency_insert_input!]!" - }, - on_conflict:{ - type:"currency_on_conflict" - } - }, - insertCurrency:{ - object:{ - type:"currency_insert_input!" - }, - on_conflict:{ - type:"currency_on_conflict" - } - }, - insertEntities:{ - objects:{ - type:"[entity_insert_input!]!" - }, - on_conflict:{ - type:"entity_on_conflict" - } - }, - insertEntity:{ - object:{ - type:"entity_insert_input!" - }, - on_conflict:{ - type:"entity_on_conflict" - } - }, - insertEntityStatus:{ - object:{ - type:"entityStatus_insert_input!" - }, - on_conflict:{ - type:"entityStatus_on_conflict" - } - }, - insertEntityStatuses:{ - objects:{ - type:"[entityStatus_insert_input!]!" - }, - on_conflict:{ - type:"entityStatus_on_conflict" - } - }, - insertIntegration:{ - object:{ - type:"integration_insert_input!" - }, - on_conflict:{ - type:"integration_on_conflict" - } - }, - insertIntegrationType:{ - object:{ - type:"integrationType_insert_input!" - }, - on_conflict:{ - type:"integrationType_on_conflict" - } - }, - insertIntegrationTypes:{ - objects:{ - type:"[integrationType_insert_input!]!" - }, - on_conflict:{ - type:"integrationType_on_conflict" - } - }, - insertIntegrations:{ - objects:{ - type:"[integration_insert_input!]!" - }, - on_conflict:{ - type:"integration_on_conflict" - } - }, - insertIssue:{ - object:{ - type:"issue_insert_input!" - }, - on_conflict:{ - type:"issue_on_conflict" - } - }, - insertIssues:{ - objects:{ - type:"[issue_insert_input!]!" - }, - on_conflict:{ - type:"issue_on_conflict" - } - }, - insertJob:{ - object:{ - type:"job_insert_input!" - }, - on_conflict:{ - type:"job_on_conflict" - } - }, - insertJobMethod:{ - object:{ - type:"jobMethod_insert_input!" - }, - on_conflict:{ - type:"jobMethod_on_conflict" - } - }, - insertJobMethods:{ - objects:{ - type:"[jobMethod_insert_input!]!" - }, - on_conflict:{ - type:"jobMethod_on_conflict" - } - }, - insertJobStatus:{ - object:{ - type:"jobStatus_insert_input!" - }, - on_conflict:{ - type:"jobStatus_on_conflict" - } - }, - insertJobStatuses:{ - objects:{ - type:"[jobStatus_insert_input!]!" - }, - on_conflict:{ - type:"jobStatus_on_conflict" - } - }, - insertJobs:{ - objects:{ - type:"[job_insert_input!]!" - }, - on_conflict:{ - type:"job_on_conflict" - } - }, - insertLine:{ - object:{ - type:"line_insert_input!" - }, - on_conflict:{ - type:"line_on_conflict" - } - }, - insertLines:{ - objects:{ - type:"[line_insert_input!]!" - }, - on_conflict:{ - type:"line_on_conflict" - } - }, - insertMetric:{ - object:{ - type:"metric_insert_input!" - }, - on_conflict:{ - type:"metric_on_conflict" - } - }, - insertMetrics:{ - objects:{ - type:"[metric_insert_input!]!" - }, - on_conflict:{ - type:"metric_on_conflict" - } - }, - insertNormalizedType:{ - object:{ - type:"normalizedType_insert_input!" - }, - on_conflict:{ - type:"normalizedType_on_conflict" - } - }, - insertNormalizedTypes:{ - objects:{ - type:"[normalizedType_insert_input!]!" - }, - on_conflict:{ - type:"normalizedType_on_conflict" - } - }, - insertPayment:{ - object:{ - type:"payment_insert_input!" - }, - on_conflict:{ - type:"payment_on_conflict" - } - }, - insertPaymentStatus:{ - object:{ - type:"paymentStatus_insert_input!" - }, - on_conflict:{ - type:"paymentStatus_on_conflict" - } - }, - insertPaymentStatuses:{ - objects:{ - type:"[paymentStatus_insert_input!]!" - }, - on_conflict:{ - type:"paymentStatus_on_conflict" - } - }, - insertPaymentType:{ - object:{ - type:"paymentType_insert_input!" - }, - on_conflict:{ - type:"paymentType_on_conflict" - } - }, - insertPaymentTypes:{ - objects:{ - type:"[paymentType_insert_input!]!" - }, - on_conflict:{ - type:"paymentType_on_conflict" - } - }, - insertPayments:{ - objects:{ - type:"[payment_insert_input!]!" - }, - on_conflict:{ - type:"payment_on_conflict" - } - }, - insertSubclassification:{ - object:{ - type:"subclassification_insert_input!" - }, - on_conflict:{ - type:"subclassification_on_conflict" - } - }, - insertSubclassifications:{ - objects:{ - type:"[subclassification_insert_input!]!" - }, - on_conflict:{ - type:"subclassification_on_conflict" - } - }, - insertTag:{ - object:{ - type:"tag_insert_input!" - }, - on_conflict:{ - type:"tag_on_conflict" - } - }, - insertTags:{ - objects:{ - type:"[tag_insert_input!]!" - }, - on_conflict:{ - type:"tag_on_conflict" - } - }, - insertTeam:{ - object:{ - type:"team_insert_input!" - }, - on_conflict:{ - type:"team_on_conflict" - } - }, - insertTeamUser:{ - object:{ - type:"teamUser_insert_input!" - }, - on_conflict:{ - type:"teamUser_on_conflict" - } - }, - insertTeamUsers:{ - objects:{ - type:"[teamUser_insert_input!]!" - }, - on_conflict:{ - type:"teamUser_on_conflict" - } - }, - insertTeams:{ - objects:{ - type:"[team_insert_input!]!" - }, - on_conflict:{ - type:"team_on_conflict" - } - }, - insertUnit:{ - object:{ - type:"unit_insert_input!" - }, - on_conflict:{ - type:"unit_on_conflict" - } - }, - insertUnits:{ - objects:{ - type:"[unit_insert_input!]!" - }, - on_conflict:{ - type:"unit_on_conflict" - } - }, - insertUser:{ - object:{ - type:"user_insert_input!" - }, - on_conflict:{ - type:"user_on_conflict" - } - }, - insertUserStatus:{ - object:{ - type:"userStatus_insert_input!" - }, - on_conflict:{ - type:"userStatus_on_conflict" - } - }, - insertUserStatuses:{ - objects:{ - type:"[userStatus_insert_input!]!" - }, - on_conflict:{ - type:"userStatus_on_conflict" - } - }, - insertUsers:{ - objects:{ - type:"[user_insert_input!]!" - }, - on_conflict:{ - type:"user_on_conflict" - } - }, - insertWebhook:{ - object:{ - type:"webhook_insert_input!" - }, - on_conflict:{ - type:"webhook_on_conflict" - } - }, - insertWebhooks:{ - objects:{ - type:"[webhook_insert_input!]!" - }, - on_conflict:{ - type:"webhook_on_conflict" - } - }, - insert_booking_channel:{ - objects:{ - type:"[booking_channel_insert_input!]!" - }, - on_conflict:{ - type:"booking_channel_on_conflict" - } - }, - insert_booking_channel_one:{ - object:{ - type:"booking_channel_insert_input!" - }, - on_conflict:{ - type:"booking_channel_on_conflict" - } - }, - updateBooking:{ - _append:{ - type:"booking_append_input" - }, - _delete_at_path:{ - type:"booking_delete_at_path_input" - }, - _delete_elem:{ - type:"booking_delete_elem_input" - }, - _delete_key:{ - type:"booking_delete_key_input" - }, - _inc:{ - type:"booking_inc_input" - }, - _prepend:{ - type:"booking_prepend_input" - }, - _set:{ - type:"booking_set_input" - }, - pk_columns:{ - type:"booking_pk_columns_input!" - } - }, - updateBookingStatus:{ - _set:{ - type:"bookingStatus_set_input" - }, - pk_columns:{ - type:"bookingStatus_pk_columns_input!" - } - }, - updateBookingStatuses:{ - _set:{ - type:"bookingStatus_set_input" - }, - where:{ - type:"bookingStatus_bool_exp!" - } - }, - updateBookings:{ - _append:{ - type:"booking_append_input" - }, - _delete_at_path:{ - type:"booking_delete_at_path_input" - }, - _delete_elem:{ - type:"booking_delete_elem_input" - }, - _delete_key:{ - type:"booking_delete_key_input" - }, - _inc:{ - type:"booking_inc_input" - }, - _prepend:{ - type:"booking_prepend_input" - }, - _set:{ - type:"booking_set_input" - }, - where:{ - type:"booking_bool_exp!" - } - }, - updateClassification:{ - _set:{ - type:"classification_set_input" - }, - pk_columns:{ - type:"classification_pk_columns_input!" - } - }, - updateClassifications:{ - _set:{ - type:"classification_set_input" - }, - where:{ - type:"classification_bool_exp!" - } - }, - updateConnection:{ - _append:{ - type:"connection_append_input" - }, - _delete_at_path:{ - type:"connection_delete_at_path_input" - }, - _delete_elem:{ - type:"connection_delete_elem_input" - }, - _delete_key:{ - type:"connection_delete_key_input" - }, - _prepend:{ - type:"connection_prepend_input" - }, - _set:{ - type:"connection_set_input" - }, - pk_columns:{ - type:"connection_pk_columns_input!" - } - }, - updateConnections:{ - _append:{ - type:"connection_append_input" - }, - _delete_at_path:{ - type:"connection_delete_at_path_input" - }, - _delete_elem:{ - type:"connection_delete_elem_input" - }, - _delete_key:{ - type:"connection_delete_key_input" - }, - _prepend:{ - type:"connection_prepend_input" - }, - _set:{ - type:"connection_set_input" - }, - where:{ - type:"connection_bool_exp!" - } - }, - updateCurrencies:{ - _set:{ - type:"currency_set_input" - }, - where:{ - type:"currency_bool_exp!" - } - }, - updateCurrency:{ - _set:{ - type:"currency_set_input" - }, - pk_columns:{ - type:"currency_pk_columns_input!" - } - }, - updateEntities:{ - _append:{ - type:"entity_append_input" - }, - _delete_at_path:{ - type:"entity_delete_at_path_input" - }, - _delete_elem:{ - type:"entity_delete_elem_input" - }, - _delete_key:{ - type:"entity_delete_key_input" - }, - _prepend:{ - type:"entity_prepend_input" - }, - _set:{ - type:"entity_set_input" - }, - where:{ - type:"entity_bool_exp!" - } - }, - updateEntity:{ - _append:{ - type:"entity_append_input" - }, - _delete_at_path:{ - type:"entity_delete_at_path_input" - }, - _delete_elem:{ - type:"entity_delete_elem_input" - }, - _delete_key:{ - type:"entity_delete_key_input" - }, - _prepend:{ - type:"entity_prepend_input" - }, - _set:{ - type:"entity_set_input" - }, - pk_columns:{ - type:"entity_pk_columns_input!" - } - }, - updateEntityStatus:{ - _set:{ - type:"entityStatus_set_input" - }, - pk_columns:{ - type:"entityStatus_pk_columns_input!" - } - }, - updateEntityStatuses:{ - _set:{ - type:"entityStatus_set_input" - }, - where:{ - type:"entityStatus_bool_exp!" - } - }, - updateIntegration:{ - _set:{ - type:"integration_set_input" - }, - pk_columns:{ - type:"integration_pk_columns_input!" - } - }, - updateIntegrationType:{ - _set:{ - type:"integrationType_set_input" - }, - pk_columns:{ - type:"integrationType_pk_columns_input!" - } - }, - updateIntegrationTypes:{ - _set:{ - type:"integrationType_set_input" - }, - where:{ - type:"integrationType_bool_exp!" - } - }, - updateIntegrations:{ - _set:{ - type:"integration_set_input" - }, - where:{ - type:"integration_bool_exp!" - } - }, - updateIssue:{ - _append:{ - type:"issue_append_input" - }, - _delete_at_path:{ - type:"issue_delete_at_path_input" - }, - _delete_elem:{ - type:"issue_delete_elem_input" - }, - _delete_key:{ - type:"issue_delete_key_input" - }, - _prepend:{ - type:"issue_prepend_input" - }, - _set:{ - type:"issue_set_input" - }, - pk_columns:{ - type:"issue_pk_columns_input!" - } - }, - updateIssues:{ - _append:{ - type:"issue_append_input" - }, - _delete_at_path:{ - type:"issue_delete_at_path_input" - }, - _delete_elem:{ - type:"issue_delete_elem_input" - }, - _delete_key:{ - type:"issue_delete_key_input" - }, - _prepend:{ - type:"issue_prepend_input" - }, - _set:{ - type:"issue_set_input" - }, - where:{ - type:"issue_bool_exp!" - } - }, - updateJob:{ - _append:{ - type:"job_append_input" - }, - _delete_at_path:{ - type:"job_delete_at_path_input" - }, - _delete_elem:{ - type:"job_delete_elem_input" - }, - _delete_key:{ - type:"job_delete_key_input" - }, - _prepend:{ - type:"job_prepend_input" - }, - _set:{ - type:"job_set_input" - }, - pk_columns:{ - type:"job_pk_columns_input!" - } - }, - updateJobMethod:{ - _set:{ - type:"jobMethod_set_input" - }, - pk_columns:{ - type:"jobMethod_pk_columns_input!" - } - }, - updateJobMethods:{ - _set:{ - type:"jobMethod_set_input" - }, - where:{ - type:"jobMethod_bool_exp!" - } - }, - updateJobStatus:{ - _set:{ - type:"jobStatus_set_input" - }, - pk_columns:{ - type:"jobStatus_pk_columns_input!" - } - }, - updateJobStatuses:{ - _set:{ - type:"jobStatus_set_input" - }, - where:{ - type:"jobStatus_bool_exp!" - } - }, - updateJobs:{ - _append:{ - type:"job_append_input" - }, - _delete_at_path:{ - type:"job_delete_at_path_input" - }, - _delete_elem:{ - type:"job_delete_elem_input" - }, - _delete_key:{ - type:"job_delete_key_input" - }, - _prepend:{ - type:"job_prepend_input" - }, - _set:{ - type:"job_set_input" - }, - where:{ - type:"job_bool_exp!" - } - }, - updateLine:{ - _append:{ - type:"line_append_input" - }, - _delete_at_path:{ - type:"line_delete_at_path_input" - }, - _delete_elem:{ - type:"line_delete_elem_input" - }, - _delete_key:{ - type:"line_delete_key_input" - }, - _inc:{ - type:"line_inc_input" - }, - _prepend:{ - type:"line_prepend_input" - }, - _set:{ - type:"line_set_input" - }, - pk_columns:{ - type:"line_pk_columns_input!" - } - }, - updateLines:{ - _append:{ - type:"line_append_input" - }, - _delete_at_path:{ - type:"line_delete_at_path_input" - }, - _delete_elem:{ - type:"line_delete_elem_input" - }, - _delete_key:{ - type:"line_delete_key_input" - }, - _inc:{ - type:"line_inc_input" - }, - _prepend:{ - type:"line_prepend_input" - }, - _set:{ - type:"line_set_input" - }, - where:{ - type:"line_bool_exp!" - } - }, - updateMetric:{ - _append:{ - type:"metric_append_input" - }, - _delete_at_path:{ - type:"metric_delete_at_path_input" - }, - _delete_elem:{ - type:"metric_delete_elem_input" - }, - _delete_key:{ - type:"metric_delete_key_input" - }, - _inc:{ - type:"metric_inc_input" - }, - _prepend:{ - type:"metric_prepend_input" - }, - _set:{ - type:"metric_set_input" - }, - pk_columns:{ - type:"metric_pk_columns_input!" - } - }, - updateMetrics:{ - _append:{ - type:"metric_append_input" - }, - _delete_at_path:{ - type:"metric_delete_at_path_input" - }, - _delete_elem:{ - type:"metric_delete_elem_input" - }, - _delete_key:{ - type:"metric_delete_key_input" - }, - _inc:{ - type:"metric_inc_input" - }, - _prepend:{ - type:"metric_prepend_input" - }, - _set:{ - type:"metric_set_input" - }, - where:{ - type:"metric_bool_exp!" - } - }, - updateNormalizedType:{ - _set:{ - type:"normalizedType_set_input" - }, - pk_columns:{ - type:"normalizedType_pk_columns_input!" - } - }, - updateNormalizedTypes:{ - _set:{ - type:"normalizedType_set_input" - }, - where:{ - type:"normalizedType_bool_exp!" - } - }, - updatePayment:{ - _append:{ - type:"payment_append_input" - }, - _delete_at_path:{ - type:"payment_delete_at_path_input" - }, - _delete_elem:{ - type:"payment_delete_elem_input" - }, - _delete_key:{ - type:"payment_delete_key_input" - }, - _inc:{ - type:"payment_inc_input" - }, - _prepend:{ - type:"payment_prepend_input" - }, - _set:{ - type:"payment_set_input" - }, - pk_columns:{ - type:"payment_pk_columns_input!" - } - }, - updatePaymentStatus:{ - _set:{ - type:"paymentStatus_set_input" - }, - pk_columns:{ - type:"paymentStatus_pk_columns_input!" - } - }, - updatePaymentStatuses:{ - _set:{ - type:"paymentStatus_set_input" - }, - where:{ - type:"paymentStatus_bool_exp!" - } - }, - updatePaymentType:{ - _set:{ - type:"paymentType_set_input" - }, - pk_columns:{ - type:"paymentType_pk_columns_input!" - } - }, - updatePaymentTypes:{ - _set:{ - type:"paymentType_set_input" - }, - where:{ - type:"paymentType_bool_exp!" - } - }, - updatePayments:{ - _append:{ - type:"payment_append_input" - }, - _delete_at_path:{ - type:"payment_delete_at_path_input" - }, - _delete_elem:{ - type:"payment_delete_elem_input" - }, - _delete_key:{ - type:"payment_delete_key_input" - }, - _inc:{ - type:"payment_inc_input" - }, - _prepend:{ - type:"payment_prepend_input" - }, - _set:{ - type:"payment_set_input" - }, - where:{ - type:"payment_bool_exp!" - } - }, - updateSubclassification:{ - _set:{ - type:"subclassification_set_input" - }, - pk_columns:{ - type:"subclassification_pk_columns_input!" - } - }, - updateSubclassifications:{ - _set:{ - type:"subclassification_set_input" - }, - where:{ - type:"subclassification_bool_exp!" - } - }, - updateTag:{ - _append:{ - type:"tag_append_input" - }, - _delete_at_path:{ - type:"tag_delete_at_path_input" - }, - _delete_elem:{ - type:"tag_delete_elem_input" - }, - _delete_key:{ - type:"tag_delete_key_input" - }, - _prepend:{ - type:"tag_prepend_input" - }, - _set:{ - type:"tag_set_input" - }, - pk_columns:{ - type:"tag_pk_columns_input!" - } - }, - updateTags:{ - _append:{ - type:"tag_append_input" - }, - _delete_at_path:{ - type:"tag_delete_at_path_input" - }, - _delete_elem:{ - type:"tag_delete_elem_input" - }, - _delete_key:{ - type:"tag_delete_key_input" - }, - _prepend:{ - type:"tag_prepend_input" - }, - _set:{ - type:"tag_set_input" - }, - where:{ - type:"tag_bool_exp!" - } - }, - updateTeam:{ - _inc:{ - type:"team_inc_input" - }, - _set:{ - type:"team_set_input" - }, - pk_columns:{ - type:"team_pk_columns_input!" - } - }, - updateTeamUser:{ - _set:{ - type:"teamUser_set_input" - }, - pk_columns:{ - type:"teamUser_pk_columns_input!" - } - }, - updateTeamUsers:{ - _set:{ - type:"teamUser_set_input" - }, - where:{ - type:"teamUser_bool_exp!" - } - }, - updateTeams:{ - _inc:{ - type:"team_inc_input" - }, - _set:{ - type:"team_set_input" - }, - where:{ - type:"team_bool_exp!" - } - }, - updateUnit:{ - _append:{ - type:"unit_append_input" - }, - _delete_at_path:{ - type:"unit_delete_at_path_input" - }, - _delete_elem:{ - type:"unit_delete_elem_input" - }, - _delete_key:{ - type:"unit_delete_key_input" - }, - _prepend:{ - type:"unit_prepend_input" - }, - _set:{ - type:"unit_set_input" - }, - pk_columns:{ - type:"unit_pk_columns_input!" - } - }, - updateUnits:{ - _append:{ - type:"unit_append_input" - }, - _delete_at_path:{ - type:"unit_delete_at_path_input" - }, - _delete_elem:{ - type:"unit_delete_elem_input" - }, - _delete_key:{ - type:"unit_delete_key_input" - }, - _prepend:{ - type:"unit_prepend_input" - }, - _set:{ - type:"unit_set_input" - }, - where:{ - type:"unit_bool_exp!" - } - }, - updateUser:{ - _set:{ - type:"user_set_input" - }, - pk_columns:{ - type:"user_pk_columns_input!" - } - }, - updateUserStatus:{ - _set:{ - type:"userStatus_set_input" - }, - pk_columns:{ - type:"userStatus_pk_columns_input!" - } - }, - updateUserStatuses:{ - _set:{ - type:"userStatus_set_input" - }, - where:{ - type:"userStatus_bool_exp!" - } - }, - updateUsers:{ - _set:{ - type:"user_set_input" - }, - where:{ - type:"user_bool_exp!" - } - }, - updateWebhook:{ - _append:{ - type:"webhook_append_input" - }, - _delete_at_path:{ - type:"webhook_delete_at_path_input" - }, - _delete_elem:{ - type:"webhook_delete_elem_input" - }, - _delete_key:{ - type:"webhook_delete_key_input" - }, - _prepend:{ - type:"webhook_prepend_input" - }, - _set:{ - type:"webhook_set_input" - }, - pk_columns:{ - type:"webhook_pk_columns_input!" - } - }, - updateWebhooks:{ - _append:{ - type:"webhook_append_input" - }, - _delete_at_path:{ - type:"webhook_delete_at_path_input" - }, - _delete_elem:{ - type:"webhook_delete_elem_input" - }, - _delete_key:{ - type:"webhook_delete_key_input" - }, - _prepend:{ - type:"webhook_prepend_input" - }, - _set:{ - type:"webhook_set_input" - }, - where:{ - type:"webhook_bool_exp!" - } - }, - update_booking_channel:{ - _set:{ - type:"booking_channel_set_input" - }, - where:{ - type:"booking_channel_bool_exp!" - } - }, - update_booking_channel_by_pk:{ - _set:{ - type:"booking_channel_set_input" - }, - pk_columns:{ - type:"booking_channel_pk_columns_input!" - } - } - }, - normalized_type_enum: "enum", - normalized_type_enum_comparison_exp:{ - _eq:{ - type:"normalized_type_enum" - }, - _in:{ - type:"[normalized_type_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"normalized_type_enum" - }, - _nin:{ - type:"[normalized_type_enum]!" - } - }, - normalizedType_aggregate_fields:{ - count:{ - columns:{ - type:"[normalizedType_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - normalizedType_bool_exp:{ - _and:{ - type:"[normalizedType_bool_exp]!" - }, - _not:{ - type:"normalizedType_bool_exp" - }, - _or:{ - type:"[normalizedType_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - normalizedType_constraint: "enum", - normalizedType_insert_input:{ - name:{ - type:"String" - } - }, - normalizedType_on_conflict:{ - constraint:{ - type:"normalizedType_constraint!" - }, - update_columns:{ - type:"[normalizedType_update_column!]!" - }, - where:{ - type:"normalizedType_bool_exp" - } - }, - normalizedType_order_by:{ - name:{ - type:"order_by" - } - }, - normalizedType_pk_columns_input:{ - name:{ - type:"String!" - } - }, - normalizedType_select_column: "enum", - normalizedType_set_input:{ - name:{ - type:"String" - } - }, - normalizedType_update_column: "enum", - numeric: "String", - numeric_comparison_exp:{ - _eq:{ - type:"numeric" - }, - _gt:{ - type:"numeric" - }, - _gte:{ - type:"numeric" - }, - _in:{ - type:"[numeric]!" - }, - _is_null:{ - type:"Boolean" - }, - _lt:{ - type:"numeric" - }, - _lte:{ - type:"numeric" - }, - _neq:{ - type:"numeric" - }, - _nin:{ - type:"[numeric]!" - } - }, - order_by: "enum", - payment:{ - lines:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - lines_aggregate:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - metadata:{ - path:{ - type:"String" - } - }, - tags:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - tags_aggregate:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - } - }, - payment_aggregate_fields:{ - count:{ - columns:{ - type:"[payment_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - payment_aggregate_order_by:{ - avg:{ - type:"payment_avg_order_by" - }, - count:{ - type:"order_by" - }, - max:{ - type:"payment_max_order_by" - }, - min:{ - type:"payment_min_order_by" - }, - stddev:{ - type:"payment_stddev_order_by" - }, - stddev_pop:{ - type:"payment_stddev_pop_order_by" - }, - stddev_samp:{ - type:"payment_stddev_samp_order_by" - }, - sum:{ - type:"payment_sum_order_by" - }, - var_pop:{ - type:"payment_var_pop_order_by" - }, - var_samp:{ - type:"payment_var_samp_order_by" - }, - variance:{ - type:"payment_variance_order_by" - } - }, - payment_append_input:{ - metadata:{ - type:"jsonb" - } - }, - payment_arr_rel_insert_input:{ - data:{ - type:"[payment_insert_input!]!" - }, - on_conflict:{ - type:"payment_on_conflict" - } - }, - payment_avg_order_by:{ - centTotal:{ - type:"order_by" - } - }, - payment_bool_exp:{ - _and:{ - type:"[payment_bool_exp]!" - }, - _not:{ - type:"payment_bool_exp" - }, - _or:{ - type:"[payment_bool_exp]!" - }, - arrivesAt:{ - type:"timestamptz_comparison_exp" - }, - centTotal:{ - type:"Int_comparison_exp" - }, - connection:{ - type:"connection_bool_exp" - }, - connectionId:{ - type:"uuid_comparison_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - currency:{ - type:"currency_enum_comparison_exp" - }, - description:{ - type:"String_comparison_exp" - }, - entity:{ - type:"entity_bool_exp" - }, - entityId:{ - type:"uuid_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - lines:{ - type:"line_bool_exp" - }, - metadata:{ - type:"jsonb_comparison_exp" - }, - paidAt:{ - type:"timestamptz_comparison_exp" - }, - status:{ - type:"payment_status_enum_comparison_exp" - }, - tags:{ - type:"tag_bool_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - type:{ - type:"String_comparison_exp" - }, - uniqueRef:{ - type:"String_comparison_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - } - }, - payment_constraint: "enum", - payment_delete_at_path_input:{ - metadata:{ - type:"[String]!" - } - }, - payment_delete_elem_input:{ - metadata:{ - type:"Int" - } - }, - payment_delete_key_input:{ - metadata:{ - type:"String" - } - }, - payment_inc_input:{ - centTotal:{ - type:"Int" - } - }, - payment_insert_input:{ - arrivesAt:{ - type:"timestamptz" - }, - centTotal:{ - type:"Int" - }, - connection:{ - type:"connection_obj_rel_insert_input" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - currency:{ - type:"currency_enum" - }, - description:{ - type:"String" - }, - entity:{ - type:"entity_obj_rel_insert_input" - }, - entityId:{ - type:"uuid" - }, - id:{ - type:"uuid" - }, - lines:{ - type:"line_arr_rel_insert_input" - }, - metadata:{ - type:"jsonb" - }, - paidAt:{ - type:"timestamptz" - }, - status:{ - type:"payment_status_enum" - }, - tags:{ - type:"tag_arr_rel_insert_input" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - updatedAt:{ - type:"timestamptz" - } - }, - payment_max_order_by:{ - arrivesAt:{ - type:"order_by" - }, - centTotal:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - description:{ - type:"order_by" - }, - entityId:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - paidAt:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - payment_min_order_by:{ - arrivesAt:{ - type:"order_by" - }, - centTotal:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - description:{ - type:"order_by" - }, - entityId:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - paidAt:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - payment_obj_rel_insert_input:{ - data:{ - type:"payment_insert_input!" - }, - on_conflict:{ - type:"payment_on_conflict" - } - }, - payment_on_conflict:{ - constraint:{ - type:"payment_constraint!" - }, - update_columns:{ - type:"[payment_update_column!]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - payment_order_by:{ - arrivesAt:{ - type:"order_by" - }, - centTotal:{ - type:"order_by" - }, - connection:{ - type:"connection_order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - currency:{ - type:"order_by" - }, - description:{ - type:"order_by" - }, - entity:{ - type:"entity_order_by" - }, - entityId:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - lines_aggregate:{ - type:"line_aggregate_order_by" - }, - metadata:{ - type:"order_by" - }, - paidAt:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - tags_aggregate:{ - type:"tag_aggregate_order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - payment_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - payment_prepend_input:{ - metadata:{ - type:"jsonb" - } - }, - payment_select_column: "enum", - payment_set_input:{ - arrivesAt:{ - type:"timestamptz" - }, - centTotal:{ - type:"Int" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - currency:{ - type:"currency_enum" - }, - description:{ - type:"String" - }, - entityId:{ - type:"uuid" - }, - id:{ - type:"uuid" - }, - metadata:{ - type:"jsonb" - }, - paidAt:{ - type:"timestamptz" - }, - status:{ - type:"payment_status_enum" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - updatedAt:{ - type:"timestamptz" - } - }, - payment_status_enum: "enum", - payment_status_enum_comparison_exp:{ - _eq:{ - type:"payment_status_enum" - }, - _in:{ - type:"[payment_status_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"payment_status_enum" - }, - _nin:{ - type:"[payment_status_enum]!" - } - }, - payment_stddev_order_by:{ - centTotal:{ - type:"order_by" - } - }, - payment_stddev_pop_order_by:{ - centTotal:{ - type:"order_by" - } - }, - payment_stddev_samp_order_by:{ - centTotal:{ - type:"order_by" - } - }, - payment_sum_order_by:{ - centTotal:{ - type:"order_by" - } - }, - payment_update_column: "enum", - payment_var_pop_order_by:{ - centTotal:{ - type:"order_by" - } - }, - payment_var_samp_order_by:{ - centTotal:{ - type:"order_by" - } - }, - payment_variance_order_by:{ - centTotal:{ - type:"order_by" - } - }, - paymentStatus_aggregate_fields:{ - count:{ - columns:{ - type:"[paymentStatus_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - paymentStatus_bool_exp:{ - _and:{ - type:"[paymentStatus_bool_exp]!" - }, - _not:{ - type:"paymentStatus_bool_exp" - }, - _or:{ - type:"[paymentStatus_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - paymentStatus_constraint: "enum", - paymentStatus_insert_input:{ - name:{ - type:"String" - } - }, - paymentStatus_on_conflict:{ - constraint:{ - type:"paymentStatus_constraint!" - }, - update_columns:{ - type:"[paymentStatus_update_column!]!" - }, - where:{ - type:"paymentStatus_bool_exp" - } - }, - paymentStatus_order_by:{ - name:{ - type:"order_by" - } - }, - paymentStatus_pk_columns_input:{ - name:{ - type:"String!" - } - }, - paymentStatus_select_column: "enum", - paymentStatus_set_input:{ - name:{ - type:"String" - } - }, - paymentStatus_update_column: "enum", - paymentType_aggregate_fields:{ - count:{ - columns:{ - type:"[paymentType_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - paymentType_bool_exp:{ - _and:{ - type:"[paymentType_bool_exp]!" - }, - _not:{ - type:"paymentType_bool_exp" - }, - _or:{ - type:"[paymentType_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - paymentType_constraint: "enum", - paymentType_insert_input:{ - name:{ - type:"String" - } - }, - paymentType_on_conflict:{ - constraint:{ - type:"paymentType_constraint!" - }, - update_columns:{ - type:"[paymentType_update_column!]!" - }, - where:{ - type:"paymentType_bool_exp" - } - }, - paymentType_order_by:{ - name:{ - type:"order_by" - } - }, - paymentType_pk_columns_input:{ - name:{ - type:"String!" - } - }, - paymentType_select_column: "enum", - paymentType_set_input:{ - name:{ - type:"String" - } - }, - paymentType_update_column: "enum", - query_root:{ - aggregateBookingStatuses:{ - distinct_on:{ - type:"[bookingStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[bookingStatus_order_by]!" - }, - where:{ - type:"bookingStatus_bool_exp" - } - }, - aggregateBookings:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - aggregateClassifications:{ - distinct_on:{ - type:"[classification_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[classification_order_by]!" - }, - where:{ - type:"classification_bool_exp" - } - }, - aggregateConnections:{ - distinct_on:{ - type:"[connection_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[connection_order_by]!" - }, - where:{ - type:"connection_bool_exp" - } - }, - aggregateCurrencies:{ - distinct_on:{ - type:"[currency_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[currency_order_by]!" - }, - where:{ - type:"currency_bool_exp" - } - }, - aggregateEntities:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - aggregateEntityStatuses:{ - distinct_on:{ - type:"[entityStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entityStatus_order_by]!" - }, - where:{ - type:"entityStatus_bool_exp" - } - }, - aggregateIntegrationTypes:{ - distinct_on:{ - type:"[integrationType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integrationType_order_by]!" - }, - where:{ - type:"integrationType_bool_exp" - } - }, - aggregateIntegrations:{ - distinct_on:{ - type:"[integration_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integration_order_by]!" - }, - where:{ - type:"integration_bool_exp" - } - }, - aggregateIssues:{ - distinct_on:{ - type:"[issue_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[issue_order_by]!" - }, - where:{ - type:"issue_bool_exp" - } - }, - aggregateJobMethods:{ - distinct_on:{ - type:"[jobMethod_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[jobMethod_order_by]!" - }, - where:{ - type:"jobMethod_bool_exp" - } - }, - aggregateJobStatuses:{ - distinct_on:{ - type:"[jobStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[jobStatus_order_by]!" - }, - where:{ - type:"jobStatus_bool_exp" - } - }, - aggregateJobs:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - }, - aggregateLines:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - aggregateMetrics:{ - distinct_on:{ - type:"[metric_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[metric_order_by]!" - }, - where:{ - type:"metric_bool_exp" - } - }, - aggregateNormalizedTypes:{ - distinct_on:{ - type:"[normalizedType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[normalizedType_order_by]!" - }, - where:{ - type:"normalizedType_bool_exp" - } - }, - aggregatePaymentStatuses:{ - distinct_on:{ - type:"[paymentStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[paymentStatus_order_by]!" - }, - where:{ - type:"paymentStatus_bool_exp" - } - }, - aggregatePaymentTypes:{ - distinct_on:{ - type:"[paymentType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[paymentType_order_by]!" - }, - where:{ - type:"paymentType_bool_exp" - } - }, - aggregatePayments:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - aggregateSubclassifications:{ - distinct_on:{ - type:"[subclassification_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[subclassification_order_by]!" - }, - where:{ - type:"subclassification_bool_exp" - } - }, - aggregateTags:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - aggregateTeamUsers:{ - distinct_on:{ - type:"[teamUser_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[teamUser_order_by]!" - }, - where:{ - type:"teamUser_bool_exp" - } - }, - aggregateTeams:{ - distinct_on:{ - type:"[team_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[team_order_by]!" - }, - where:{ - type:"team_bool_exp" - } - }, - aggregateUnits:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - }, - aggregateUserStatuses:{ - distinct_on:{ - type:"[userStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[userStatus_order_by]!" - }, - where:{ - type:"userStatus_bool_exp" - } - }, - aggregateUsers:{ - distinct_on:{ - type:"[user_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[user_order_by]!" - }, - where:{ - type:"user_bool_exp" - } - }, - aggregateWebhooks:{ - distinct_on:{ - type:"[webhook_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[webhook_order_by]!" - }, - where:{ - type:"webhook_bool_exp" - } - }, - booking:{ - id:{ - type:"uuid!" - } - }, - bookingStatus:{ - name:{ - type:"String!" - } - }, - bookingStatuses:{ - distinct_on:{ - type:"[bookingStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[bookingStatus_order_by]!" - }, - where:{ - type:"bookingStatus_bool_exp" - } - }, - booking_channel:{ - distinct_on:{ - type:"[booking_channel_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_channel_order_by]!" - }, - where:{ - type:"booking_channel_bool_exp" - } - }, - booking_channel_aggregate:{ - distinct_on:{ - type:"[booking_channel_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_channel_order_by]!" - }, - where:{ - type:"booking_channel_bool_exp" - } - }, - booking_channel_by_pk:{ - name:{ - type:"String!" - } - }, - bookings:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - classification:{ - name:{ - type:"String!" - } - }, - classifications:{ - distinct_on:{ - type:"[classification_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[classification_order_by]!" - }, - where:{ - type:"classification_bool_exp" - } - }, - connection:{ - id:{ - type:"uuid!" - } - }, - connections:{ - distinct_on:{ - type:"[connection_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[connection_order_by]!" - }, - where:{ - type:"connection_bool_exp" - } - }, - currencies:{ - distinct_on:{ - type:"[currency_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[currency_order_by]!" - }, - where:{ - type:"currency_bool_exp" - } - }, - currency:{ - name:{ - type:"String!" - } - }, - entities:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - entity:{ - id:{ - type:"uuid!" - } - }, - entityStatus:{ - name:{ - type:"String!" - } - }, - entityStatuses:{ - distinct_on:{ - type:"[entityStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entityStatus_order_by]!" - }, - where:{ - type:"entityStatus_bool_exp" - } - }, - integration:{ - id:{ - type:"uuid!" - } - }, - integrationType:{ - name:{ - type:"String!" - } - }, - integrationTypes:{ - distinct_on:{ - type:"[integrationType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integrationType_order_by]!" - }, - where:{ - type:"integrationType_bool_exp" - } - }, - integrations:{ - distinct_on:{ - type:"[integration_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integration_order_by]!" - }, - where:{ - type:"integration_bool_exp" - } - }, - issue:{ - id:{ - type:"uuid!" - } - }, - issues:{ - distinct_on:{ - type:"[issue_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[issue_order_by]!" - }, - where:{ - type:"issue_bool_exp" - } - }, - job:{ - id:{ - type:"uuid!" - } - }, - jobMethod:{ - name:{ - type:"String!" - } - }, - jobMethods:{ - distinct_on:{ - type:"[jobMethod_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[jobMethod_order_by]!" - }, - where:{ - type:"jobMethod_bool_exp" - } - }, - jobStatus:{ - name:{ - type:"String!" - } - }, - jobStatuses:{ - distinct_on:{ - type:"[jobStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[jobStatus_order_by]!" - }, - where:{ - type:"jobStatus_bool_exp" - } - }, - jobs:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - }, - line:{ - id:{ - type:"uuid!" - } - }, - lines:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - metric:{ - id:{ - type:"uuid!" - } - }, - metrics:{ - distinct_on:{ - type:"[metric_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[metric_order_by]!" - }, - where:{ - type:"metric_bool_exp" - } - }, - normalizedType:{ - name:{ - type:"String!" - } - }, - normalizedTypes:{ - distinct_on:{ - type:"[normalizedType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[normalizedType_order_by]!" - }, - where:{ - type:"normalizedType_bool_exp" - } - }, - payment:{ - id:{ - type:"uuid!" - } - }, - paymentStatus:{ - name:{ - type:"String!" - } - }, - paymentStatuses:{ - distinct_on:{ - type:"[paymentStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[paymentStatus_order_by]!" - }, - where:{ - type:"paymentStatus_bool_exp" - } - }, - paymentType:{ - name:{ - type:"String!" - } - }, - paymentTypes:{ - distinct_on:{ - type:"[paymentType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[paymentType_order_by]!" - }, - where:{ - type:"paymentType_bool_exp" - } - }, - payments:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - subclassification:{ - name:{ - type:"String!" - } - }, - subclassifications:{ - distinct_on:{ - type:"[subclassification_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[subclassification_order_by]!" - }, - where:{ - type:"subclassification_bool_exp" - } - }, - tag:{ - id:{ - type:"uuid!" - } - }, - tags:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - team:{ - id:{ - type:"uuid!" - } - }, - teamUser:{ - id:{ - type:"uuid!" - } - }, - teamUsers:{ - distinct_on:{ - type:"[teamUser_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[teamUser_order_by]!" - }, - where:{ - type:"teamUser_bool_exp" - } - }, - teams:{ - distinct_on:{ - type:"[team_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[team_order_by]!" - }, - where:{ - type:"team_bool_exp" - } - }, - unit:{ - id:{ - type:"uuid!" - } - }, - units:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - }, - user:{ - id:{ - type:"uuid!" - } - }, - userStatus:{ - name:{ - type:"String!" - } - }, - userStatuses:{ - distinct_on:{ - type:"[userStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[userStatus_order_by]!" - }, - where:{ - type:"userStatus_bool_exp" - } - }, - users:{ - distinct_on:{ - type:"[user_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[user_order_by]!" - }, - where:{ - type:"user_bool_exp" - } - }, - webhook:{ - id:{ - type:"uuid!" - } - }, - webhooks:{ - distinct_on:{ - type:"[webhook_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[webhook_order_by]!" - }, - where:{ - type:"webhook_bool_exp" - } - } - }, - String_comparison_exp:{ - _eq:{ - type:"String" - }, - _gt:{ - type:"String" - }, - _gte:{ - type:"String" - }, - _ilike:{ - type:"String" - }, - _in:{ - type:"[String]!" - }, - _iregex:{ - type:"String" - }, - _is_null:{ - type:"Boolean" - }, - _like:{ - type:"String" - }, - _lt:{ - type:"String" - }, - _lte:{ - type:"String" - }, - _neq:{ - type:"String" - }, - _nilike:{ - type:"String" - }, - _nin:{ - type:"[String]!" - }, - _niregex:{ - type:"String" - }, - _nlike:{ - type:"String" - }, - _nregex:{ - type:"String" - }, - _nsimilar:{ - type:"String" - }, - _regex:{ - type:"String" - }, - _similar:{ - type:"String" - } - }, - subclassification_aggregate_fields:{ - count:{ - columns:{ - type:"[subclassification_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - subclassification_bool_exp:{ - _and:{ - type:"[subclassification_bool_exp]!" - }, - _not:{ - type:"subclassification_bool_exp" - }, - _or:{ - type:"[subclassification_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - subclassification_constraint: "enum", - subclassification_enum: "enum", - subclassification_enum_comparison_exp:{ - _eq:{ - type:"subclassification_enum" - }, - _in:{ - type:"[subclassification_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"subclassification_enum" - }, - _nin:{ - type:"[subclassification_enum]!" - } - }, - subclassification_insert_input:{ - name:{ - type:"String" - } - }, - subclassification_on_conflict:{ - constraint:{ - type:"subclassification_constraint!" - }, - update_columns:{ - type:"[subclassification_update_column!]!" - }, - where:{ - type:"subclassification_bool_exp" - } - }, - subclassification_order_by:{ - name:{ - type:"order_by" - } - }, - subclassification_pk_columns_input:{ - name:{ - type:"String!" - } - }, - subclassification_select_column: "enum", - subclassification_set_input:{ - name:{ - type:"String" - } - }, - subclassification_update_column: "enum", - subscription_root:{ - aggregateBookingStatuses:{ - distinct_on:{ - type:"[bookingStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[bookingStatus_order_by]!" - }, - where:{ - type:"bookingStatus_bool_exp" - } - }, - aggregateBookings:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - aggregateClassifications:{ - distinct_on:{ - type:"[classification_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[classification_order_by]!" - }, - where:{ - type:"classification_bool_exp" - } - }, - aggregateConnections:{ - distinct_on:{ - type:"[connection_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[connection_order_by]!" - }, - where:{ - type:"connection_bool_exp" - } - }, - aggregateCurrencies:{ - distinct_on:{ - type:"[currency_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[currency_order_by]!" - }, - where:{ - type:"currency_bool_exp" - } - }, - aggregateEntities:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - aggregateEntityStatuses:{ - distinct_on:{ - type:"[entityStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entityStatus_order_by]!" - }, - where:{ - type:"entityStatus_bool_exp" - } - }, - aggregateIntegrationTypes:{ - distinct_on:{ - type:"[integrationType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integrationType_order_by]!" - }, - where:{ - type:"integrationType_bool_exp" - } - }, - aggregateIntegrations:{ - distinct_on:{ - type:"[integration_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integration_order_by]!" - }, - where:{ - type:"integration_bool_exp" - } - }, - aggregateIssues:{ - distinct_on:{ - type:"[issue_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[issue_order_by]!" - }, - where:{ - type:"issue_bool_exp" - } - }, - aggregateJobMethods:{ - distinct_on:{ - type:"[jobMethod_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[jobMethod_order_by]!" - }, - where:{ - type:"jobMethod_bool_exp" - } - }, - aggregateJobStatuses:{ - distinct_on:{ - type:"[jobStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[jobStatus_order_by]!" - }, - where:{ - type:"jobStatus_bool_exp" - } - }, - aggregateJobs:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - }, - aggregateLines:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - aggregateMetrics:{ - distinct_on:{ - type:"[metric_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[metric_order_by]!" - }, - where:{ - type:"metric_bool_exp" - } - }, - aggregateNormalizedTypes:{ - distinct_on:{ - type:"[normalizedType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[normalizedType_order_by]!" - }, - where:{ - type:"normalizedType_bool_exp" - } - }, - aggregatePaymentStatuses:{ - distinct_on:{ - type:"[paymentStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[paymentStatus_order_by]!" - }, - where:{ - type:"paymentStatus_bool_exp" - } - }, - aggregatePaymentTypes:{ - distinct_on:{ - type:"[paymentType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[paymentType_order_by]!" - }, - where:{ - type:"paymentType_bool_exp" - } - }, - aggregatePayments:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - aggregateSubclassifications:{ - distinct_on:{ - type:"[subclassification_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[subclassification_order_by]!" - }, - where:{ - type:"subclassification_bool_exp" - } - }, - aggregateTags:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - aggregateTeamUsers:{ - distinct_on:{ - type:"[teamUser_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[teamUser_order_by]!" - }, - where:{ - type:"teamUser_bool_exp" - } - }, - aggregateTeams:{ - distinct_on:{ - type:"[team_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[team_order_by]!" - }, - where:{ - type:"team_bool_exp" - } - }, - aggregateUnits:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - }, - aggregateUserStatuses:{ - distinct_on:{ - type:"[userStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[userStatus_order_by]!" - }, - where:{ - type:"userStatus_bool_exp" - } - }, - aggregateUsers:{ - distinct_on:{ - type:"[user_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[user_order_by]!" - }, - where:{ - type:"user_bool_exp" - } - }, - aggregateWebhooks:{ - distinct_on:{ - type:"[webhook_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[webhook_order_by]!" - }, - where:{ - type:"webhook_bool_exp" - } - }, - booking:{ - id:{ - type:"uuid!" - } - }, - bookingStatus:{ - name:{ - type:"String!" - } - }, - bookingStatuses:{ - distinct_on:{ - type:"[bookingStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[bookingStatus_order_by]!" - }, - where:{ - type:"bookingStatus_bool_exp" - } - }, - booking_channel:{ - distinct_on:{ - type:"[booking_channel_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_channel_order_by]!" - }, - where:{ - type:"booking_channel_bool_exp" - } - }, - booking_channel_aggregate:{ - distinct_on:{ - type:"[booking_channel_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_channel_order_by]!" - }, - where:{ - type:"booking_channel_bool_exp" - } - }, - booking_channel_by_pk:{ - name:{ - type:"String!" - } - }, - bookings:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - classification:{ - name:{ - type:"String!" - } - }, - classifications:{ - distinct_on:{ - type:"[classification_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[classification_order_by]!" - }, - where:{ - type:"classification_bool_exp" - } - }, - connection:{ - id:{ - type:"uuid!" - } - }, - connections:{ - distinct_on:{ - type:"[connection_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[connection_order_by]!" - }, - where:{ - type:"connection_bool_exp" - } - }, - currencies:{ - distinct_on:{ - type:"[currency_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[currency_order_by]!" - }, - where:{ - type:"currency_bool_exp" - } - }, - currency:{ - name:{ - type:"String!" - } - }, - entities:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - entity:{ - id:{ - type:"uuid!" - } - }, - entityStatus:{ - name:{ - type:"String!" - } - }, - entityStatuses:{ - distinct_on:{ - type:"[entityStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entityStatus_order_by]!" - }, - where:{ - type:"entityStatus_bool_exp" - } - }, - integration:{ - id:{ - type:"uuid!" - } - }, - integrationType:{ - name:{ - type:"String!" - } - }, - integrationTypes:{ - distinct_on:{ - type:"[integrationType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integrationType_order_by]!" - }, - where:{ - type:"integrationType_bool_exp" - } - }, - integrations:{ - distinct_on:{ - type:"[integration_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integration_order_by]!" - }, - where:{ - type:"integration_bool_exp" - } - }, - issue:{ - id:{ - type:"uuid!" - } - }, - issues:{ - distinct_on:{ - type:"[issue_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[issue_order_by]!" - }, - where:{ - type:"issue_bool_exp" - } - }, - job:{ - id:{ - type:"uuid!" - } - }, - jobMethod:{ - name:{ - type:"String!" - } - }, - jobMethods:{ - distinct_on:{ - type:"[jobMethod_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[jobMethod_order_by]!" - }, - where:{ - type:"jobMethod_bool_exp" - } - }, - jobStatus:{ - name:{ - type:"String!" - } - }, - jobStatuses:{ - distinct_on:{ - type:"[jobStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[jobStatus_order_by]!" - }, - where:{ - type:"jobStatus_bool_exp" - } - }, - jobs:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - }, - line:{ - id:{ - type:"uuid!" - } - }, - lines:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - metric:{ - id:{ - type:"uuid!" - } - }, - metrics:{ - distinct_on:{ - type:"[metric_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[metric_order_by]!" - }, - where:{ - type:"metric_bool_exp" - } - }, - normalizedType:{ - name:{ - type:"String!" - } - }, - normalizedTypes:{ - distinct_on:{ - type:"[normalizedType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[normalizedType_order_by]!" - }, - where:{ - type:"normalizedType_bool_exp" - } - }, - payment:{ - id:{ - type:"uuid!" - } - }, - paymentStatus:{ - name:{ - type:"String!" - } - }, - paymentStatuses:{ - distinct_on:{ - type:"[paymentStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[paymentStatus_order_by]!" - }, - where:{ - type:"paymentStatus_bool_exp" - } - }, - paymentType:{ - name:{ - type:"String!" - } - }, - paymentTypes:{ - distinct_on:{ - type:"[paymentType_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[paymentType_order_by]!" - }, - where:{ - type:"paymentType_bool_exp" - } - }, - payments:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - subclassification:{ - name:{ - type:"String!" - } - }, - subclassifications:{ - distinct_on:{ - type:"[subclassification_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[subclassification_order_by]!" - }, - where:{ - type:"subclassification_bool_exp" - } - }, - tag:{ - id:{ - type:"uuid!" - } - }, - tags:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - team:{ - id:{ - type:"uuid!" - } - }, - teamUser:{ - id:{ - type:"uuid!" - } - }, - teamUsers:{ - distinct_on:{ - type:"[teamUser_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[teamUser_order_by]!" - }, - where:{ - type:"teamUser_bool_exp" - } - }, - teams:{ - distinct_on:{ - type:"[team_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[team_order_by]!" - }, - where:{ - type:"team_bool_exp" - } - }, - unit:{ - id:{ - type:"uuid!" - } - }, - units:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - }, - user:{ - id:{ - type:"uuid!" - } - }, - userStatus:{ - name:{ - type:"String!" - } - }, - userStatuses:{ - distinct_on:{ - type:"[userStatus_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[userStatus_order_by]!" - }, - where:{ - type:"userStatus_bool_exp" - } - }, - users:{ - distinct_on:{ - type:"[user_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[user_order_by]!" - }, - where:{ - type:"user_bool_exp" - } - }, - webhook:{ - id:{ - type:"uuid!" - } - }, - webhooks:{ - distinct_on:{ - type:"[webhook_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[webhook_order_by]!" - }, - where:{ - type:"webhook_bool_exp" - } - } - }, - tag:{ - json:{ - path:{ - type:"String" - } - } - }, - tag_aggregate_fields:{ - count:{ - columns:{ - type:"[tag_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - tag_aggregate_order_by:{ - count:{ - type:"order_by" - }, - max:{ - type:"tag_max_order_by" - }, - min:{ - type:"tag_min_order_by" - } - }, - tag_append_input:{ - json:{ - type:"jsonb" - } - }, - tag_arr_rel_insert_input:{ - data:{ - type:"[tag_insert_input!]!" - }, - on_conflict:{ - type:"tag_on_conflict" - } - }, - tag_bool_exp:{ - _and:{ - type:"[tag_bool_exp]!" - }, - _not:{ - type:"tag_bool_exp" - }, - _or:{ - type:"[tag_bool_exp]!" - }, - booking:{ - type:"booking_bool_exp" - }, - bookingId:{ - type:"uuid_comparison_exp" - }, - connection:{ - type:"connection_bool_exp" - }, - connectionId:{ - type:"uuid_comparison_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - json:{ - type:"jsonb_comparison_exp" - }, - payment:{ - type:"payment_bool_exp" - }, - paymentId:{ - type:"uuid_comparison_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - type:{ - type:"String_comparison_exp" - }, - uniqueRef:{ - type:"String_comparison_exp" - }, - unit:{ - type:"unit_bool_exp" - }, - unitId:{ - type:"uuid_comparison_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - } - }, - tag_constraint: "enum", - tag_delete_at_path_input:{ - json:{ - type:"[String]!" - } - }, - tag_delete_elem_input:{ - json:{ - type:"Int" - } - }, - tag_delete_key_input:{ - json:{ - type:"String" - } - }, - tag_insert_input:{ - booking:{ - type:"booking_obj_rel_insert_input" - }, - bookingId:{ - type:"uuid" - }, - connection:{ - type:"connection_obj_rel_insert_input" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - id:{ - type:"uuid" - }, - json:{ - type:"jsonb" - }, - payment:{ - type:"payment_obj_rel_insert_input" - }, - paymentId:{ - type:"uuid" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - unit:{ - type:"unit_obj_rel_insert_input" - }, - unitId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - } - }, - tag_max_order_by:{ - bookingId:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - paymentId:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - tag_min_order_by:{ - bookingId:{ - type:"order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - paymentId:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - tag_on_conflict:{ - constraint:{ - type:"tag_constraint!" - }, - update_columns:{ - type:"[tag_update_column!]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - tag_order_by:{ - booking:{ - type:"booking_order_by" - }, - bookingId:{ - type:"order_by" - }, - connection:{ - type:"connection_order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - json:{ - type:"order_by" - }, - payment:{ - type:"payment_order_by" - }, - paymentId:{ - type:"order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - type:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - unit:{ - type:"unit_order_by" - }, - unitId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - tag_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - tag_prepend_input:{ - json:{ - type:"jsonb" - } - }, - tag_select_column: "enum", - tag_set_input:{ - bookingId:{ - type:"uuid" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - id:{ - type:"uuid" - }, - json:{ - type:"jsonb" - }, - paymentId:{ - type:"uuid" - }, - teamId:{ - type:"uuid" - }, - type:{ - type:"String" - }, - uniqueRef:{ - type:"String" - }, - unitId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - } - }, - tag_update_column: "enum", - team:{ - bookings:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - bookings_aggregate:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - connections:{ - distinct_on:{ - type:"[connection_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[connection_order_by]!" - }, - where:{ - type:"connection_bool_exp" - } - }, - connections_aggregate:{ - distinct_on:{ - type:"[connection_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[connection_order_by]!" - }, - where:{ - type:"connection_bool_exp" - } - }, - entities:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - entities_aggregate:{ - distinct_on:{ - type:"[entity_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[entity_order_by]!" - }, - where:{ - type:"entity_bool_exp" - } - }, - integrations:{ - distinct_on:{ - type:"[integration_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integration_order_by]!" - }, - where:{ - type:"integration_bool_exp" - } - }, - integrations_aggregate:{ - distinct_on:{ - type:"[integration_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[integration_order_by]!" - }, - where:{ - type:"integration_bool_exp" - } - }, - issues:{ - distinct_on:{ - type:"[issue_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[issue_order_by]!" - }, - where:{ - type:"issue_bool_exp" - } - }, - issues_aggregate:{ - distinct_on:{ - type:"[issue_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[issue_order_by]!" - }, - where:{ - type:"issue_bool_exp" - } - }, - jobs:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - }, - jobs_aggregate:{ - distinct_on:{ - type:"[job_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[job_order_by]!" - }, - where:{ - type:"job_bool_exp" - } - }, - lines:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - lines_aggregate:{ - distinct_on:{ - type:"[line_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[line_order_by]!" - }, - where:{ - type:"line_bool_exp" - } - }, - members:{ - distinct_on:{ - type:"[teamUser_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[teamUser_order_by]!" - }, - where:{ - type:"teamUser_bool_exp" - } - }, - members_aggregate:{ - distinct_on:{ - type:"[teamUser_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[teamUser_order_by]!" - }, - where:{ - type:"teamUser_bool_exp" - } - }, - metrics:{ - distinct_on:{ - type:"[metric_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[metric_order_by]!" - }, - where:{ - type:"metric_bool_exp" - } - }, - metrics_aggregate:{ - distinct_on:{ - type:"[metric_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[metric_order_by]!" - }, - where:{ - type:"metric_bool_exp" - } - }, - payments:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - payments_aggregate:{ - distinct_on:{ - type:"[payment_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[payment_order_by]!" - }, - where:{ - type:"payment_bool_exp" - } - }, - tags:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - tags_aggregate:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - units:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - }, - units_aggregate:{ - distinct_on:{ - type:"[unit_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[unit_order_by]!" - }, - where:{ - type:"unit_bool_exp" - } - }, - webhooks:{ - distinct_on:{ - type:"[webhook_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[webhook_order_by]!" - }, - where:{ - type:"webhook_bool_exp" - } - }, - webhooks_aggregate:{ - distinct_on:{ - type:"[webhook_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[webhook_order_by]!" - }, - where:{ - type:"webhook_bool_exp" - } - } - }, - team_aggregate_fields:{ - count:{ - columns:{ - type:"[team_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - team_bool_exp:{ - _and:{ - type:"[team_bool_exp]!" - }, - _not:{ - type:"team_bool_exp" - }, - _or:{ - type:"[team_bool_exp]!" - }, - address:{ - type:"String_comparison_exp" - }, - bookings:{ - type:"booking_bool_exp" - }, - commissionPercentage:{ - type:"numeric_comparison_exp" - }, - connections:{ - type:"connection_bool_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - email:{ - type:"String_comparison_exp" - }, - entities:{ - type:"entity_bool_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - integrations:{ - type:"integration_bool_exp" - }, - isActive:{ - type:"Boolean_comparison_exp" - }, - isTest:{ - type:"Boolean_comparison_exp" - }, - issues:{ - type:"issue_bool_exp" - }, - jobs:{ - type:"job_bool_exp" - }, - lines:{ - type:"line_bool_exp" - }, - members:{ - type:"teamUser_bool_exp" - }, - metrics:{ - type:"metric_bool_exp" - }, - name:{ - type:"String_comparison_exp" - }, - payments:{ - type:"payment_bool_exp" - }, - stripeId:{ - type:"String_comparison_exp" - }, - stripeSubscriptionItemId:{ - type:"String_comparison_exp" - }, - supportEmail:{ - type:"String_comparison_exp" - }, - supportPhone:{ - type:"String_comparison_exp" - }, - tags:{ - type:"tag_bool_exp" - }, - units:{ - type:"unit_bool_exp" - }, - webhooks:{ - type:"webhook_bool_exp" - }, - website:{ - type:"String_comparison_exp" - } - }, - team_constraint: "enum", - team_inc_input:{ - commissionPercentage:{ - type:"numeric" - } - }, - team_insert_input:{ - address:{ - type:"String" - }, - bookings:{ - type:"booking_arr_rel_insert_input" - }, - commissionPercentage:{ - type:"numeric" - }, - connections:{ - type:"connection_arr_rel_insert_input" - }, - createdAt:{ - type:"timestamptz" - }, - email:{ - type:"String" - }, - entities:{ - type:"entity_arr_rel_insert_input" - }, - id:{ - type:"uuid" - }, - integrations:{ - type:"integration_arr_rel_insert_input" - }, - isActive:{ - type:"Boolean" - }, - isTest:{ - type:"Boolean" - }, - issues:{ - type:"issue_arr_rel_insert_input" - }, - jobs:{ - type:"job_arr_rel_insert_input" - }, - lines:{ - type:"line_arr_rel_insert_input" - }, - members:{ - type:"teamUser_arr_rel_insert_input" - }, - metrics:{ - type:"metric_arr_rel_insert_input" - }, - name:{ - type:"String" - }, - payments:{ - type:"payment_arr_rel_insert_input" - }, - stripeId:{ - type:"String" - }, - stripeSubscriptionItemId:{ - type:"String" - }, - supportEmail:{ - type:"String" - }, - supportPhone:{ - type:"String" - }, - tags:{ - type:"tag_arr_rel_insert_input" - }, - units:{ - type:"unit_arr_rel_insert_input" - }, - webhooks:{ - type:"webhook_arr_rel_insert_input" - }, - website:{ - type:"String" - } - }, - team_obj_rel_insert_input:{ - data:{ - type:"team_insert_input!" - }, - on_conflict:{ - type:"team_on_conflict" - } - }, - team_on_conflict:{ - constraint:{ - type:"team_constraint!" - }, - update_columns:{ - type:"[team_update_column!]!" - }, - where:{ - type:"team_bool_exp" - } - }, - team_order_by:{ - address:{ - type:"order_by" - }, - bookings_aggregate:{ - type:"booking_aggregate_order_by" - }, - commissionPercentage:{ - type:"order_by" - }, - connections_aggregate:{ - type:"connection_aggregate_order_by" - }, - createdAt:{ - type:"order_by" - }, - email:{ - type:"order_by" - }, - entities_aggregate:{ - type:"entity_aggregate_order_by" - }, - id:{ - type:"order_by" - }, - integrations_aggregate:{ - type:"integration_aggregate_order_by" - }, - isActive:{ - type:"order_by" - }, - isTest:{ - type:"order_by" - }, - issues_aggregate:{ - type:"issue_aggregate_order_by" - }, - jobs_aggregate:{ - type:"job_aggregate_order_by" - }, - lines_aggregate:{ - type:"line_aggregate_order_by" - }, - members_aggregate:{ - type:"teamUser_aggregate_order_by" - }, - metrics_aggregate:{ - type:"metric_aggregate_order_by" - }, - name:{ - type:"order_by" - }, - payments_aggregate:{ - type:"payment_aggregate_order_by" - }, - stripeId:{ - type:"order_by" - }, - stripeSubscriptionItemId:{ - type:"order_by" - }, - supportEmail:{ - type:"order_by" - }, - supportPhone:{ - type:"order_by" - }, - tags_aggregate:{ - type:"tag_aggregate_order_by" - }, - units_aggregate:{ - type:"unit_aggregate_order_by" - }, - webhooks_aggregate:{ - type:"webhook_aggregate_order_by" - }, - website:{ - type:"order_by" - } - }, - team_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - team_select_column: "enum", - team_set_input:{ - address:{ - type:"String" - }, - commissionPercentage:{ - type:"numeric" - }, - createdAt:{ - type:"timestamptz" - }, - email:{ - type:"String" - }, - id:{ - type:"uuid" - }, - isActive:{ - type:"Boolean" - }, - isTest:{ - type:"Boolean" - }, - name:{ - type:"String" - }, - stripeId:{ - type:"String" - }, - stripeSubscriptionItemId:{ - type:"String" - }, - supportEmail:{ - type:"String" - }, - supportPhone:{ - type:"String" - }, - website:{ - type:"String" - } - }, - team_update_column: "enum", - teamUser_aggregate_fields:{ - count:{ - columns:{ - type:"[teamUser_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - teamUser_aggregate_order_by:{ - count:{ - type:"order_by" - }, - max:{ - type:"teamUser_max_order_by" - }, - min:{ - type:"teamUser_min_order_by" - } - }, - teamUser_arr_rel_insert_input:{ - data:{ - type:"[teamUser_insert_input!]!" - }, - on_conflict:{ - type:"teamUser_on_conflict" - } - }, - teamUser_bool_exp:{ - _and:{ - type:"[teamUser_bool_exp]!" - }, - _not:{ - type:"teamUser_bool_exp" - }, - _or:{ - type:"[teamUser_bool_exp]!" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - role:{ - type:"String_comparison_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - }, - user:{ - type:"user_bool_exp" - }, - userId:{ - type:"uuid_comparison_exp" - } - }, - teamUser_constraint: "enum", - teamUser_insert_input:{ - createdAt:{ - type:"timestamptz" - }, - id:{ - type:"uuid" - }, - role:{ - type:"String" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - }, - user:{ - type:"user_obj_rel_insert_input" - }, - userId:{ - type:"uuid" - } - }, - teamUser_max_order_by:{ - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - role:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - }, - userId:{ - type:"order_by" - } - }, - teamUser_min_order_by:{ - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - role:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - }, - userId:{ - type:"order_by" - } - }, - teamUser_on_conflict:{ - constraint:{ - type:"teamUser_constraint!" - }, - update_columns:{ - type:"[teamUser_update_column!]!" - }, - where:{ - type:"teamUser_bool_exp" - } - }, - teamUser_order_by:{ - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - role:{ - type:"order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - }, - user:{ - type:"user_order_by" - }, - userId:{ - type:"order_by" - } - }, - teamUser_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - teamUser_select_column: "enum", - teamUser_set_input:{ - createdAt:{ - type:"timestamptz" - }, - id:{ - type:"uuid" - }, - role:{ - type:"String" - }, - teamId:{ - type:"uuid" - }, - updatedAt:{ - type:"timestamptz" - }, - userId:{ - type:"uuid" - } - }, - teamUser_update_column: "enum", - timestamptz: "String", - timestamptz_comparison_exp:{ - _eq:{ - type:"timestamptz" - }, - _gt:{ - type:"timestamptz" - }, - _gte:{ - type:"timestamptz" - }, - _in:{ - type:"[timestamptz]!" - }, - _is_null:{ - type:"Boolean" - }, - _lt:{ - type:"timestamptz" - }, - _lte:{ - type:"timestamptz" - }, - _neq:{ - type:"timestamptz" - }, - _nin:{ - type:"[timestamptz]!" - } - }, - unit:{ - bookings:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - bookings_aggregate:{ - distinct_on:{ - type:"[booking_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[booking_order_by]!" - }, - where:{ - type:"booking_bool_exp" - } - }, - metadata:{ - path:{ - type:"String" - } - }, - tags:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - }, - tags_aggregate:{ - distinct_on:{ - type:"[tag_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[tag_order_by]!" - }, - where:{ - type:"tag_bool_exp" - } - } - }, - unit_aggregate_fields:{ - count:{ - columns:{ - type:"[unit_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - unit_aggregate_order_by:{ - count:{ - type:"order_by" - }, - max:{ - type:"unit_max_order_by" - }, - min:{ - type:"unit_min_order_by" - } - }, - unit_append_input:{ - metadata:{ - type:"jsonb" - } - }, - unit_arr_rel_insert_input:{ - data:{ - type:"[unit_insert_input!]!" - }, - on_conflict:{ - type:"unit_on_conflict" - } - }, - unit_bool_exp:{ - _and:{ - type:"[unit_bool_exp]!" - }, - _not:{ - type:"unit_bool_exp" - }, - _or:{ - type:"[unit_bool_exp]!" - }, - bookings:{ - type:"booking_bool_exp" - }, - connection:{ - type:"connection_bool_exp" - }, - connectionId:{ - type:"uuid_comparison_exp" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - entity:{ - type:"entity_bool_exp" - }, - entityId:{ - type:"uuid_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - metadata:{ - type:"jsonb_comparison_exp" - }, - name:{ - type:"String_comparison_exp" - }, - status:{ - type:"String_comparison_exp" - }, - tags:{ - type:"tag_bool_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - uniqueRef:{ - type:"String_comparison_exp" - }, - updatedAt:{ - type:"timestamptz_comparison_exp" - } - }, - unit_constraint: "enum", - unit_delete_at_path_input:{ - metadata:{ - type:"[String]!" - } - }, - unit_delete_elem_input:{ - metadata:{ - type:"Int" - } - }, - unit_delete_key_input:{ - metadata:{ - type:"String" - } - }, - unit_insert_input:{ - bookings:{ - type:"booking_arr_rel_insert_input" - }, - connection:{ - type:"connection_obj_rel_insert_input" - }, - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - entity:{ - type:"entity_obj_rel_insert_input" - }, - entityId:{ - type:"uuid" - }, - id:{ - type:"uuid" - }, - metadata:{ - type:"jsonb" - }, - name:{ - type:"String" - }, - status:{ - type:"String" - }, - tags:{ - type:"tag_arr_rel_insert_input" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - uniqueRef:{ - type:"String" - }, - updatedAt:{ - type:"timestamptz" - } - }, - unit_max_order_by:{ - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - entityId:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - name:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - unit_min_order_by:{ - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - entityId:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - name:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - unit_obj_rel_insert_input:{ - data:{ - type:"unit_insert_input!" - }, - on_conflict:{ - type:"unit_on_conflict" - } - }, - unit_on_conflict:{ - constraint:{ - type:"unit_constraint!" - }, - update_columns:{ - type:"[unit_update_column!]!" - }, - where:{ - type:"unit_bool_exp" - } - }, - unit_order_by:{ - bookings_aggregate:{ - type:"booking_aggregate_order_by" - }, - connection:{ - type:"connection_order_by" - }, - connectionId:{ - type:"order_by" - }, - createdAt:{ - type:"order_by" - }, - entity:{ - type:"entity_order_by" - }, - entityId:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - metadata:{ - type:"order_by" - }, - name:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - tags_aggregate:{ - type:"tag_aggregate_order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - uniqueRef:{ - type:"order_by" - }, - updatedAt:{ - type:"order_by" - } - }, - unit_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - unit_prepend_input:{ - metadata:{ - type:"jsonb" - } - }, - unit_select_column: "enum", - unit_set_input:{ - connectionId:{ - type:"uuid" - }, - createdAt:{ - type:"timestamptz" - }, - entityId:{ - type:"uuid" - }, - id:{ - type:"uuid" - }, - metadata:{ - type:"jsonb" - }, - name:{ - type:"String" - }, - status:{ - type:"String" - }, - teamId:{ - type:"uuid" - }, - uniqueRef:{ - type:"String" - }, - updatedAt:{ - type:"timestamptz" - } - }, - unit_update_column: "enum", - user:{ - memberships:{ - distinct_on:{ - type:"[teamUser_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[teamUser_order_by]!" - }, - where:{ - type:"teamUser_bool_exp" - } - }, - memberships_aggregate:{ - distinct_on:{ - type:"[teamUser_select_column]!" - }, - limit:{ - type:"Int" - }, - offset:{ - type:"Int" - }, - order_by:{ - type:"[teamUser_order_by]!" - }, - where:{ - type:"teamUser_bool_exp" - } - } - }, - user_aggregate_fields:{ - count:{ - columns:{ - type:"[user_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - user_bool_exp:{ - _and:{ - type:"[user_bool_exp]!" - }, - _not:{ - type:"user_bool_exp" - }, - _or:{ - type:"[user_bool_exp]!" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - email:{ - type:"String_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - isAdmin:{ - type:"Boolean_comparison_exp" - }, - memberships:{ - type:"teamUser_bool_exp" - }, - name:{ - type:"String_comparison_exp" - }, - status:{ - type:"user_status_enum_comparison_exp" - }, - sub:{ - type:"String_comparison_exp" - }, - trialExpiryAt:{ - type:"timestamptz_comparison_exp" - } - }, - user_constraint: "enum", - user_insert_input:{ - createdAt:{ - type:"timestamptz" - }, - email:{ - type:"String" - }, - id:{ - type:"uuid" - }, - isAdmin:{ - type:"Boolean" - }, - memberships:{ - type:"teamUser_arr_rel_insert_input" - }, - name:{ - type:"String" - }, - status:{ - type:"user_status_enum" - }, - sub:{ - type:"String" - }, - trialExpiryAt:{ - type:"timestamptz" - } - }, - user_obj_rel_insert_input:{ - data:{ - type:"user_insert_input!" - }, - on_conflict:{ - type:"user_on_conflict" - } - }, - user_on_conflict:{ - constraint:{ - type:"user_constraint!" - }, - update_columns:{ - type:"[user_update_column!]!" - }, - where:{ - type:"user_bool_exp" - } - }, - user_order_by:{ - createdAt:{ - type:"order_by" - }, - email:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - isAdmin:{ - type:"order_by" - }, - memberships_aggregate:{ - type:"teamUser_aggregate_order_by" - }, - name:{ - type:"order_by" - }, - status:{ - type:"order_by" - }, - sub:{ - type:"order_by" - }, - trialExpiryAt:{ - type:"order_by" - } - }, - user_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - user_select_column: "enum", - user_set_input:{ - createdAt:{ - type:"timestamptz" - }, - email:{ - type:"String" - }, - id:{ - type:"uuid" - }, - isAdmin:{ - type:"Boolean" - }, - name:{ - type:"String" - }, - status:{ - type:"user_status_enum" - }, - sub:{ - type:"String" - }, - trialExpiryAt:{ - type:"timestamptz" - } - }, - user_status_enum: "enum", - user_status_enum_comparison_exp:{ - _eq:{ - type:"user_status_enum" - }, - _in:{ - type:"[user_status_enum]!" - }, - _is_null:{ - type:"Boolean" - }, - _neq:{ - type:"user_status_enum" - }, - _nin:{ - type:"[user_status_enum]!" - } - }, - user_update_column: "enum", - userStatus_aggregate_fields:{ - count:{ - columns:{ - type:"[userStatus_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - userStatus_bool_exp:{ - _and:{ - type:"[userStatus_bool_exp]!" - }, - _not:{ - type:"userStatus_bool_exp" - }, - _or:{ - type:"[userStatus_bool_exp]!" - }, - name:{ - type:"String_comparison_exp" - } - }, - userStatus_constraint: "enum", - userStatus_insert_input:{ - name:{ - type:"String" - } - }, - userStatus_on_conflict:{ - constraint:{ - type:"userStatus_constraint!" - }, - update_columns:{ - type:"[userStatus_update_column!]!" - }, - where:{ - type:"userStatus_bool_exp" - } - }, - userStatus_order_by:{ - name:{ - type:"order_by" - } - }, - userStatus_pk_columns_input:{ - name:{ - type:"String!" - } - }, - userStatus_select_column: "enum", - userStatus_set_input:{ - name:{ - type:"String" - } - }, - userStatus_update_column: "enum", - uuid: "String", - uuid_comparison_exp:{ - _eq:{ - type:"uuid" - }, - _gt:{ - type:"uuid" - }, - _gte:{ - type:"uuid" - }, - _in:{ - type:"[uuid]!" - }, - _is_null:{ - type:"Boolean" - }, - _lt:{ - type:"uuid" - }, - _lte:{ - type:"uuid" - }, - _neq:{ - type:"uuid" - }, - _nin:{ - type:"[uuid]!" - } - }, - webhook:{ - headers:{ - path:{ - type:"String" - } - }, - types:{ - path:{ - type:"String" - } - } - }, - webhook_aggregate_fields:{ - count:{ - columns:{ - type:"[webhook_select_column]!" - }, - distinct:{ - type:"Boolean" - } - } - }, - webhook_aggregate_order_by:{ - count:{ - type:"order_by" - }, - max:{ - type:"webhook_max_order_by" - }, - min:{ - type:"webhook_min_order_by" - } - }, - webhook_append_input:{ - headers:{ - type:"jsonb" - }, - types:{ - type:"jsonb" - } - }, - webhook_arr_rel_insert_input:{ - data:{ - type:"[webhook_insert_input!]!" - }, - on_conflict:{ - type:"webhook_on_conflict" - } - }, - webhook_bool_exp:{ - _and:{ - type:"[webhook_bool_exp]!" - }, - _not:{ - type:"webhook_bool_exp" - }, - _or:{ - type:"[webhook_bool_exp]!" - }, - createdAt:{ - type:"timestamptz_comparison_exp" - }, - headers:{ - type:"jsonb_comparison_exp" - }, - id:{ - type:"uuid_comparison_exp" - }, - team:{ - type:"team_bool_exp" - }, - teamId:{ - type:"uuid_comparison_exp" - }, - types:{ - type:"jsonb_comparison_exp" - }, - types2:{ - type:"_text_comparison_exp" - }, - url:{ - type:"String_comparison_exp" - } - }, - webhook_constraint: "enum", - webhook_delete_at_path_input:{ - headers:{ - type:"[String]!" - }, - types:{ - type:"[String]!" - } - }, - webhook_delete_elem_input:{ - headers:{ - type:"Int" - }, - types:{ - type:"Int" - } - }, - webhook_delete_key_input:{ - headers:{ - type:"String" - }, - types:{ - type:"String" - } - }, - webhook_insert_input:{ - createdAt:{ - type:"timestamptz" - }, - headers:{ - type:"jsonb" - }, - id:{ - type:"uuid" - }, - team:{ - type:"team_obj_rel_insert_input" - }, - teamId:{ - type:"uuid" - }, - types:{ - type:"jsonb" - }, - types2:{ - type:"_text" - }, - url:{ - type:"String" - } - }, - webhook_max_order_by:{ - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - url:{ - type:"order_by" - } - }, - webhook_min_order_by:{ - createdAt:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - teamId:{ - type:"order_by" - }, - url:{ - type:"order_by" - } - }, - webhook_on_conflict:{ - constraint:{ - type:"webhook_constraint!" - }, - update_columns:{ - type:"[webhook_update_column!]!" - }, - where:{ - type:"webhook_bool_exp" - } - }, - webhook_order_by:{ - createdAt:{ - type:"order_by" - }, - headers:{ - type:"order_by" - }, - id:{ - type:"order_by" - }, - team:{ - type:"team_order_by" - }, - teamId:{ - type:"order_by" - }, - types:{ - type:"order_by" - }, - types2:{ - type:"order_by" - }, - url:{ - type:"order_by" - } - }, - webhook_pk_columns_input:{ - id:{ - type:"uuid!" - } - }, - webhook_prepend_input:{ - headers:{ - type:"jsonb" - }, - types:{ - type:"jsonb" - } - }, - webhook_select_column: "enum", - webhook_set_input:{ - createdAt:{ - type:"timestamptz" - }, - headers:{ - type:"jsonb" - }, - id:{ - type:"uuid" - }, - teamId:{ - type:"uuid" - }, - types:{ - type:"jsonb" - }, - types2:{ - type:"_text" - }, - url:{ - type:"String" - } - }, - webhook_update_column: "enum" -} - -export const ReturnTypes: Record = { - cached:{ - ttl:"Int", - refresh:"Boolean" - }, - client:{ - always:"Boolean" - }, - export:{ - as:"String" - }, - connection:{ - key:"String", - filter:"String" - }, - booking:{ - bookedAt:"timestamptz", - bookerName:"String", - bookingChannel:"booking_channel_enum", - checkIn:"timestamptz", - checkOut:"timestamptz", - confirmationCode:"String", - connection:"connection", - connectionId:"uuid", - createdAt:"timestamptz", - currency:"currency_enum", - entity:"entity", - entityId:"uuid", - guestName:"String", - guests:"Int", - id:"uuid", - isOTA:"Boolean", - lines:"line", - lines_aggregate:"line_aggregate", - metadata:"jsonb", - nights:"Int", - otaBooking:"booking", - otaBookingId:"uuid", - relatedBookings:"booking", - relatedBookings_aggregate:"booking_aggregate", - status:"booking_status_enum", - tags:"tag", - tags_aggregate:"tag_aggregate", - team:"team", - teamId:"uuid", - uniqueRef:"String", - unit:"unit", - unitId:"uuid", - updatedAt:"timestamptz" - }, - booking_aggregate:{ - aggregate:"booking_aggregate_fields", - nodes:"booking" - }, - booking_aggregate_fields:{ - avg:"booking_avg_fields", - count:"Int", - max:"booking_max_fields", - min:"booking_min_fields", - stddev:"booking_stddev_fields", - stddev_pop:"booking_stddev_pop_fields", - stddev_samp:"booking_stddev_samp_fields", - sum:"booking_sum_fields", - var_pop:"booking_var_pop_fields", - var_samp:"booking_var_samp_fields", - variance:"booking_variance_fields" - }, - booking_avg_fields:{ - guests:"Float", - nights:"Float" - }, - booking_channel:{ - name:"String" - }, - booking_channel_aggregate:{ - aggregate:"booking_channel_aggregate_fields", - nodes:"booking_channel" - }, - booking_channel_aggregate_fields:{ - count:"Int", - max:"booking_channel_max_fields", - min:"booking_channel_min_fields" - }, - booking_channel_max_fields:{ - name:"String" - }, - booking_channel_min_fields:{ - name:"String" - }, - booking_channel_mutation_response:{ - affected_rows:"Int", - returning:"booking_channel" - }, - booking_max_fields:{ - bookedAt:"timestamptz", - bookerName:"String", - checkIn:"timestamptz", - checkOut:"timestamptz", - confirmationCode:"String", - connectionId:"uuid", - createdAt:"timestamptz", - entityId:"uuid", - guestName:"String", - guests:"Int", - id:"uuid", - nights:"Int", - otaBookingId:"uuid", - teamId:"uuid", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz" - }, - booking_min_fields:{ - bookedAt:"timestamptz", - bookerName:"String", - checkIn:"timestamptz", - checkOut:"timestamptz", - confirmationCode:"String", - connectionId:"uuid", - createdAt:"timestamptz", - entityId:"uuid", - guestName:"String", - guests:"Int", - id:"uuid", - nights:"Int", - otaBookingId:"uuid", - teamId:"uuid", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz" - }, - booking_mutation_response:{ - affected_rows:"Int", - returning:"booking" - }, - booking_stddev_fields:{ - guests:"Float", - nights:"Float" - }, - booking_stddev_pop_fields:{ - guests:"Float", - nights:"Float" - }, - booking_stddev_samp_fields:{ - guests:"Float", - nights:"Float" - }, - booking_sum_fields:{ - guests:"Int", - nights:"Int" - }, - booking_var_pop_fields:{ - guests:"Float", - nights:"Float" - }, - booking_var_samp_fields:{ - guests:"Float", - nights:"Float" - }, - booking_variance_fields:{ - guests:"Float", - nights:"Float" - }, - bookingStatus:{ - name:"String" - }, - bookingStatus_aggregate:{ - aggregate:"bookingStatus_aggregate_fields", - nodes:"bookingStatus" - }, - bookingStatus_aggregate_fields:{ - count:"Int", - max:"bookingStatus_max_fields", - min:"bookingStatus_min_fields" - }, - bookingStatus_max_fields:{ - name:"String" - }, - bookingStatus_min_fields:{ - name:"String" - }, - bookingStatus_mutation_response:{ - affected_rows:"Int", - returning:"bookingStatus" - }, - classification:{ - name:"String" - }, - classification_aggregate:{ - aggregate:"classification_aggregate_fields", - nodes:"classification" - }, - classification_aggregate_fields:{ - count:"Int", - max:"classification_max_fields", - min:"classification_min_fields" - }, - classification_max_fields:{ - name:"String" - }, - classification_min_fields:{ - name:"String" - }, - classification_mutation_response:{ - affected_rows:"Int", - returning:"classification" - }, - connection:{ - bookings:"booking", - bookings_aggregate:"booking_aggregate", - createdAt:"timestamptz", - credentials:"jsonb", - entities:"entity", - entities_aggregate:"entity_aggregate", - id:"uuid", - integration:"integration", - integrationId:"uuid", - jobs:"job", - jobs_aggregate:"job_aggregate", - lines:"line", - lines_aggregate:"line_aggregate", - metrics:"metric", - metrics_aggregate:"metric_aggregate", - name:"String", - payments:"payment", - payments_aggregate:"payment_aggregate", - persistentState:"jsonb", - status:"String", - tags:"tag", - tags_aggregate:"tag_aggregate", - team:"team", - teamId:"uuid", - units:"unit", - units_aggregate:"unit_aggregate", - webhookKey:"String" - }, - connection_aggregate:{ - aggregate:"connection_aggregate_fields", - nodes:"connection" - }, - connection_aggregate_fields:{ - count:"Int", - max:"connection_max_fields", - min:"connection_min_fields" - }, - connection_max_fields:{ - createdAt:"timestamptz", - id:"uuid", - integrationId:"uuid", - name:"String", - status:"String", - teamId:"uuid", - webhookKey:"String" - }, - connection_min_fields:{ - createdAt:"timestamptz", - id:"uuid", - integrationId:"uuid", - name:"String", - status:"String", - teamId:"uuid", - webhookKey:"String" - }, - connection_mutation_response:{ - affected_rows:"Int", - returning:"connection" - }, - currency:{ - name:"String" - }, - currency_aggregate:{ - aggregate:"currency_aggregate_fields", - nodes:"currency" - }, - currency_aggregate_fields:{ - count:"Int", - max:"currency_max_fields", - min:"currency_min_fields" - }, - currency_max_fields:{ - name:"String" - }, - currency_min_fields:{ - name:"String" - }, - currency_mutation_response:{ - affected_rows:"Int", - returning:"currency" - }, - entity:{ - bookings:"booking", - bookings_aggregate:"booking_aggregate", - connection:"connection", - connectionId:"uuid", - createdAt:"timestamptz", - description:"String", - diffJson:"jsonb", - hash:"String", - id:"uuid", - job:"job", - jobId:"uuid", - json:"jsonb", - normalizedJson:"jsonb", - normalizedType:"normalized_type_enum", - parsedAt:"timestamptz", - payments:"payment", - payments_aggregate:"payment_aggregate", - predecessorEntity:"entity", - predecessorEntityId:"uuid", - status:"entity_status_enum", - statusText:"String", - successorEntities:"entity", - successorEntities_aggregate:"entity_aggregate", - team:"team", - teamId:"uuid", - type:"String", - uniqueRef:"String", - units:"unit", - units_aggregate:"unit_aggregate", - updatedAt:"timestamptz" - }, - entity_aggregate:{ - aggregate:"entity_aggregate_fields", - nodes:"entity" - }, - entity_aggregate_fields:{ - count:"Int", - max:"entity_max_fields", - min:"entity_min_fields" - }, - entity_max_fields:{ - connectionId:"uuid", - createdAt:"timestamptz", - description:"String", - hash:"String", - id:"uuid", - jobId:"uuid", - parsedAt:"timestamptz", - predecessorEntityId:"uuid", - statusText:"String", - teamId:"uuid", - type:"String", - uniqueRef:"String", - updatedAt:"timestamptz" - }, - entity_min_fields:{ - connectionId:"uuid", - createdAt:"timestamptz", - description:"String", - hash:"String", - id:"uuid", - jobId:"uuid", - parsedAt:"timestamptz", - predecessorEntityId:"uuid", - statusText:"String", - teamId:"uuid", - type:"String", - uniqueRef:"String", - updatedAt:"timestamptz" - }, - entity_mutation_response:{ - affected_rows:"Int", - returning:"entity" - }, - entityStatus:{ - name:"String" - }, - entityStatus_aggregate:{ - aggregate:"entityStatus_aggregate_fields", - nodes:"entityStatus" - }, - entityStatus_aggregate_fields:{ - count:"Int", - max:"entityStatus_max_fields", - min:"entityStatus_min_fields" - }, - entityStatus_max_fields:{ - name:"String" - }, - entityStatus_min_fields:{ - name:"String" - }, - entityStatus_mutation_response:{ - affected_rows:"Int", - returning:"entityStatus" - }, - integration:{ - apiDevUrl:"String", - apiUrl:"String", - connections:"connection", - connections_aggregate:"connection_aggregate", - icon:"String", - id:"uuid", - isApproved:"Boolean", - isPrivate:"Boolean", - jobs:"job", - jobs_aggregate:"job_aggregate", - name:"String", - team:"team", - teamId:"uuid", - type:"integration_type_enum", - uniqueRef:"String" - }, - integration_aggregate:{ - aggregate:"integration_aggregate_fields", - nodes:"integration" - }, - integration_aggregate_fields:{ - count:"Int", - max:"integration_max_fields", - min:"integration_min_fields" - }, - integration_max_fields:{ - apiDevUrl:"String", - apiUrl:"String", - icon:"String", - id:"uuid", - name:"String", - teamId:"uuid", - uniqueRef:"String" - }, - integration_min_fields:{ - apiDevUrl:"String", - apiUrl:"String", - icon:"String", - id:"uuid", - name:"String", - teamId:"uuid", - uniqueRef:"String" - }, - integration_mutation_response:{ - affected_rows:"Int", - returning:"integration" - }, - integrationType:{ - name:"String" - }, - integrationType_aggregate:{ - aggregate:"integrationType_aggregate_fields", - nodes:"integrationType" - }, - integrationType_aggregate_fields:{ - count:"Int", - max:"integrationType_max_fields", - min:"integrationType_min_fields" - }, - integrationType_max_fields:{ - name:"String" - }, - integrationType_min_fields:{ - name:"String" - }, - integrationType_mutation_response:{ - affected_rows:"Int", - returning:"integrationType" - }, - issue:{ - code:"String", - createdAt:"timestamptz", - id:"uuid", - isPublic:"Boolean", - isResolved:"Boolean", - job:"job", - jobId:"uuid", - message:"String", - requestParams:"jsonb", - resolveParams:"jsonb", - team:"team", - teamId:"uuid", - type:"String", - updatedAt:"timestamptz" - }, - issue_aggregate:{ - aggregate:"issue_aggregate_fields", - nodes:"issue" - }, - issue_aggregate_fields:{ - count:"Int", - max:"issue_max_fields", - min:"issue_min_fields" - }, - issue_max_fields:{ - code:"String", - createdAt:"timestamptz", - id:"uuid", - jobId:"uuid", - message:"String", - teamId:"uuid", - type:"String", - updatedAt:"timestamptz" - }, - issue_min_fields:{ - code:"String", - createdAt:"timestamptz", - id:"uuid", - jobId:"uuid", - message:"String", - teamId:"uuid", - type:"String", - updatedAt:"timestamptz" - }, - issue_mutation_response:{ - affected_rows:"Int", - returning:"issue" - }, - job:{ - apiVersion:"String", - connection:"connection", - connectionId:"uuid", - createdAt:"timestamptz", - endedAt:"timestamptz", - entities:"entity", - entities_aggregate:"entity_aggregate", - id:"uuid", - integration:"integration", - integrationId:"uuid", - integrationSdkVersion:"String", - integrationVersion:"String", - issues:"issue", - issues_aggregate:"issue_aggregate", - logFile:"String", - logLink:"String", - logs:"jsonb", - method:"job_method_enum", - params:"jsonb", - requestId:"String", - response:"jsonb", - sdkVersion:"String", - startedAt:"timestamptz", - status:"job_status_enum", - team:"team", - teamId:"uuid", - updatedAt:"timestamptz" - }, - job_aggregate:{ - aggregate:"job_aggregate_fields", - nodes:"job" - }, - job_aggregate_fields:{ - count:"Int", - max:"job_max_fields", - min:"job_min_fields" - }, - job_max_fields:{ - apiVersion:"String", - connectionId:"uuid", - createdAt:"timestamptz", - endedAt:"timestamptz", - id:"uuid", - integrationId:"uuid", - integrationSdkVersion:"String", - integrationVersion:"String", - logFile:"String", - logLink:"String", - requestId:"String", - sdkVersion:"String", - startedAt:"timestamptz", - teamId:"uuid", - updatedAt:"timestamptz" - }, - job_min_fields:{ - apiVersion:"String", - connectionId:"uuid", - createdAt:"timestamptz", - endedAt:"timestamptz", - id:"uuid", - integrationId:"uuid", - integrationSdkVersion:"String", - integrationVersion:"String", - logFile:"String", - logLink:"String", - requestId:"String", - sdkVersion:"String", - startedAt:"timestamptz", - teamId:"uuid", - updatedAt:"timestamptz" - }, - job_mutation_response:{ - affected_rows:"Int", - returning:"job" - }, - jobMethod:{ - name:"String" - }, - jobMethod_aggregate:{ - aggregate:"jobMethod_aggregate_fields", - nodes:"jobMethod" - }, - jobMethod_aggregate_fields:{ - count:"Int", - max:"jobMethod_max_fields", - min:"jobMethod_min_fields" - }, - jobMethod_max_fields:{ - name:"String" - }, - jobMethod_min_fields:{ - name:"String" - }, - jobMethod_mutation_response:{ - affected_rows:"Int", - returning:"jobMethod" - }, - jobStatus:{ - name:"String" - }, - jobStatus_aggregate:{ - aggregate:"jobStatus_aggregate_fields", - nodes:"jobStatus" - }, - jobStatus_aggregate_fields:{ - count:"Int", - max:"jobStatus_max_fields", - min:"jobStatus_min_fields" - }, - jobStatus_max_fields:{ - name:"String" - }, - jobStatus_min_fields:{ - name:"String" - }, - jobStatus_mutation_response:{ - affected_rows:"Int", - returning:"jobStatus" - }, - line:{ - booking:"booking", - bookingId:"uuid", - centTotal:"Int", - classification:"classification_enum", - connection:"connection", - connectionId:"uuid", - createdAt:"timestamptz", - description:"String", - enhancementLines:"line", - enhancementLines_aggregate:"line_aggregate", - enhancingLine:"line", - enhancingLineId:"uuid", - id:"uuid", - invoiceStatus:"String", - isEnhanced:"Boolean", - metadata:"jsonb", - originCentTotal:"Int", - originCurrency:"String", - originExchangeRate:"numeric", - payment:"payment", - paymentId:"uuid", - subclassification:"subclassification_enum", - team:"team", - teamId:"uuid", - type:"String", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz" - }, - line_aggregate:{ - aggregate:"line_aggregate_fields", - nodes:"line" - }, - line_aggregate_fields:{ - avg:"line_avg_fields", - count:"Int", - max:"line_max_fields", - min:"line_min_fields", - stddev:"line_stddev_fields", - stddev_pop:"line_stddev_pop_fields", - stddev_samp:"line_stddev_samp_fields", - sum:"line_sum_fields", - var_pop:"line_var_pop_fields", - var_samp:"line_var_samp_fields", - variance:"line_variance_fields" - }, - line_avg_fields:{ - centTotal:"Float", - originCentTotal:"Float", - originExchangeRate:"Float" - }, - line_max_fields:{ - bookingId:"uuid", - centTotal:"Int", - connectionId:"uuid", - createdAt:"timestamptz", - description:"String", - enhancingLineId:"uuid", - id:"uuid", - invoiceStatus:"String", - originCentTotal:"Int", - originCurrency:"String", - originExchangeRate:"numeric", - paymentId:"uuid", - teamId:"uuid", - type:"String", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz" - }, - line_min_fields:{ - bookingId:"uuid", - centTotal:"Int", - connectionId:"uuid", - createdAt:"timestamptz", - description:"String", - enhancingLineId:"uuid", - id:"uuid", - invoiceStatus:"String", - originCentTotal:"Int", - originCurrency:"String", - originExchangeRate:"numeric", - paymentId:"uuid", - teamId:"uuid", - type:"String", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz" - }, - line_mutation_response:{ - affected_rows:"Int", - returning:"line" - }, - line_stddev_fields:{ - centTotal:"Float", - originCentTotal:"Float", - originExchangeRate:"Float" - }, - line_stddev_pop_fields:{ - centTotal:"Float", - originCentTotal:"Float", - originExchangeRate:"Float" - }, - line_stddev_samp_fields:{ - centTotal:"Float", - originCentTotal:"Float", - originExchangeRate:"Float" - }, - line_sum_fields:{ - centTotal:"Int", - originCentTotal:"Int", - originExchangeRate:"numeric" - }, - line_var_pop_fields:{ - centTotal:"Float", - originCentTotal:"Float", - originExchangeRate:"Float" - }, - line_var_samp_fields:{ - centTotal:"Float", - originCentTotal:"Float", - originExchangeRate:"Float" - }, - line_variance_fields:{ - centTotal:"Float", - originCentTotal:"Float", - originExchangeRate:"Float" - }, - metric:{ - connection:"connection", - connectionId:"uuid", - createdAt:"timestamptz", - ensuedAt:"timestamptz", - id:"uuid", - metadata:"jsonb", - team:"team", - teamId:"uuid", - text:"String", - type:"String", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz", - value:"float8" - }, - metric_aggregate:{ - aggregate:"metric_aggregate_fields", - nodes:"metric" - }, - metric_aggregate_fields:{ - avg:"metric_avg_fields", - count:"Int", - max:"metric_max_fields", - min:"metric_min_fields", - stddev:"metric_stddev_fields", - stddev_pop:"metric_stddev_pop_fields", - stddev_samp:"metric_stddev_samp_fields", - sum:"metric_sum_fields", - var_pop:"metric_var_pop_fields", - var_samp:"metric_var_samp_fields", - variance:"metric_variance_fields" - }, - metric_avg_fields:{ - value:"Float" - }, - metric_max_fields:{ - connectionId:"uuid", - createdAt:"timestamptz", - ensuedAt:"timestamptz", - id:"uuid", - teamId:"uuid", - text:"String", - type:"String", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz", - value:"float8" - }, - metric_min_fields:{ - connectionId:"uuid", - createdAt:"timestamptz", - ensuedAt:"timestamptz", - id:"uuid", - teamId:"uuid", - text:"String", - type:"String", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz", - value:"float8" - }, - metric_mutation_response:{ - affected_rows:"Int", - returning:"metric" - }, - metric_stddev_fields:{ - value:"Float" - }, - metric_stddev_pop_fields:{ - value:"Float" - }, - metric_stddev_samp_fields:{ - value:"Float" - }, - metric_sum_fields:{ - value:"float8" - }, - metric_var_pop_fields:{ - value:"Float" - }, - metric_var_samp_fields:{ - value:"Float" - }, - metric_variance_fields:{ - value:"Float" - }, - mutation_root:{ - deleteBooking:"booking", - deleteBookingStatus:"bookingStatus", - deleteBookingStatuses:"bookingStatus_mutation_response", - deleteBookings:"booking_mutation_response", - deleteClassification:"classification", - deleteClassifications:"classification_mutation_response", - deleteConnection:"connection", - deleteConnections:"connection_mutation_response", - deleteCurrencies:"currency_mutation_response", - deleteCurrency:"currency", - deleteEntities:"entity_mutation_response", - deleteEntity:"entity", - deleteEntityStatus:"entityStatus", - deleteEntityStatuses:"entityStatus_mutation_response", - deleteIntegration:"integration", - deleteIntegrationType:"integrationType", - deleteIntegrationTypes:"integrationType_mutation_response", - deleteIntegrations:"integration_mutation_response", - deleteIssue:"issue", - deleteIssues:"issue_mutation_response", - deleteJob:"job", - deleteJobMethod:"jobMethod", - deleteJobMethods:"jobMethod_mutation_response", - deleteJobStatus:"jobStatus", - deleteJobStatuses:"jobStatus_mutation_response", - deleteJobs:"job_mutation_response", - deleteLine:"line", - deleteLines:"line_mutation_response", - deleteMetric:"metric", - deleteMetrics:"metric_mutation_response", - deleteNormalizedType:"normalizedType", - deleteNormalizedTypes:"normalizedType_mutation_response", - deletePayment:"payment", - deletePaymentStatus:"paymentStatus", - deletePaymentStatuses:"paymentStatus_mutation_response", - deletePaymentType:"paymentType", - deletePaymentTypes:"paymentType_mutation_response", - deletePayments:"payment_mutation_response", - deleteSubclassification:"subclassification", - deleteSubclassifications:"subclassification_mutation_response", - deleteTag:"tag", - deleteTags:"tag_mutation_response", - deleteTeam:"team", - deleteTeamUser:"teamUser", - deleteTeamUsers:"teamUser_mutation_response", - deleteTeams:"team_mutation_response", - deleteUnit:"unit", - deleteUnits:"unit_mutation_response", - deleteUser:"user", - deleteUserStatus:"userStatus", - deleteUserStatuses:"userStatus_mutation_response", - deleteUsers:"user_mutation_response", - deleteWebhook:"webhook", - deleteWebhooks:"webhook_mutation_response", - delete_booking_channel:"booking_channel_mutation_response", - delete_booking_channel_by_pk:"booking_channel", - insertBooking:"booking", - insertBookingStatus:"bookingStatus", - insertBookingStatuses:"bookingStatus_mutation_response", - insertBookings:"booking_mutation_response", - insertClassification:"classification", - insertClassifications:"classification_mutation_response", - insertConnection:"connection", - insertConnections:"connection_mutation_response", - insertCurrencies:"currency_mutation_response", - insertCurrency:"currency", - insertEntities:"entity_mutation_response", - insertEntity:"entity", - insertEntityStatus:"entityStatus", - insertEntityStatuses:"entityStatus_mutation_response", - insertIntegration:"integration", - insertIntegrationType:"integrationType", - insertIntegrationTypes:"integrationType_mutation_response", - insertIntegrations:"integration_mutation_response", - insertIssue:"issue", - insertIssues:"issue_mutation_response", - insertJob:"job", - insertJobMethod:"jobMethod", - insertJobMethods:"jobMethod_mutation_response", - insertJobStatus:"jobStatus", - insertJobStatuses:"jobStatus_mutation_response", - insertJobs:"job_mutation_response", - insertLine:"line", - insertLines:"line_mutation_response", - insertMetric:"metric", - insertMetrics:"metric_mutation_response", - insertNormalizedType:"normalizedType", - insertNormalizedTypes:"normalizedType_mutation_response", - insertPayment:"payment", - insertPaymentStatus:"paymentStatus", - insertPaymentStatuses:"paymentStatus_mutation_response", - insertPaymentType:"paymentType", - insertPaymentTypes:"paymentType_mutation_response", - insertPayments:"payment_mutation_response", - insertSubclassification:"subclassification", - insertSubclassifications:"subclassification_mutation_response", - insertTag:"tag", - insertTags:"tag_mutation_response", - insertTeam:"team", - insertTeamUser:"teamUser", - insertTeamUsers:"teamUser_mutation_response", - insertTeams:"team_mutation_response", - insertUnit:"unit", - insertUnits:"unit_mutation_response", - insertUser:"user", - insertUserStatus:"userStatus", - insertUserStatuses:"userStatus_mutation_response", - insertUsers:"user_mutation_response", - insertWebhook:"webhook", - insertWebhooks:"webhook_mutation_response", - insert_booking_channel:"booking_channel_mutation_response", - insert_booking_channel_one:"booking_channel", - updateBooking:"booking", - updateBookingStatus:"bookingStatus", - updateBookingStatuses:"bookingStatus_mutation_response", - updateBookings:"booking_mutation_response", - updateClassification:"classification", - updateClassifications:"classification_mutation_response", - updateConnection:"connection", - updateConnections:"connection_mutation_response", - updateCurrencies:"currency_mutation_response", - updateCurrency:"currency", - updateEntities:"entity_mutation_response", - updateEntity:"entity", - updateEntityStatus:"entityStatus", - updateEntityStatuses:"entityStatus_mutation_response", - updateIntegration:"integration", - updateIntegrationType:"integrationType", - updateIntegrationTypes:"integrationType_mutation_response", - updateIntegrations:"integration_mutation_response", - updateIssue:"issue", - updateIssues:"issue_mutation_response", - updateJob:"job", - updateJobMethod:"jobMethod", - updateJobMethods:"jobMethod_mutation_response", - updateJobStatus:"jobStatus", - updateJobStatuses:"jobStatus_mutation_response", - updateJobs:"job_mutation_response", - updateLine:"line", - updateLines:"line_mutation_response", - updateMetric:"metric", - updateMetrics:"metric_mutation_response", - updateNormalizedType:"normalizedType", - updateNormalizedTypes:"normalizedType_mutation_response", - updatePayment:"payment", - updatePaymentStatus:"paymentStatus", - updatePaymentStatuses:"paymentStatus_mutation_response", - updatePaymentType:"paymentType", - updatePaymentTypes:"paymentType_mutation_response", - updatePayments:"payment_mutation_response", - updateSubclassification:"subclassification", - updateSubclassifications:"subclassification_mutation_response", - updateTag:"tag", - updateTags:"tag_mutation_response", - updateTeam:"team", - updateTeamUser:"teamUser", - updateTeamUsers:"teamUser_mutation_response", - updateTeams:"team_mutation_response", - updateUnit:"unit", - updateUnits:"unit_mutation_response", - updateUser:"user", - updateUserStatus:"userStatus", - updateUserStatuses:"userStatus_mutation_response", - updateUsers:"user_mutation_response", - updateWebhook:"webhook", - updateWebhooks:"webhook_mutation_response", - update_booking_channel:"booking_channel_mutation_response", - update_booking_channel_by_pk:"booking_channel" - }, - normalizedType:{ - name:"String" - }, - normalizedType_aggregate:{ - aggregate:"normalizedType_aggregate_fields", - nodes:"normalizedType" - }, - normalizedType_aggregate_fields:{ - count:"Int", - max:"normalizedType_max_fields", - min:"normalizedType_min_fields" - }, - normalizedType_max_fields:{ - name:"String" - }, - normalizedType_min_fields:{ - name:"String" - }, - normalizedType_mutation_response:{ - affected_rows:"Int", - returning:"normalizedType" - }, - payment:{ - arrivesAt:"timestamptz", - centTotal:"Int", - connection:"connection", - connectionId:"uuid", - createdAt:"timestamptz", - currency:"currency_enum", - description:"String", - entity:"entity", - entityId:"uuid", - id:"uuid", - lines:"line", - lines_aggregate:"line_aggregate", - metadata:"jsonb", - paidAt:"timestamptz", - status:"payment_status_enum", - tags:"tag", - tags_aggregate:"tag_aggregate", - team:"team", - teamId:"uuid", - type:"String", - uniqueRef:"String", - updatedAt:"timestamptz" - }, - payment_aggregate:{ - aggregate:"payment_aggregate_fields", - nodes:"payment" - }, - payment_aggregate_fields:{ - avg:"payment_avg_fields", - count:"Int", - max:"payment_max_fields", - min:"payment_min_fields", - stddev:"payment_stddev_fields", - stddev_pop:"payment_stddev_pop_fields", - stddev_samp:"payment_stddev_samp_fields", - sum:"payment_sum_fields", - var_pop:"payment_var_pop_fields", - var_samp:"payment_var_samp_fields", - variance:"payment_variance_fields" - }, - payment_avg_fields:{ - centTotal:"Float" - }, - payment_max_fields:{ - arrivesAt:"timestamptz", - centTotal:"Int", - connectionId:"uuid", - createdAt:"timestamptz", - description:"String", - entityId:"uuid", - id:"uuid", - paidAt:"timestamptz", - teamId:"uuid", - type:"String", - uniqueRef:"String", - updatedAt:"timestamptz" - }, - payment_min_fields:{ - arrivesAt:"timestamptz", - centTotal:"Int", - connectionId:"uuid", - createdAt:"timestamptz", - description:"String", - entityId:"uuid", - id:"uuid", - paidAt:"timestamptz", - teamId:"uuid", - type:"String", - uniqueRef:"String", - updatedAt:"timestamptz" - }, - payment_mutation_response:{ - affected_rows:"Int", - returning:"payment" - }, - payment_stddev_fields:{ - centTotal:"Float" - }, - payment_stddev_pop_fields:{ - centTotal:"Float" - }, - payment_stddev_samp_fields:{ - centTotal:"Float" - }, - payment_sum_fields:{ - centTotal:"Int" - }, - payment_var_pop_fields:{ - centTotal:"Float" - }, - payment_var_samp_fields:{ - centTotal:"Float" - }, - payment_variance_fields:{ - centTotal:"Float" - }, - paymentStatus:{ - name:"String" - }, - paymentStatus_aggregate:{ - aggregate:"paymentStatus_aggregate_fields", - nodes:"paymentStatus" - }, - paymentStatus_aggregate_fields:{ - count:"Int", - max:"paymentStatus_max_fields", - min:"paymentStatus_min_fields" - }, - paymentStatus_max_fields:{ - name:"String" - }, - paymentStatus_min_fields:{ - name:"String" - }, - paymentStatus_mutation_response:{ - affected_rows:"Int", - returning:"paymentStatus" - }, - paymentType:{ - name:"String" - }, - paymentType_aggregate:{ - aggregate:"paymentType_aggregate_fields", - nodes:"paymentType" - }, - paymentType_aggregate_fields:{ - count:"Int", - max:"paymentType_max_fields", - min:"paymentType_min_fields" - }, - paymentType_max_fields:{ - name:"String" - }, - paymentType_min_fields:{ - name:"String" - }, - paymentType_mutation_response:{ - affected_rows:"Int", - returning:"paymentType" - }, - query_root:{ - aggregateBookingStatuses:"bookingStatus_aggregate", - aggregateBookings:"booking_aggregate", - aggregateClassifications:"classification_aggregate", - aggregateConnections:"connection_aggregate", - aggregateCurrencies:"currency_aggregate", - aggregateEntities:"entity_aggregate", - aggregateEntityStatuses:"entityStatus_aggregate", - aggregateIntegrationTypes:"integrationType_aggregate", - aggregateIntegrations:"integration_aggregate", - aggregateIssues:"issue_aggregate", - aggregateJobMethods:"jobMethod_aggregate", - aggregateJobStatuses:"jobStatus_aggregate", - aggregateJobs:"job_aggregate", - aggregateLines:"line_aggregate", - aggregateMetrics:"metric_aggregate", - aggregateNormalizedTypes:"normalizedType_aggregate", - aggregatePaymentStatuses:"paymentStatus_aggregate", - aggregatePaymentTypes:"paymentType_aggregate", - aggregatePayments:"payment_aggregate", - aggregateSubclassifications:"subclassification_aggregate", - aggregateTags:"tag_aggregate", - aggregateTeamUsers:"teamUser_aggregate", - aggregateTeams:"team_aggregate", - aggregateUnits:"unit_aggregate", - aggregateUserStatuses:"userStatus_aggregate", - aggregateUsers:"user_aggregate", - aggregateWebhooks:"webhook_aggregate", - booking:"booking", - bookingStatus:"bookingStatus", - bookingStatuses:"bookingStatus", - booking_channel:"booking_channel", - booking_channel_aggregate:"booking_channel_aggregate", - booking_channel_by_pk:"booking_channel", - bookings:"booking", - classification:"classification", - classifications:"classification", - connection:"connection", - connections:"connection", - currencies:"currency", - currency:"currency", - entities:"entity", - entity:"entity", - entityStatus:"entityStatus", - entityStatuses:"entityStatus", - integration:"integration", - integrationType:"integrationType", - integrationTypes:"integrationType", - integrations:"integration", - issue:"issue", - issues:"issue", - job:"job", - jobMethod:"jobMethod", - jobMethods:"jobMethod", - jobStatus:"jobStatus", - jobStatuses:"jobStatus", - jobs:"job", - line:"line", - lines:"line", - metric:"metric", - metrics:"metric", - normalizedType:"normalizedType", - normalizedTypes:"normalizedType", - payment:"payment", - paymentStatus:"paymentStatus", - paymentStatuses:"paymentStatus", - paymentType:"paymentType", - paymentTypes:"paymentType", - payments:"payment", - subclassification:"subclassification", - subclassifications:"subclassification", - tag:"tag", - tags:"tag", - team:"team", - teamUser:"teamUser", - teamUsers:"teamUser", - teams:"team", - unit:"unit", - units:"unit", - user:"user", - userStatus:"userStatus", - userStatuses:"userStatus", - users:"user", - webhook:"webhook", - webhooks:"webhook" - }, - subclassification:{ - name:"String" - }, - subclassification_aggregate:{ - aggregate:"subclassification_aggregate_fields", - nodes:"subclassification" - }, - subclassification_aggregate_fields:{ - count:"Int", - max:"subclassification_max_fields", - min:"subclassification_min_fields" - }, - subclassification_max_fields:{ - name:"String" - }, - subclassification_min_fields:{ - name:"String" - }, - subclassification_mutation_response:{ - affected_rows:"Int", - returning:"subclassification" - }, - subscription_root:{ - aggregateBookingStatuses:"bookingStatus_aggregate", - aggregateBookings:"booking_aggregate", - aggregateClassifications:"classification_aggregate", - aggregateConnections:"connection_aggregate", - aggregateCurrencies:"currency_aggregate", - aggregateEntities:"entity_aggregate", - aggregateEntityStatuses:"entityStatus_aggregate", - aggregateIntegrationTypes:"integrationType_aggregate", - aggregateIntegrations:"integration_aggregate", - aggregateIssues:"issue_aggregate", - aggregateJobMethods:"jobMethod_aggregate", - aggregateJobStatuses:"jobStatus_aggregate", - aggregateJobs:"job_aggregate", - aggregateLines:"line_aggregate", - aggregateMetrics:"metric_aggregate", - aggregateNormalizedTypes:"normalizedType_aggregate", - aggregatePaymentStatuses:"paymentStatus_aggregate", - aggregatePaymentTypes:"paymentType_aggregate", - aggregatePayments:"payment_aggregate", - aggregateSubclassifications:"subclassification_aggregate", - aggregateTags:"tag_aggregate", - aggregateTeamUsers:"teamUser_aggregate", - aggregateTeams:"team_aggregate", - aggregateUnits:"unit_aggregate", - aggregateUserStatuses:"userStatus_aggregate", - aggregateUsers:"user_aggregate", - aggregateWebhooks:"webhook_aggregate", - booking:"booking", - bookingStatus:"bookingStatus", - bookingStatuses:"bookingStatus", - booking_channel:"booking_channel", - booking_channel_aggregate:"booking_channel_aggregate", - booking_channel_by_pk:"booking_channel", - bookings:"booking", - classification:"classification", - classifications:"classification", - connection:"connection", - connections:"connection", - currencies:"currency", - currency:"currency", - entities:"entity", - entity:"entity", - entityStatus:"entityStatus", - entityStatuses:"entityStatus", - integration:"integration", - integrationType:"integrationType", - integrationTypes:"integrationType", - integrations:"integration", - issue:"issue", - issues:"issue", - job:"job", - jobMethod:"jobMethod", - jobMethods:"jobMethod", - jobStatus:"jobStatus", - jobStatuses:"jobStatus", - jobs:"job", - line:"line", - lines:"line", - metric:"metric", - metrics:"metric", - normalizedType:"normalizedType", - normalizedTypes:"normalizedType", - payment:"payment", - paymentStatus:"paymentStatus", - paymentStatuses:"paymentStatus", - paymentType:"paymentType", - paymentTypes:"paymentType", - payments:"payment", - subclassification:"subclassification", - subclassifications:"subclassification", - tag:"tag", - tags:"tag", - team:"team", - teamUser:"teamUser", - teamUsers:"teamUser", - teams:"team", - unit:"unit", - units:"unit", - user:"user", - userStatus:"userStatus", - userStatuses:"userStatus", - users:"user", - webhook:"webhook", - webhooks:"webhook" - }, - tag:{ - booking:"booking", - bookingId:"uuid", - connection:"connection", - connectionId:"uuid", - createdAt:"timestamptz", - id:"uuid", - json:"jsonb", - payment:"payment", - paymentId:"uuid", - team:"team", - teamId:"uuid", - type:"String", - uniqueRef:"String", - unit:"unit", - unitId:"uuid", - updatedAt:"timestamptz" - }, - tag_aggregate:{ - aggregate:"tag_aggregate_fields", - nodes:"tag" - }, - tag_aggregate_fields:{ - count:"Int", - max:"tag_max_fields", - min:"tag_min_fields" - }, - tag_max_fields:{ - bookingId:"uuid", - connectionId:"uuid", - createdAt:"timestamptz", - id:"uuid", - paymentId:"uuid", - teamId:"uuid", - type:"String", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz" - }, - tag_min_fields:{ - bookingId:"uuid", - connectionId:"uuid", - createdAt:"timestamptz", - id:"uuid", - paymentId:"uuid", - teamId:"uuid", - type:"String", - uniqueRef:"String", - unitId:"uuid", - updatedAt:"timestamptz" - }, - tag_mutation_response:{ - affected_rows:"Int", - returning:"tag" - }, - team:{ - address:"String", - bookings:"booking", - bookings_aggregate:"booking_aggregate", - commissionPercentage:"numeric", - connections:"connection", - connections_aggregate:"connection_aggregate", - createdAt:"timestamptz", - email:"String", - entities:"entity", - entities_aggregate:"entity_aggregate", - id:"uuid", - integrations:"integration", - integrations_aggregate:"integration_aggregate", - isActive:"Boolean", - isTest:"Boolean", - issues:"issue", - issues_aggregate:"issue_aggregate", - jobs:"job", - jobs_aggregate:"job_aggregate", - lines:"line", - lines_aggregate:"line_aggregate", - members:"teamUser", - members_aggregate:"teamUser_aggregate", - metrics:"metric", - metrics_aggregate:"metric_aggregate", - name:"String", - payments:"payment", - payments_aggregate:"payment_aggregate", - stripeId:"String", - stripeSubscriptionItemId:"String", - supportEmail:"String", - supportPhone:"String", - tags:"tag", - tags_aggregate:"tag_aggregate", - units:"unit", - units_aggregate:"unit_aggregate", - webhooks:"webhook", - webhooks_aggregate:"webhook_aggregate", - website:"String" - }, - team_aggregate:{ - aggregate:"team_aggregate_fields", - nodes:"team" - }, - team_aggregate_fields:{ - avg:"team_avg_fields", - count:"Int", - max:"team_max_fields", - min:"team_min_fields", - stddev:"team_stddev_fields", - stddev_pop:"team_stddev_pop_fields", - stddev_samp:"team_stddev_samp_fields", - sum:"team_sum_fields", - var_pop:"team_var_pop_fields", - var_samp:"team_var_samp_fields", - variance:"team_variance_fields" - }, - team_avg_fields:{ - commissionPercentage:"Float" - }, - team_max_fields:{ - address:"String", - commissionPercentage:"numeric", - createdAt:"timestamptz", - email:"String", - id:"uuid", - name:"String", - stripeId:"String", - stripeSubscriptionItemId:"String", - supportEmail:"String", - supportPhone:"String", - website:"String" - }, - team_min_fields:{ - address:"String", - commissionPercentage:"numeric", - createdAt:"timestamptz", - email:"String", - id:"uuid", - name:"String", - stripeId:"String", - stripeSubscriptionItemId:"String", - supportEmail:"String", - supportPhone:"String", - website:"String" - }, - team_mutation_response:{ - affected_rows:"Int", - returning:"team" - }, - team_stddev_fields:{ - commissionPercentage:"Float" - }, - team_stddev_pop_fields:{ - commissionPercentage:"Float" - }, - team_stddev_samp_fields:{ - commissionPercentage:"Float" - }, - team_sum_fields:{ - commissionPercentage:"numeric" - }, - team_var_pop_fields:{ - commissionPercentage:"Float" - }, - team_var_samp_fields:{ - commissionPercentage:"Float" - }, - team_variance_fields:{ - commissionPercentage:"Float" - }, - teamUser:{ - createdAt:"timestamptz", - id:"uuid", - role:"String", - team:"team", - teamId:"uuid", - updatedAt:"timestamptz", - user:"user", - userId:"uuid" - }, - teamUser_aggregate:{ - aggregate:"teamUser_aggregate_fields", - nodes:"teamUser" - }, - teamUser_aggregate_fields:{ - count:"Int", - max:"teamUser_max_fields", - min:"teamUser_min_fields" - }, - teamUser_max_fields:{ - createdAt:"timestamptz", - id:"uuid", - role:"String", - teamId:"uuid", - updatedAt:"timestamptz", - userId:"uuid" - }, - teamUser_min_fields:{ - createdAt:"timestamptz", - id:"uuid", - role:"String", - teamId:"uuid", - updatedAt:"timestamptz", - userId:"uuid" - }, - teamUser_mutation_response:{ - affected_rows:"Int", - returning:"teamUser" - }, - unit:{ - bookings:"booking", - bookings_aggregate:"booking_aggregate", - connection:"connection", - connectionId:"uuid", - createdAt:"timestamptz", - entity:"entity", - entityId:"uuid", - id:"uuid", - metadata:"jsonb", - name:"String", - status:"String", - tags:"tag", - tags_aggregate:"tag_aggregate", - team:"team", - teamId:"uuid", - uniqueRef:"String", - updatedAt:"timestamptz" - }, - unit_aggregate:{ - aggregate:"unit_aggregate_fields", - nodes:"unit" - }, - unit_aggregate_fields:{ - count:"Int", - max:"unit_max_fields", - min:"unit_min_fields" - }, - unit_max_fields:{ - connectionId:"uuid", - createdAt:"timestamptz", - entityId:"uuid", - id:"uuid", - name:"String", - status:"String", - teamId:"uuid", - uniqueRef:"String", - updatedAt:"timestamptz" - }, - unit_min_fields:{ - connectionId:"uuid", - createdAt:"timestamptz", - entityId:"uuid", - id:"uuid", - name:"String", - status:"String", - teamId:"uuid", - uniqueRef:"String", - updatedAt:"timestamptz" - }, - unit_mutation_response:{ - affected_rows:"Int", - returning:"unit" - }, - user:{ - createdAt:"timestamptz", - email:"String", - id:"uuid", - isAdmin:"Boolean", - memberships:"teamUser", - memberships_aggregate:"teamUser_aggregate", - name:"String", - status:"user_status_enum", - sub:"String", - trialExpiryAt:"timestamptz" - }, - user_aggregate:{ - aggregate:"user_aggregate_fields", - nodes:"user" - }, - user_aggregate_fields:{ - count:"Int", - max:"user_max_fields", - min:"user_min_fields" - }, - user_max_fields:{ - createdAt:"timestamptz", - email:"String", - id:"uuid", - name:"String", - sub:"String", - trialExpiryAt:"timestamptz" - }, - user_min_fields:{ - createdAt:"timestamptz", - email:"String", - id:"uuid", - name:"String", - sub:"String", - trialExpiryAt:"timestamptz" - }, - user_mutation_response:{ - affected_rows:"Int", - returning:"user" - }, - userStatus:{ - name:"String" - }, - userStatus_aggregate:{ - aggregate:"userStatus_aggregate_fields", - nodes:"userStatus" - }, - userStatus_aggregate_fields:{ - count:"Int", - max:"userStatus_max_fields", - min:"userStatus_min_fields" - }, - userStatus_max_fields:{ - name:"String" - }, - userStatus_min_fields:{ - name:"String" - }, - userStatus_mutation_response:{ - affected_rows:"Int", - returning:"userStatus" - }, - webhook:{ - createdAt:"timestamptz", - headers:"jsonb", - id:"uuid", - team:"team", - teamId:"uuid", - types:"jsonb", - types2:"_text", - url:"String" - }, - webhook_aggregate:{ - aggregate:"webhook_aggregate_fields", - nodes:"webhook" - }, - webhook_aggregate_fields:{ - count:"Int", - max:"webhook_max_fields", - min:"webhook_min_fields" - }, - webhook_max_fields:{ - createdAt:"timestamptz", - id:"uuid", - teamId:"uuid", - url:"String" - }, - webhook_min_fields:{ - createdAt:"timestamptz", - id:"uuid", - teamId:"uuid", - url:"String" - }, - webhook_mutation_response:{ - affected_rows:"Int", - returning:"webhook" - } -} \ No newline at end of file diff --git a/examples/typescript-node-big-schema/src/zeus/index.ts b/examples/typescript-node-big-schema/src/zeus/index.ts deleted file mode 100644 index 46916cf0..00000000 --- a/examples/typescript-node-big-schema/src/zeus/index.ts +++ /dev/null @@ -1,17459 +0,0 @@ -/* eslint-disable */ - -import { AllTypesProps, ReturnTypes } from './const'; -type ZEUS_INTERFACES = never -type ZEUS_UNIONS = never - -export type ValueTypes = { - ["_text"]:unknown; - /** Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. */ -["_text_comparison_exp"]: { - _eq?: ValueTypes["_text"] | undefined | null, - _gt?: ValueTypes["_text"] | undefined | null, - _gte?: ValueTypes["_text"] | undefined | null, - _in?: (ValueTypes["_text"])[], - _is_null?: boolean | undefined | null, - _lt?: ValueTypes["_text"] | undefined | null, - _lte?: ValueTypes["_text"] | undefined | null, - _neq?: ValueTypes["_text"] | undefined | null, - _nin?: (ValueTypes["_text"])[] -}; - /** columns and relationships of "booking" */ -["booking"]: AliasType<{ - bookedAt?:boolean, - bookerName?:boolean, - bookingChannel?:boolean, - checkIn?:boolean, - checkOut?:boolean, - confirmationCode?:boolean, - /** An object relationship */ - connection?:ValueTypes["connection"], - connectionId?:boolean, - createdAt?:boolean, - currency?:boolean, - /** An object relationship */ - entity?:ValueTypes["entity"], - entityId?:boolean, - guestName?:boolean, - guests?:boolean, - id?:boolean, - isOTA?:boolean, -lines?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], -lines_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], -metadata?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - nights?:boolean, - /** An object relationship */ - otaBooking?:ValueTypes["booking"], - otaBookingId?:boolean, -relatedBookings?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], -relatedBookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], - status?:boolean, -tags?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], -tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - uniqueRef?:boolean, - /** An object relationship */ - unit?:ValueTypes["unit"], - unitId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "booking" */ -["booking_aggregate"]: AliasType<{ - aggregate?:ValueTypes["booking_aggregate_fields"], - nodes?:ValueTypes["booking"], - __typename?: boolean -}>; - /** aggregate fields of "booking" */ -["booking_aggregate_fields"]: AliasType<{ - avg?:ValueTypes["booking_avg_fields"], -count?: [{ columns?: (ValueTypes["booking_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["booking_max_fields"], - min?:ValueTypes["booking_min_fields"], - stddev?:ValueTypes["booking_stddev_fields"], - stddev_pop?:ValueTypes["booking_stddev_pop_fields"], - stddev_samp?:ValueTypes["booking_stddev_samp_fields"], - sum?:ValueTypes["booking_sum_fields"], - var_pop?:ValueTypes["booking_var_pop_fields"], - var_samp?:ValueTypes["booking_var_samp_fields"], - variance?:ValueTypes["booking_variance_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "booking" */ -["booking_aggregate_order_by"]: { - avg?: ValueTypes["booking_avg_order_by"] | undefined | null, - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["booking_max_order_by"] | undefined | null, - min?: ValueTypes["booking_min_order_by"] | undefined | null, - stddev?: ValueTypes["booking_stddev_order_by"] | undefined | null, - stddev_pop?: ValueTypes["booking_stddev_pop_order_by"] | undefined | null, - stddev_samp?: ValueTypes["booking_stddev_samp_order_by"] | undefined | null, - sum?: ValueTypes["booking_sum_order_by"] | undefined | null, - var_pop?: ValueTypes["booking_var_pop_order_by"] | undefined | null, - var_samp?: ValueTypes["booking_var_samp_order_by"] | undefined | null, - variance?: ValueTypes["booking_variance_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["booking_append_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "booking" */ -["booking_arr_rel_insert_input"]: { - data: (ValueTypes["booking_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["booking_on_conflict"] | undefined | null -}; - /** aggregate avg on columns */ -["booking_avg_fields"]: AliasType<{ - guests?:boolean, - nights?:boolean, - __typename?: boolean -}>; - /** order by avg() on columns of table "booking" */ -["booking_avg_order_by"]: { - guests?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null -}; - /** Boolean expression to filter rows from the table "booking". All fields are combined with a logical 'AND'. */ -["booking_bool_exp"]: { - _and?: (ValueTypes["booking_bool_exp"])[], - _not?: ValueTypes["booking_bool_exp"] | undefined | null, - _or?: (ValueTypes["booking_bool_exp"])[], - bookedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - bookerName?: ValueTypes["String_comparison_exp"] | undefined | null, - bookingChannel?: ValueTypes["booking_channel_enum_comparison_exp"] | undefined | null, - checkIn?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - checkOut?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - confirmationCode?: ValueTypes["String_comparison_exp"] | undefined | null, - connection?: ValueTypes["connection_bool_exp"] | undefined | null, - connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - currency?: ValueTypes["currency_enum_comparison_exp"] | undefined | null, - entity?: ValueTypes["entity_bool_exp"] | undefined | null, - entityId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - guestName?: ValueTypes["String_comparison_exp"] | undefined | null, - guests?: ValueTypes["Int_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - isOTA?: ValueTypes["Boolean_comparison_exp"] | undefined | null, - lines?: ValueTypes["line_bool_exp"] | undefined | null, - metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - nights?: ValueTypes["Int_comparison_exp"] | undefined | null, - otaBooking?: ValueTypes["booking_bool_exp"] | undefined | null, - otaBookingId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - relatedBookings?: ValueTypes["booking_bool_exp"] | undefined | null, - status?: ValueTypes["booking_status_enum_comparison_exp"] | undefined | null, - tags?: ValueTypes["tag_bool_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, - unit?: ValueTypes["unit_bool_exp"] | undefined | null, - unitId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null -}; - /** columns and relationships of "booking_channel" */ -["booking_channel"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "booking_channel" */ -["booking_channel_aggregate"]: AliasType<{ - aggregate?:ValueTypes["booking_channel_aggregate_fields"], - nodes?:ValueTypes["booking_channel"], - __typename?: boolean -}>; - /** aggregate fields of "booking_channel" */ -["booking_channel_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["booking_channel_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["booking_channel_max_fields"], - min?:ValueTypes["booking_channel_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "booking_channel". All fields are combined with a logical 'AND'. */ -["booking_channel_bool_exp"]: { - _and?: (ValueTypes["booking_channel_bool_exp"])[], - _not?: ValueTypes["booking_channel_bool_exp"] | undefined | null, - _or?: (ValueTypes["booking_channel_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "booking_channel" */ -["booking_channel_constraint"]:booking_channel_constraint; - ["booking_channel_enum"]:booking_channel_enum; - /** Boolean expression to compare columns of type "booking_channel_enum". All fields are combined with logical 'AND'. */ -["booking_channel_enum_comparison_exp"]: { - _eq?: ValueTypes["booking_channel_enum"] | undefined | null, - _in?: (ValueTypes["booking_channel_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["booking_channel_enum"] | undefined | null, - _nin?: (ValueTypes["booking_channel_enum"])[] -}; - /** input type for inserting data into table "booking_channel" */ -["booking_channel_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["booking_channel_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["booking_channel_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "booking_channel" */ -["booking_channel_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["booking_channel"], - __typename?: boolean -}>; - /** on conflict condition type for table "booking_channel" */ -["booking_channel_on_conflict"]: { - constraint: ValueTypes["booking_channel_constraint"], - update_columns: (ValueTypes["booking_channel_update_column"])[] | undefined | null, - where?: ValueTypes["booking_channel_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "booking_channel". */ -["booking_channel_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: booking_channel */ -["booking_channel_pk_columns_input"]: { - name: string -}; - /** select columns of table "booking_channel" */ -["booking_channel_select_column"]:booking_channel_select_column; - /** input type for updating data in table "booking_channel" */ -["booking_channel_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "booking_channel" */ -["booking_channel_update_column"]:booking_channel_update_column; - /** unique or primary key constraints on table "booking" */ -["booking_constraint"]:booking_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["booking_delete_at_path_input"]: { - metadata?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["booking_delete_elem_input"]: { - metadata?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["booking_delete_key_input"]: { - metadata?: string | undefined | null -}; - /** input type for incrementing numeric columns in table "booking" */ -["booking_inc_input"]: { - guests?: number | undefined | null, - nights?: number | undefined | null -}; - /** input type for inserting data into table "booking" */ -["booking_insert_input"]: { - bookedAt?: ValueTypes["timestamptz"] | undefined | null, - bookerName?: string | undefined | null, - bookingChannel?: ValueTypes["booking_channel_enum"] | undefined | null, - checkIn?: ValueTypes["timestamptz"] | undefined | null, - checkOut?: ValueTypes["timestamptz"] | undefined | null, - confirmationCode?: string | undefined | null, - connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - currency?: ValueTypes["currency_enum"] | undefined | null, - entity?: ValueTypes["entity_obj_rel_insert_input"] | undefined | null, - entityId?: ValueTypes["uuid"] | undefined | null, - guestName?: string | undefined | null, - guests?: number | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - isOTA?: boolean | undefined | null, - lines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - nights?: number | undefined | null, - otaBooking?: ValueTypes["booking_obj_rel_insert_input"] | undefined | null, - otaBookingId?: ValueTypes["uuid"] | undefined | null, - relatedBookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, - status?: ValueTypes["booking_status_enum"] | undefined | null, - tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - uniqueRef?: string | undefined | null, - unit?: ValueTypes["unit_obj_rel_insert_input"] | undefined | null, - unitId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate max on columns */ -["booking_max_fields"]: AliasType<{ - bookedAt?:boolean, - bookerName?:boolean, - checkIn?:boolean, - checkOut?:boolean, - confirmationCode?:boolean, - connectionId?:boolean, - createdAt?:boolean, - entityId?:boolean, - guestName?:boolean, - guests?:boolean, - id?:boolean, - nights?:boolean, - otaBookingId?:boolean, - teamId?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "booking" */ -["booking_max_order_by"]: { - bookedAt?: ValueTypes["order_by"] | undefined | null, - bookerName?: ValueTypes["order_by"] | undefined | null, - checkIn?: ValueTypes["order_by"] | undefined | null, - checkOut?: ValueTypes["order_by"] | undefined | null, - confirmationCode?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - entityId?: ValueTypes["order_by"] | undefined | null, - guestName?: ValueTypes["order_by"] | undefined | null, - guests?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null, - otaBookingId?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["booking_min_fields"]: AliasType<{ - bookedAt?:boolean, - bookerName?:boolean, - checkIn?:boolean, - checkOut?:boolean, - confirmationCode?:boolean, - connectionId?:boolean, - createdAt?:boolean, - entityId?:boolean, - guestName?:boolean, - guests?:boolean, - id?:boolean, - nights?:boolean, - otaBookingId?:boolean, - teamId?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "booking" */ -["booking_min_order_by"]: { - bookedAt?: ValueTypes["order_by"] | undefined | null, - bookerName?: ValueTypes["order_by"] | undefined | null, - checkIn?: ValueTypes["order_by"] | undefined | null, - checkOut?: ValueTypes["order_by"] | undefined | null, - confirmationCode?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - entityId?: ValueTypes["order_by"] | undefined | null, - guestName?: ValueTypes["order_by"] | undefined | null, - guests?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null, - otaBookingId?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "booking" */ -["booking_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["booking"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "booking" */ -["booking_obj_rel_insert_input"]: { - data: ValueTypes["booking_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["booking_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "booking" */ -["booking_on_conflict"]: { - constraint: ValueTypes["booking_constraint"], - update_columns: (ValueTypes["booking_update_column"])[] | undefined | null, - where?: ValueTypes["booking_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "booking". */ -["booking_order_by"]: { - bookedAt?: ValueTypes["order_by"] | undefined | null, - bookerName?: ValueTypes["order_by"] | undefined | null, - bookingChannel?: ValueTypes["order_by"] | undefined | null, - checkIn?: ValueTypes["order_by"] | undefined | null, - checkOut?: ValueTypes["order_by"] | undefined | null, - confirmationCode?: ValueTypes["order_by"] | undefined | null, - connection?: ValueTypes["connection_order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - currency?: ValueTypes["order_by"] | undefined | null, - entity?: ValueTypes["entity_order_by"] | undefined | null, - entityId?: ValueTypes["order_by"] | undefined | null, - guestName?: ValueTypes["order_by"] | undefined | null, - guests?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - isOTA?: ValueTypes["order_by"] | undefined | null, - lines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, - metadata?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null, - otaBooking?: ValueTypes["booking_order_by"] | undefined | null, - otaBookingId?: ValueTypes["order_by"] | undefined | null, - relatedBookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unit?: ValueTypes["unit_order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: booking */ -["booking_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["booking_prepend_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "booking" */ -["booking_select_column"]:booking_select_column; - /** input type for updating data in table "booking" */ -["booking_set_input"]: { - bookedAt?: ValueTypes["timestamptz"] | undefined | null, - bookerName?: string | undefined | null, - bookingChannel?: ValueTypes["booking_channel_enum"] | undefined | null, - checkIn?: ValueTypes["timestamptz"] | undefined | null, - checkOut?: ValueTypes["timestamptz"] | undefined | null, - confirmationCode?: string | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - currency?: ValueTypes["currency_enum"] | undefined | null, - entityId?: ValueTypes["uuid"] | undefined | null, - guestName?: string | undefined | null, - guests?: number | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - isOTA?: boolean | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - nights?: number | undefined | null, - otaBookingId?: ValueTypes["uuid"] | undefined | null, - status?: ValueTypes["booking_status_enum"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - uniqueRef?: string | undefined | null, - unitId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - ["booking_status_enum"]:booking_status_enum; - /** Boolean expression to compare columns of type "booking_status_enum". All fields are combined with logical 'AND'. */ -["booking_status_enum_comparison_exp"]: { - _eq?: ValueTypes["booking_status_enum"] | undefined | null, - _in?: (ValueTypes["booking_status_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["booking_status_enum"] | undefined | null, - _nin?: (ValueTypes["booking_status_enum"])[] -}; - /** aggregate stddev on columns */ -["booking_stddev_fields"]: AliasType<{ - guests?:boolean, - nights?:boolean, - __typename?: boolean -}>; - /** order by stddev() on columns of table "booking" */ -["booking_stddev_order_by"]: { - guests?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate stddev_pop on columns */ -["booking_stddev_pop_fields"]: AliasType<{ - guests?:boolean, - nights?:boolean, - __typename?: boolean -}>; - /** order by stddev_pop() on columns of table "booking" */ -["booking_stddev_pop_order_by"]: { - guests?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate stddev_samp on columns */ -["booking_stddev_samp_fields"]: AliasType<{ - guests?:boolean, - nights?:boolean, - __typename?: boolean -}>; - /** order by stddev_samp() on columns of table "booking" */ -["booking_stddev_samp_order_by"]: { - guests?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate sum on columns */ -["booking_sum_fields"]: AliasType<{ - guests?:boolean, - nights?:boolean, - __typename?: boolean -}>; - /** order by sum() on columns of table "booking" */ -["booking_sum_order_by"]: { - guests?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null -}; - /** update columns of table "booking" */ -["booking_update_column"]:booking_update_column; - /** aggregate var_pop on columns */ -["booking_var_pop_fields"]: AliasType<{ - guests?:boolean, - nights?:boolean, - __typename?: boolean -}>; - /** order by var_pop() on columns of table "booking" */ -["booking_var_pop_order_by"]: { - guests?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate var_samp on columns */ -["booking_var_samp_fields"]: AliasType<{ - guests?:boolean, - nights?:boolean, - __typename?: boolean -}>; - /** order by var_samp() on columns of table "booking" */ -["booking_var_samp_order_by"]: { - guests?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate variance on columns */ -["booking_variance_fields"]: AliasType<{ - guests?:boolean, - nights?:boolean, - __typename?: boolean -}>; - /** order by variance() on columns of table "booking" */ -["booking_variance_order_by"]: { - guests?: ValueTypes["order_by"] | undefined | null, - nights?: ValueTypes["order_by"] | undefined | null -}; - /** columns and relationships of "booking_status" */ -["bookingStatus"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "booking_status" */ -["bookingStatus_aggregate"]: AliasType<{ - aggregate?:ValueTypes["bookingStatus_aggregate_fields"], - nodes?:ValueTypes["bookingStatus"], - __typename?: boolean -}>; - /** aggregate fields of "booking_status" */ -["bookingStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["bookingStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["bookingStatus_max_fields"], - min?:ValueTypes["bookingStatus_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "booking_status". All fields are combined with a logical 'AND'. */ -["bookingStatus_bool_exp"]: { - _and?: (ValueTypes["bookingStatus_bool_exp"])[], - _not?: ValueTypes["bookingStatus_bool_exp"] | undefined | null, - _or?: (ValueTypes["bookingStatus_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "booking_status" */ -["bookingStatus_constraint"]:bookingStatus_constraint; - /** input type for inserting data into table "booking_status" */ -["bookingStatus_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["bookingStatus_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["bookingStatus_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "booking_status" */ -["bookingStatus_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["bookingStatus"], - __typename?: boolean -}>; - /** on conflict condition type for table "booking_status" */ -["bookingStatus_on_conflict"]: { - constraint: ValueTypes["bookingStatus_constraint"], - update_columns: (ValueTypes["bookingStatus_update_column"])[] | undefined | null, - where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "booking_status". */ -["bookingStatus_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: bookingStatus */ -["bookingStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "booking_status" */ -["bookingStatus_select_column"]:bookingStatus_select_column; - /** input type for updating data in table "booking_status" */ -["bookingStatus_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "booking_status" */ -["bookingStatus_update_column"]:bookingStatus_update_column; - /** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */ -["Boolean_comparison_exp"]: { - _eq?: boolean | undefined | null, - _gt?: boolean | undefined | null, - _gte?: boolean | undefined | null, - _in?: (boolean)[], - _is_null?: boolean | undefined | null, - _lt?: boolean | undefined | null, - _lte?: boolean | undefined | null, - _neq?: boolean | undefined | null, - _nin?: (boolean)[] -}; - /** columns and relationships of "classification" */ -["classification"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "classification" */ -["classification_aggregate"]: AliasType<{ - aggregate?:ValueTypes["classification_aggregate_fields"], - nodes?:ValueTypes["classification"], - __typename?: boolean -}>; - /** aggregate fields of "classification" */ -["classification_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["classification_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["classification_max_fields"], - min?:ValueTypes["classification_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "classification". All fields are combined with a logical 'AND'. */ -["classification_bool_exp"]: { - _and?: (ValueTypes["classification_bool_exp"])[], - _not?: ValueTypes["classification_bool_exp"] | undefined | null, - _or?: (ValueTypes["classification_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "classification" */ -["classification_constraint"]:classification_constraint; - ["classification_enum"]:classification_enum; - /** Boolean expression to compare columns of type "classification_enum". All fields are combined with logical 'AND'. */ -["classification_enum_comparison_exp"]: { - _eq?: ValueTypes["classification_enum"] | undefined | null, - _in?: (ValueTypes["classification_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["classification_enum"] | undefined | null, - _nin?: (ValueTypes["classification_enum"])[] -}; - /** input type for inserting data into table "classification" */ -["classification_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["classification_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["classification_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "classification" */ -["classification_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["classification"], - __typename?: boolean -}>; - /** on conflict condition type for table "classification" */ -["classification_on_conflict"]: { - constraint: ValueTypes["classification_constraint"], - update_columns: (ValueTypes["classification_update_column"])[] | undefined | null, - where?: ValueTypes["classification_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "classification". */ -["classification_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: classification */ -["classification_pk_columns_input"]: { - name: string -}; - /** select columns of table "classification" */ -["classification_select_column"]:classification_select_column; - /** input type for updating data in table "classification" */ -["classification_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "classification" */ -["classification_update_column"]:classification_update_column; - /** columns and relationships of "connection" */ -["connection"]: AliasType<{ -bookings?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], -bookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], - createdAt?:boolean, -credentials?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], -entities?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], -entities_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], - id?:boolean, - /** An object relationship */ - integration?:ValueTypes["integration"], - integrationId?:boolean, -jobs?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], -jobs_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], -lines?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], -lines_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], -metrics?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric"]], -metrics_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric_aggregate"]], - name?:boolean, -payments?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], -payments_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], -persistentState?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - status?:boolean, -tags?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], -tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, -units?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], -units_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], - webhookKey?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "connection" */ -["connection_aggregate"]: AliasType<{ - aggregate?:ValueTypes["connection_aggregate_fields"], - nodes?:ValueTypes["connection"], - __typename?: boolean -}>; - /** aggregate fields of "connection" */ -["connection_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["connection_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["connection_max_fields"], - min?:ValueTypes["connection_min_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "connection" */ -["connection_aggregate_order_by"]: { - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["connection_max_order_by"] | undefined | null, - min?: ValueTypes["connection_min_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["connection_append_input"]: { - credentials?: ValueTypes["jsonb"] | undefined | null, - persistentState?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "connection" */ -["connection_arr_rel_insert_input"]: { - data: (ValueTypes["connection_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["connection_on_conflict"] | undefined | null -}; - /** Boolean expression to filter rows from the table "connection". All fields are combined with a logical 'AND'. */ -["connection_bool_exp"]: { - _and?: (ValueTypes["connection_bool_exp"])[], - _not?: ValueTypes["connection_bool_exp"] | undefined | null, - _or?: (ValueTypes["connection_bool_exp"])[], - bookings?: ValueTypes["booking_bool_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - credentials?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - entities?: ValueTypes["entity_bool_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - integration?: ValueTypes["integration_bool_exp"] | undefined | null, - integrationId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - jobs?: ValueTypes["job_bool_exp"] | undefined | null, - lines?: ValueTypes["line_bool_exp"] | undefined | null, - metrics?: ValueTypes["metric_bool_exp"] | undefined | null, - name?: ValueTypes["String_comparison_exp"] | undefined | null, - payments?: ValueTypes["payment_bool_exp"] | undefined | null, - persistentState?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - status?: ValueTypes["String_comparison_exp"] | undefined | null, - tags?: ValueTypes["tag_bool_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - units?: ValueTypes["unit_bool_exp"] | undefined | null, - webhookKey?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "connection" */ -["connection_constraint"]:connection_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["connection_delete_at_path_input"]: { - credentials?: (string)[], - persistentState?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["connection_delete_elem_input"]: { - credentials?: number | undefined | null, - persistentState?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["connection_delete_key_input"]: { - credentials?: string | undefined | null, - persistentState?: string | undefined | null -}; - /** input type for inserting data into table "connection" */ -["connection_insert_input"]: { - bookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - credentials?: ValueTypes["jsonb"] | undefined | null, - entities?: ValueTypes["entity_arr_rel_insert_input"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - integration?: ValueTypes["integration_obj_rel_insert_input"] | undefined | null, - integrationId?: ValueTypes["uuid"] | undefined | null, - jobs?: ValueTypes["job_arr_rel_insert_input"] | undefined | null, - lines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, - metrics?: ValueTypes["metric_arr_rel_insert_input"] | undefined | null, - name?: string | undefined | null, - payments?: ValueTypes["payment_arr_rel_insert_input"] | undefined | null, - persistentState?: ValueTypes["jsonb"] | undefined | null, - status?: string | undefined | null, - tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - units?: ValueTypes["unit_arr_rel_insert_input"] | undefined | null, - webhookKey?: string | undefined | null -}; - /** aggregate max on columns */ -["connection_max_fields"]: AliasType<{ - createdAt?:boolean, - id?:boolean, - integrationId?:boolean, - name?:boolean, - status?:boolean, - teamId?:boolean, - webhookKey?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "connection" */ -["connection_max_order_by"]: { - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - integrationId?: ValueTypes["order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - webhookKey?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["connection_min_fields"]: AliasType<{ - createdAt?:boolean, - id?:boolean, - integrationId?:boolean, - name?:boolean, - status?:boolean, - teamId?:boolean, - webhookKey?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "connection" */ -["connection_min_order_by"]: { - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - integrationId?: ValueTypes["order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - webhookKey?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "connection" */ -["connection_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["connection"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "connection" */ -["connection_obj_rel_insert_input"]: { - data: ValueTypes["connection_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["connection_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "connection" */ -["connection_on_conflict"]: { - constraint: ValueTypes["connection_constraint"], - update_columns: (ValueTypes["connection_update_column"])[] | undefined | null, - where?: ValueTypes["connection_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "connection". */ -["connection_order_by"]: { - bookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - credentials?: ValueTypes["order_by"] | undefined | null, - entities_aggregate?: ValueTypes["entity_aggregate_order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - integration?: ValueTypes["integration_order_by"] | undefined | null, - integrationId?: ValueTypes["order_by"] | undefined | null, - jobs_aggregate?: ValueTypes["job_aggregate_order_by"] | undefined | null, - lines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, - metrics_aggregate?: ValueTypes["metric_aggregate_order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - payments_aggregate?: ValueTypes["payment_aggregate_order_by"] | undefined | null, - persistentState?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - units_aggregate?: ValueTypes["unit_aggregate_order_by"] | undefined | null, - webhookKey?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: connection */ -["connection_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["connection_prepend_input"]: { - credentials?: ValueTypes["jsonb"] | undefined | null, - persistentState?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "connection" */ -["connection_select_column"]:connection_select_column; - /** input type for updating data in table "connection" */ -["connection_set_input"]: { - createdAt?: ValueTypes["timestamptz"] | undefined | null, - credentials?: ValueTypes["jsonb"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - integrationId?: ValueTypes["uuid"] | undefined | null, - name?: string | undefined | null, - persistentState?: ValueTypes["jsonb"] | undefined | null, - status?: string | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - webhookKey?: string | undefined | null -}; - /** update columns of table "connection" */ -["connection_update_column"]:connection_update_column; - /** columns and relationships of "currency" */ -["currency"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "currency" */ -["currency_aggregate"]: AliasType<{ - aggregate?:ValueTypes["currency_aggregate_fields"], - nodes?:ValueTypes["currency"], - __typename?: boolean -}>; - /** aggregate fields of "currency" */ -["currency_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["currency_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["currency_max_fields"], - min?:ValueTypes["currency_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "currency". All fields are combined with a logical 'AND'. */ -["currency_bool_exp"]: { - _and?: (ValueTypes["currency_bool_exp"])[], - _not?: ValueTypes["currency_bool_exp"] | undefined | null, - _or?: (ValueTypes["currency_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "currency" */ -["currency_constraint"]:currency_constraint; - ["currency_enum"]:currency_enum; - /** Boolean expression to compare columns of type "currency_enum". All fields are combined with logical 'AND'. */ -["currency_enum_comparison_exp"]: { - _eq?: ValueTypes["currency_enum"] | undefined | null, - _in?: (ValueTypes["currency_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["currency_enum"] | undefined | null, - _nin?: (ValueTypes["currency_enum"])[] -}; - /** input type for inserting data into table "currency" */ -["currency_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["currency_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["currency_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "currency" */ -["currency_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["currency"], - __typename?: boolean -}>; - /** on conflict condition type for table "currency" */ -["currency_on_conflict"]: { - constraint: ValueTypes["currency_constraint"], - update_columns: (ValueTypes["currency_update_column"])[] | undefined | null, - where?: ValueTypes["currency_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "currency". */ -["currency_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: currency */ -["currency_pk_columns_input"]: { - name: string -}; - /** select columns of table "currency" */ -["currency_select_column"]:currency_select_column; - /** input type for updating data in table "currency" */ -["currency_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "currency" */ -["currency_update_column"]:currency_update_column; - /** columns and relationships of "entity" */ -["entity"]: AliasType<{ -bookings?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], -bookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], - /** An object relationship */ - connection?:ValueTypes["connection"], - connectionId?:boolean, - createdAt?:boolean, - description?:boolean, -diffJson?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - hash?:boolean, - id?:boolean, - /** An object relationship */ - job?:ValueTypes["job"], - jobId?:boolean, -json?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], -normalizedJson?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - normalizedType?:boolean, - parsedAt?:boolean, -payments?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], -payments_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], - /** An object relationship */ - predecessorEntity?:ValueTypes["entity"], - predecessorEntityId?:boolean, - status?:boolean, - statusText?:boolean, -successorEntities?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], -successorEntities_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, -units?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], -units_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], - updatedAt?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "entity" */ -["entity_aggregate"]: AliasType<{ - aggregate?:ValueTypes["entity_aggregate_fields"], - nodes?:ValueTypes["entity"], - __typename?: boolean -}>; - /** aggregate fields of "entity" */ -["entity_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["entity_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["entity_max_fields"], - min?:ValueTypes["entity_min_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "entity" */ -["entity_aggregate_order_by"]: { - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["entity_max_order_by"] | undefined | null, - min?: ValueTypes["entity_min_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["entity_append_input"]: { - diffJson?: ValueTypes["jsonb"] | undefined | null, - json?: ValueTypes["jsonb"] | undefined | null, - normalizedJson?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "entity" */ -["entity_arr_rel_insert_input"]: { - data: (ValueTypes["entity_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["entity_on_conflict"] | undefined | null -}; - /** Boolean expression to filter rows from the table "entity". All fields are combined with a logical 'AND'. */ -["entity_bool_exp"]: { - _and?: (ValueTypes["entity_bool_exp"])[], - _not?: ValueTypes["entity_bool_exp"] | undefined | null, - _or?: (ValueTypes["entity_bool_exp"])[], - bookings?: ValueTypes["booking_bool_exp"] | undefined | null, - connection?: ValueTypes["connection_bool_exp"] | undefined | null, - connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - description?: ValueTypes["String_comparison_exp"] | undefined | null, - diffJson?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - hash?: ValueTypes["String_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - job?: ValueTypes["job_bool_exp"] | undefined | null, - jobId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - json?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - normalizedJson?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - normalizedType?: ValueTypes["normalized_type_enum_comparison_exp"] | undefined | null, - parsedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - payments?: ValueTypes["payment_bool_exp"] | undefined | null, - predecessorEntity?: ValueTypes["entity_bool_exp"] | undefined | null, - predecessorEntityId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - status?: ValueTypes["entity_status_enum_comparison_exp"] | undefined | null, - statusText?: ValueTypes["String_comparison_exp"] | undefined | null, - successorEntities?: ValueTypes["entity_bool_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - type?: ValueTypes["String_comparison_exp"] | undefined | null, - uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, - units?: ValueTypes["unit_bool_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "entity" */ -["entity_constraint"]:entity_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["entity_delete_at_path_input"]: { - diffJson?: (string)[], - json?: (string)[], - normalizedJson?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["entity_delete_elem_input"]: { - diffJson?: number | undefined | null, - json?: number | undefined | null, - normalizedJson?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["entity_delete_key_input"]: { - diffJson?: string | undefined | null, - json?: string | undefined | null, - normalizedJson?: string | undefined | null -}; - /** input type for inserting data into table "entity" */ -["entity_insert_input"]: { - bookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, - connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - description?: string | undefined | null, - diffJson?: ValueTypes["jsonb"] | undefined | null, - hash?: string | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - job?: ValueTypes["job_obj_rel_insert_input"] | undefined | null, - jobId?: ValueTypes["uuid"] | undefined | null, - json?: ValueTypes["jsonb"] | undefined | null, - normalizedJson?: ValueTypes["jsonb"] | undefined | null, - normalizedType?: ValueTypes["normalized_type_enum"] | undefined | null, - parsedAt?: ValueTypes["timestamptz"] | undefined | null, - payments?: ValueTypes["payment_arr_rel_insert_input"] | undefined | null, - predecessorEntity?: ValueTypes["entity_obj_rel_insert_input"] | undefined | null, - predecessorEntityId?: ValueTypes["uuid"] | undefined | null, - status?: ValueTypes["entity_status_enum"] | undefined | null, - statusText?: string | undefined | null, - successorEntities?: ValueTypes["entity_arr_rel_insert_input"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - units?: ValueTypes["unit_arr_rel_insert_input"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate max on columns */ -["entity_max_fields"]: AliasType<{ - connectionId?:boolean, - createdAt?:boolean, - description?:boolean, - hash?:boolean, - id?:boolean, - jobId?:boolean, - parsedAt?:boolean, - predecessorEntityId?:boolean, - statusText?:boolean, - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "entity" */ -["entity_max_order_by"]: { - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - description?: ValueTypes["order_by"] | undefined | null, - hash?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - jobId?: ValueTypes["order_by"] | undefined | null, - parsedAt?: ValueTypes["order_by"] | undefined | null, - predecessorEntityId?: ValueTypes["order_by"] | undefined | null, - statusText?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["entity_min_fields"]: AliasType<{ - connectionId?:boolean, - createdAt?:boolean, - description?:boolean, - hash?:boolean, - id?:boolean, - jobId?:boolean, - parsedAt?:boolean, - predecessorEntityId?:boolean, - statusText?:boolean, - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "entity" */ -["entity_min_order_by"]: { - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - description?: ValueTypes["order_by"] | undefined | null, - hash?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - jobId?: ValueTypes["order_by"] | undefined | null, - parsedAt?: ValueTypes["order_by"] | undefined | null, - predecessorEntityId?: ValueTypes["order_by"] | undefined | null, - statusText?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "entity" */ -["entity_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["entity"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "entity" */ -["entity_obj_rel_insert_input"]: { - data: ValueTypes["entity_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["entity_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "entity" */ -["entity_on_conflict"]: { - constraint: ValueTypes["entity_constraint"], - update_columns: (ValueTypes["entity_update_column"])[] | undefined | null, - where?: ValueTypes["entity_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "entity". */ -["entity_order_by"]: { - bookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, - connection?: ValueTypes["connection_order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - description?: ValueTypes["order_by"] | undefined | null, - diffJson?: ValueTypes["order_by"] | undefined | null, - hash?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - job?: ValueTypes["job_order_by"] | undefined | null, - jobId?: ValueTypes["order_by"] | undefined | null, - json?: ValueTypes["order_by"] | undefined | null, - normalizedJson?: ValueTypes["order_by"] | undefined | null, - normalizedType?: ValueTypes["order_by"] | undefined | null, - parsedAt?: ValueTypes["order_by"] | undefined | null, - payments_aggregate?: ValueTypes["payment_aggregate_order_by"] | undefined | null, - predecessorEntity?: ValueTypes["entity_order_by"] | undefined | null, - predecessorEntityId?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - statusText?: ValueTypes["order_by"] | undefined | null, - successorEntities_aggregate?: ValueTypes["entity_aggregate_order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - units_aggregate?: ValueTypes["unit_aggregate_order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: entity */ -["entity_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["entity_prepend_input"]: { - diffJson?: ValueTypes["jsonb"] | undefined | null, - json?: ValueTypes["jsonb"] | undefined | null, - normalizedJson?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "entity" */ -["entity_select_column"]:entity_select_column; - /** input type for updating data in table "entity" */ -["entity_set_input"]: { - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - description?: string | undefined | null, - diffJson?: ValueTypes["jsonb"] | undefined | null, - hash?: string | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - jobId?: ValueTypes["uuid"] | undefined | null, - json?: ValueTypes["jsonb"] | undefined | null, - normalizedJson?: ValueTypes["jsonb"] | undefined | null, - normalizedType?: ValueTypes["normalized_type_enum"] | undefined | null, - parsedAt?: ValueTypes["timestamptz"] | undefined | null, - predecessorEntityId?: ValueTypes["uuid"] | undefined | null, - status?: ValueTypes["entity_status_enum"] | undefined | null, - statusText?: string | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - ["entity_status_enum"]:entity_status_enum; - /** Boolean expression to compare columns of type "entity_status_enum". All fields are combined with logical 'AND'. */ -["entity_status_enum_comparison_exp"]: { - _eq?: ValueTypes["entity_status_enum"] | undefined | null, - _in?: (ValueTypes["entity_status_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["entity_status_enum"] | undefined | null, - _nin?: (ValueTypes["entity_status_enum"])[] -}; - /** update columns of table "entity" */ -["entity_update_column"]:entity_update_column; - /** columns and relationships of "entity_status" */ -["entityStatus"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "entity_status" */ -["entityStatus_aggregate"]: AliasType<{ - aggregate?:ValueTypes["entityStatus_aggregate_fields"], - nodes?:ValueTypes["entityStatus"], - __typename?: boolean -}>; - /** aggregate fields of "entity_status" */ -["entityStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["entityStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["entityStatus_max_fields"], - min?:ValueTypes["entityStatus_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "entity_status". All fields are combined with a logical 'AND'. */ -["entityStatus_bool_exp"]: { - _and?: (ValueTypes["entityStatus_bool_exp"])[], - _not?: ValueTypes["entityStatus_bool_exp"] | undefined | null, - _or?: (ValueTypes["entityStatus_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "entity_status" */ -["entityStatus_constraint"]:entityStatus_constraint; - /** input type for inserting data into table "entity_status" */ -["entityStatus_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["entityStatus_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["entityStatus_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "entity_status" */ -["entityStatus_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["entityStatus"], - __typename?: boolean -}>; - /** on conflict condition type for table "entity_status" */ -["entityStatus_on_conflict"]: { - constraint: ValueTypes["entityStatus_constraint"], - update_columns: (ValueTypes["entityStatus_update_column"])[] | undefined | null, - where?: ValueTypes["entityStatus_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "entity_status". */ -["entityStatus_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: entityStatus */ -["entityStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "entity_status" */ -["entityStatus_select_column"]:entityStatus_select_column; - /** input type for updating data in table "entity_status" */ -["entityStatus_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "entity_status" */ -["entityStatus_update_column"]:entityStatus_update_column; - ["float8"]:unknown; - /** Boolean expression to compare columns of type "float8". All fields are combined with logical 'AND'. */ -["float8_comparison_exp"]: { - _eq?: ValueTypes["float8"] | undefined | null, - _gt?: ValueTypes["float8"] | undefined | null, - _gte?: ValueTypes["float8"] | undefined | null, - _in?: (ValueTypes["float8"])[], - _is_null?: boolean | undefined | null, - _lt?: ValueTypes["float8"] | undefined | null, - _lte?: ValueTypes["float8"] | undefined | null, - _neq?: ValueTypes["float8"] | undefined | null, - _nin?: (ValueTypes["float8"])[] -}; - /** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ -["Int_comparison_exp"]: { - _eq?: number | undefined | null, - _gt?: number | undefined | null, - _gte?: number | undefined | null, - _in?: (number)[], - _is_null?: boolean | undefined | null, - _lt?: number | undefined | null, - _lte?: number | undefined | null, - _neq?: number | undefined | null, - _nin?: (number)[] -}; - /** columns and relationships of "integration" */ -["integration"]: AliasType<{ - apiDevUrl?:boolean, - apiUrl?:boolean, -connections?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection"]], -connections_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection_aggregate"]], - icon?:boolean, - id?:boolean, - isApproved?:boolean, - isPrivate?:boolean, -jobs?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], -jobs_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], - name?:boolean, - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "integration" */ -["integration_aggregate"]: AliasType<{ - aggregate?:ValueTypes["integration_aggregate_fields"], - nodes?:ValueTypes["integration"], - __typename?: boolean -}>; - /** aggregate fields of "integration" */ -["integration_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["integration_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["integration_max_fields"], - min?:ValueTypes["integration_min_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "integration" */ -["integration_aggregate_order_by"]: { - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["integration_max_order_by"] | undefined | null, - min?: ValueTypes["integration_min_order_by"] | undefined | null -}; - /** input type for inserting array relation for remote table "integration" */ -["integration_arr_rel_insert_input"]: { - data: (ValueTypes["integration_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["integration_on_conflict"] | undefined | null -}; - /** Boolean expression to filter rows from the table "integration". All fields are combined with a logical 'AND'. */ -["integration_bool_exp"]: { - _and?: (ValueTypes["integration_bool_exp"])[], - _not?: ValueTypes["integration_bool_exp"] | undefined | null, - _or?: (ValueTypes["integration_bool_exp"])[], - apiDevUrl?: ValueTypes["String_comparison_exp"] | undefined | null, - apiUrl?: ValueTypes["String_comparison_exp"] | undefined | null, - connections?: ValueTypes["connection_bool_exp"] | undefined | null, - icon?: ValueTypes["String_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - isApproved?: ValueTypes["Boolean_comparison_exp"] | undefined | null, - isPrivate?: ValueTypes["Boolean_comparison_exp"] | undefined | null, - jobs?: ValueTypes["job_bool_exp"] | undefined | null, - name?: ValueTypes["String_comparison_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - type?: ValueTypes["integration_type_enum_comparison_exp"] | undefined | null, - uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "integration" */ -["integration_constraint"]:integration_constraint; - /** input type for inserting data into table "integration" */ -["integration_insert_input"]: { - apiDevUrl?: string | undefined | null, - apiUrl?: string | undefined | null, - connections?: ValueTypes["connection_arr_rel_insert_input"] | undefined | null, - icon?: string | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - isApproved?: boolean | undefined | null, - isPrivate?: boolean | undefined | null, - jobs?: ValueTypes["job_arr_rel_insert_input"] | undefined | null, - name?: string | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: ValueTypes["integration_type_enum"] | undefined | null, - uniqueRef?: string | undefined | null -}; - /** aggregate max on columns */ -["integration_max_fields"]: AliasType<{ - apiDevUrl?:boolean, - apiUrl?:boolean, - icon?:boolean, - id?:boolean, - name?:boolean, - teamId?:boolean, - uniqueRef?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "integration" */ -["integration_max_order_by"]: { - apiDevUrl?: ValueTypes["order_by"] | undefined | null, - apiUrl?: ValueTypes["order_by"] | undefined | null, - icon?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["integration_min_fields"]: AliasType<{ - apiDevUrl?:boolean, - apiUrl?:boolean, - icon?:boolean, - id?:boolean, - name?:boolean, - teamId?:boolean, - uniqueRef?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "integration" */ -["integration_min_order_by"]: { - apiDevUrl?: ValueTypes["order_by"] | undefined | null, - apiUrl?: ValueTypes["order_by"] | undefined | null, - icon?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "integration" */ -["integration_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["integration"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "integration" */ -["integration_obj_rel_insert_input"]: { - data: ValueTypes["integration_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["integration_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "integration" */ -["integration_on_conflict"]: { - constraint: ValueTypes["integration_constraint"], - update_columns: (ValueTypes["integration_update_column"])[] | undefined | null, - where?: ValueTypes["integration_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "integration". */ -["integration_order_by"]: { - apiDevUrl?: ValueTypes["order_by"] | undefined | null, - apiUrl?: ValueTypes["order_by"] | undefined | null, - connections_aggregate?: ValueTypes["connection_aggregate_order_by"] | undefined | null, - icon?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - isApproved?: ValueTypes["order_by"] | undefined | null, - isPrivate?: ValueTypes["order_by"] | undefined | null, - jobs_aggregate?: ValueTypes["job_aggregate_order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: integration */ -["integration_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** select columns of table "integration" */ -["integration_select_column"]:integration_select_column; - /** input type for updating data in table "integration" */ -["integration_set_input"]: { - apiDevUrl?: string | undefined | null, - apiUrl?: string | undefined | null, - icon?: string | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - isApproved?: boolean | undefined | null, - isPrivate?: boolean | undefined | null, - name?: string | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: ValueTypes["integration_type_enum"] | undefined | null, - uniqueRef?: string | undefined | null -}; - ["integration_type_enum"]:integration_type_enum; - /** Boolean expression to compare columns of type "integration_type_enum". All fields are combined with logical 'AND'. */ -["integration_type_enum_comparison_exp"]: { - _eq?: ValueTypes["integration_type_enum"] | undefined | null, - _in?: (ValueTypes["integration_type_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["integration_type_enum"] | undefined | null, - _nin?: (ValueTypes["integration_type_enum"])[] -}; - /** update columns of table "integration" */ -["integration_update_column"]:integration_update_column; - /** columns and relationships of "integration_type" */ -["integrationType"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "integration_type" */ -["integrationType_aggregate"]: AliasType<{ - aggregate?:ValueTypes["integrationType_aggregate_fields"], - nodes?:ValueTypes["integrationType"], - __typename?: boolean -}>; - /** aggregate fields of "integration_type" */ -["integrationType_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["integrationType_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["integrationType_max_fields"], - min?:ValueTypes["integrationType_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "integration_type". All fields are combined with a logical 'AND'. */ -["integrationType_bool_exp"]: { - _and?: (ValueTypes["integrationType_bool_exp"])[], - _not?: ValueTypes["integrationType_bool_exp"] | undefined | null, - _or?: (ValueTypes["integrationType_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "integration_type" */ -["integrationType_constraint"]:integrationType_constraint; - /** input type for inserting data into table "integration_type" */ -["integrationType_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["integrationType_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["integrationType_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "integration_type" */ -["integrationType_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["integrationType"], - __typename?: boolean -}>; - /** on conflict condition type for table "integration_type" */ -["integrationType_on_conflict"]: { - constraint: ValueTypes["integrationType_constraint"], - update_columns: (ValueTypes["integrationType_update_column"])[] | undefined | null, - where?: ValueTypes["integrationType_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "integration_type". */ -["integrationType_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: integrationType */ -["integrationType_pk_columns_input"]: { - name: string -}; - /** select columns of table "integration_type" */ -["integrationType_select_column"]:integrationType_select_column; - /** input type for updating data in table "integration_type" */ -["integrationType_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "integration_type" */ -["integrationType_update_column"]:integrationType_update_column; - /** columns and relationships of "issue" */ -["issue"]: AliasType<{ - code?:boolean, - createdAt?:boolean, - id?:boolean, - isPublic?:boolean, - isResolved?:boolean, - /** An object relationship */ - job?:ValueTypes["job"], - jobId?:boolean, - message?:boolean, -requestParams?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], -resolveParams?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - type?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "issue" */ -["issue_aggregate"]: AliasType<{ - aggregate?:ValueTypes["issue_aggregate_fields"], - nodes?:ValueTypes["issue"], - __typename?: boolean -}>; - /** aggregate fields of "issue" */ -["issue_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["issue_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["issue_max_fields"], - min?:ValueTypes["issue_min_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "issue" */ -["issue_aggregate_order_by"]: { - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["issue_max_order_by"] | undefined | null, - min?: ValueTypes["issue_min_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["issue_append_input"]: { - requestParams?: ValueTypes["jsonb"] | undefined | null, - resolveParams?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "issue" */ -["issue_arr_rel_insert_input"]: { - data: (ValueTypes["issue_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["issue_on_conflict"] | undefined | null -}; - /** Boolean expression to filter rows from the table "issue". All fields are combined with a logical 'AND'. */ -["issue_bool_exp"]: { - _and?: (ValueTypes["issue_bool_exp"])[], - _not?: ValueTypes["issue_bool_exp"] | undefined | null, - _or?: (ValueTypes["issue_bool_exp"])[], - code?: ValueTypes["String_comparison_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - isPublic?: ValueTypes["Boolean_comparison_exp"] | undefined | null, - isResolved?: ValueTypes["Boolean_comparison_exp"] | undefined | null, - job?: ValueTypes["job_bool_exp"] | undefined | null, - jobId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - message?: ValueTypes["String_comparison_exp"] | undefined | null, - requestParams?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - resolveParams?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - type?: ValueTypes["String_comparison_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "issue" */ -["issue_constraint"]:issue_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["issue_delete_at_path_input"]: { - requestParams?: (string)[], - resolveParams?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["issue_delete_elem_input"]: { - requestParams?: number | undefined | null, - resolveParams?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["issue_delete_key_input"]: { - requestParams?: string | undefined | null, - resolveParams?: string | undefined | null -}; - /** input type for inserting data into table "issue" */ -["issue_insert_input"]: { - code?: string | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - isPublic?: boolean | undefined | null, - isResolved?: boolean | undefined | null, - job?: ValueTypes["job_obj_rel_insert_input"] | undefined | null, - jobId?: ValueTypes["uuid"] | undefined | null, - message?: string | undefined | null, - requestParams?: ValueTypes["jsonb"] | undefined | null, - resolveParams?: ValueTypes["jsonb"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate max on columns */ -["issue_max_fields"]: AliasType<{ - code?:boolean, - createdAt?:boolean, - id?:boolean, - jobId?:boolean, - message?:boolean, - teamId?:boolean, - type?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "issue" */ -["issue_max_order_by"]: { - code?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - jobId?: ValueTypes["order_by"] | undefined | null, - message?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["issue_min_fields"]: AliasType<{ - code?:boolean, - createdAt?:boolean, - id?:boolean, - jobId?:boolean, - message?:boolean, - teamId?:boolean, - type?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "issue" */ -["issue_min_order_by"]: { - code?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - jobId?: ValueTypes["order_by"] | undefined | null, - message?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "issue" */ -["issue_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["issue"], - __typename?: boolean -}>; - /** on conflict condition type for table "issue" */ -["issue_on_conflict"]: { - constraint: ValueTypes["issue_constraint"], - update_columns: (ValueTypes["issue_update_column"])[] | undefined | null, - where?: ValueTypes["issue_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "issue". */ -["issue_order_by"]: { - code?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - isPublic?: ValueTypes["order_by"] | undefined | null, - isResolved?: ValueTypes["order_by"] | undefined | null, - job?: ValueTypes["job_order_by"] | undefined | null, - jobId?: ValueTypes["order_by"] | undefined | null, - message?: ValueTypes["order_by"] | undefined | null, - requestParams?: ValueTypes["order_by"] | undefined | null, - resolveParams?: ValueTypes["order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: issue */ -["issue_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["issue_prepend_input"]: { - requestParams?: ValueTypes["jsonb"] | undefined | null, - resolveParams?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "issue" */ -["issue_select_column"]:issue_select_column; - /** input type for updating data in table "issue" */ -["issue_set_input"]: { - code?: string | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - isPublic?: boolean | undefined | null, - isResolved?: boolean | undefined | null, - jobId?: ValueTypes["uuid"] | undefined | null, - message?: string | undefined | null, - requestParams?: ValueTypes["jsonb"] | undefined | null, - resolveParams?: ValueTypes["jsonb"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** update columns of table "issue" */ -["issue_update_column"]:issue_update_column; - /** columns and relationships of "job" */ -["job"]: AliasType<{ - apiVersion?:boolean, - /** An object relationship */ - connection?:ValueTypes["connection"], - connectionId?:boolean, - createdAt?:boolean, - endedAt?:boolean, -entities?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], -entities_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], - id?:boolean, - /** An object relationship */ - integration?:ValueTypes["integration"], - integrationId?:boolean, - integrationSdkVersion?:boolean, - integrationVersion?:boolean, -issues?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue"]], -issues_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue_aggregate"]], - logFile?:boolean, - logLink?:boolean, -logs?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - method?:boolean, -params?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - requestId?:boolean, -response?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - sdkVersion?:boolean, - startedAt?:boolean, - status?:boolean, - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "job" */ -["job_aggregate"]: AliasType<{ - aggregate?:ValueTypes["job_aggregate_fields"], - nodes?:ValueTypes["job"], - __typename?: boolean -}>; - /** aggregate fields of "job" */ -["job_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["job_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["job_max_fields"], - min?:ValueTypes["job_min_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "job" */ -["job_aggregate_order_by"]: { - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["job_max_order_by"] | undefined | null, - min?: ValueTypes["job_min_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["job_append_input"]: { - logs?: ValueTypes["jsonb"] | undefined | null, - params?: ValueTypes["jsonb"] | undefined | null, - response?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "job" */ -["job_arr_rel_insert_input"]: { - data: (ValueTypes["job_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["job_on_conflict"] | undefined | null -}; - /** Boolean expression to filter rows from the table "job". All fields are combined with a logical 'AND'. */ -["job_bool_exp"]: { - _and?: (ValueTypes["job_bool_exp"])[], - _not?: ValueTypes["job_bool_exp"] | undefined | null, - _or?: (ValueTypes["job_bool_exp"])[], - apiVersion?: ValueTypes["String_comparison_exp"] | undefined | null, - connection?: ValueTypes["connection_bool_exp"] | undefined | null, - connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - endedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - entities?: ValueTypes["entity_bool_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - integration?: ValueTypes["integration_bool_exp"] | undefined | null, - integrationId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - integrationSdkVersion?: ValueTypes["String_comparison_exp"] | undefined | null, - integrationVersion?: ValueTypes["String_comparison_exp"] | undefined | null, - issues?: ValueTypes["issue_bool_exp"] | undefined | null, - logFile?: ValueTypes["String_comparison_exp"] | undefined | null, - logLink?: ValueTypes["String_comparison_exp"] | undefined | null, - logs?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - method?: ValueTypes["job_method_enum_comparison_exp"] | undefined | null, - params?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - requestId?: ValueTypes["String_comparison_exp"] | undefined | null, - response?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - sdkVersion?: ValueTypes["String_comparison_exp"] | undefined | null, - startedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - status?: ValueTypes["job_status_enum_comparison_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "job" */ -["job_constraint"]:job_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["job_delete_at_path_input"]: { - logs?: (string)[], - params?: (string)[], - response?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["job_delete_elem_input"]: { - logs?: number | undefined | null, - params?: number | undefined | null, - response?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["job_delete_key_input"]: { - logs?: string | undefined | null, - params?: string | undefined | null, - response?: string | undefined | null -}; - /** input type for inserting data into table "job" */ -["job_insert_input"]: { - apiVersion?: string | undefined | null, - connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - endedAt?: ValueTypes["timestamptz"] | undefined | null, - entities?: ValueTypes["entity_arr_rel_insert_input"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - integration?: ValueTypes["integration_obj_rel_insert_input"] | undefined | null, - integrationId?: ValueTypes["uuid"] | undefined | null, - integrationSdkVersion?: string | undefined | null, - integrationVersion?: string | undefined | null, - issues?: ValueTypes["issue_arr_rel_insert_input"] | undefined | null, - logFile?: string | undefined | null, - logLink?: string | undefined | null, - logs?: ValueTypes["jsonb"] | undefined | null, - method?: ValueTypes["job_method_enum"] | undefined | null, - params?: ValueTypes["jsonb"] | undefined | null, - requestId?: string | undefined | null, - response?: ValueTypes["jsonb"] | undefined | null, - sdkVersion?: string | undefined | null, - startedAt?: ValueTypes["timestamptz"] | undefined | null, - status?: ValueTypes["job_status_enum"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate max on columns */ -["job_max_fields"]: AliasType<{ - apiVersion?:boolean, - connectionId?:boolean, - createdAt?:boolean, - endedAt?:boolean, - id?:boolean, - integrationId?:boolean, - integrationSdkVersion?:boolean, - integrationVersion?:boolean, - logFile?:boolean, - logLink?:boolean, - requestId?:boolean, - sdkVersion?:boolean, - startedAt?:boolean, - teamId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "job" */ -["job_max_order_by"]: { - apiVersion?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - endedAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - integrationId?: ValueTypes["order_by"] | undefined | null, - integrationSdkVersion?: ValueTypes["order_by"] | undefined | null, - integrationVersion?: ValueTypes["order_by"] | undefined | null, - logFile?: ValueTypes["order_by"] | undefined | null, - logLink?: ValueTypes["order_by"] | undefined | null, - requestId?: ValueTypes["order_by"] | undefined | null, - sdkVersion?: ValueTypes["order_by"] | undefined | null, - startedAt?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - ["job_method_enum"]:job_method_enum; - /** Boolean expression to compare columns of type "job_method_enum". All fields are combined with logical 'AND'. */ -["job_method_enum_comparison_exp"]: { - _eq?: ValueTypes["job_method_enum"] | undefined | null, - _in?: (ValueTypes["job_method_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["job_method_enum"] | undefined | null, - _nin?: (ValueTypes["job_method_enum"])[] -}; - /** aggregate min on columns */ -["job_min_fields"]: AliasType<{ - apiVersion?:boolean, - connectionId?:boolean, - createdAt?:boolean, - endedAt?:boolean, - id?:boolean, - integrationId?:boolean, - integrationSdkVersion?:boolean, - integrationVersion?:boolean, - logFile?:boolean, - logLink?:boolean, - requestId?:boolean, - sdkVersion?:boolean, - startedAt?:boolean, - teamId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "job" */ -["job_min_order_by"]: { - apiVersion?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - endedAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - integrationId?: ValueTypes["order_by"] | undefined | null, - integrationSdkVersion?: ValueTypes["order_by"] | undefined | null, - integrationVersion?: ValueTypes["order_by"] | undefined | null, - logFile?: ValueTypes["order_by"] | undefined | null, - logLink?: ValueTypes["order_by"] | undefined | null, - requestId?: ValueTypes["order_by"] | undefined | null, - sdkVersion?: ValueTypes["order_by"] | undefined | null, - startedAt?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "job" */ -["job_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["job"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "job" */ -["job_obj_rel_insert_input"]: { - data: ValueTypes["job_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["job_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "job" */ -["job_on_conflict"]: { - constraint: ValueTypes["job_constraint"], - update_columns: (ValueTypes["job_update_column"])[] | undefined | null, - where?: ValueTypes["job_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "job". */ -["job_order_by"]: { - apiVersion?: ValueTypes["order_by"] | undefined | null, - connection?: ValueTypes["connection_order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - endedAt?: ValueTypes["order_by"] | undefined | null, - entities_aggregate?: ValueTypes["entity_aggregate_order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - integration?: ValueTypes["integration_order_by"] | undefined | null, - integrationId?: ValueTypes["order_by"] | undefined | null, - integrationSdkVersion?: ValueTypes["order_by"] | undefined | null, - integrationVersion?: ValueTypes["order_by"] | undefined | null, - issues_aggregate?: ValueTypes["issue_aggregate_order_by"] | undefined | null, - logFile?: ValueTypes["order_by"] | undefined | null, - logLink?: ValueTypes["order_by"] | undefined | null, - logs?: ValueTypes["order_by"] | undefined | null, - method?: ValueTypes["order_by"] | undefined | null, - params?: ValueTypes["order_by"] | undefined | null, - requestId?: ValueTypes["order_by"] | undefined | null, - response?: ValueTypes["order_by"] | undefined | null, - sdkVersion?: ValueTypes["order_by"] | undefined | null, - startedAt?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: job */ -["job_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["job_prepend_input"]: { - logs?: ValueTypes["jsonb"] | undefined | null, - params?: ValueTypes["jsonb"] | undefined | null, - response?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "job" */ -["job_select_column"]:job_select_column; - /** input type for updating data in table "job" */ -["job_set_input"]: { - apiVersion?: string | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - endedAt?: ValueTypes["timestamptz"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - integrationId?: ValueTypes["uuid"] | undefined | null, - integrationSdkVersion?: string | undefined | null, - integrationVersion?: string | undefined | null, - logFile?: string | undefined | null, - logLink?: string | undefined | null, - logs?: ValueTypes["jsonb"] | undefined | null, - method?: ValueTypes["job_method_enum"] | undefined | null, - params?: ValueTypes["jsonb"] | undefined | null, - requestId?: string | undefined | null, - response?: ValueTypes["jsonb"] | undefined | null, - sdkVersion?: string | undefined | null, - startedAt?: ValueTypes["timestamptz"] | undefined | null, - status?: ValueTypes["job_status_enum"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - ["job_status_enum"]:job_status_enum; - /** Boolean expression to compare columns of type "job_status_enum". All fields are combined with logical 'AND'. */ -["job_status_enum_comparison_exp"]: { - _eq?: ValueTypes["job_status_enum"] | undefined | null, - _in?: (ValueTypes["job_status_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["job_status_enum"] | undefined | null, - _nin?: (ValueTypes["job_status_enum"])[] -}; - /** update columns of table "job" */ -["job_update_column"]:job_update_column; - /** columns and relationships of "job_method" */ -["jobMethod"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "job_method" */ -["jobMethod_aggregate"]: AliasType<{ - aggregate?:ValueTypes["jobMethod_aggregate_fields"], - nodes?:ValueTypes["jobMethod"], - __typename?: boolean -}>; - /** aggregate fields of "job_method" */ -["jobMethod_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["jobMethod_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["jobMethod_max_fields"], - min?:ValueTypes["jobMethod_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "job_method". All fields are combined with a logical 'AND'. */ -["jobMethod_bool_exp"]: { - _and?: (ValueTypes["jobMethod_bool_exp"])[], - _not?: ValueTypes["jobMethod_bool_exp"] | undefined | null, - _or?: (ValueTypes["jobMethod_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "job_method" */ -["jobMethod_constraint"]:jobMethod_constraint; - /** input type for inserting data into table "job_method" */ -["jobMethod_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["jobMethod_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["jobMethod_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "job_method" */ -["jobMethod_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["jobMethod"], - __typename?: boolean -}>; - /** on conflict condition type for table "job_method" */ -["jobMethod_on_conflict"]: { - constraint: ValueTypes["jobMethod_constraint"], - update_columns: (ValueTypes["jobMethod_update_column"])[] | undefined | null, - where?: ValueTypes["jobMethod_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "job_method". */ -["jobMethod_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: jobMethod */ -["jobMethod_pk_columns_input"]: { - name: string -}; - /** select columns of table "job_method" */ -["jobMethod_select_column"]:jobMethod_select_column; - /** input type for updating data in table "job_method" */ -["jobMethod_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "job_method" */ -["jobMethod_update_column"]:jobMethod_update_column; - /** columns and relationships of "job_status" */ -["jobStatus"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "job_status" */ -["jobStatus_aggregate"]: AliasType<{ - aggregate?:ValueTypes["jobStatus_aggregate_fields"], - nodes?:ValueTypes["jobStatus"], - __typename?: boolean -}>; - /** aggregate fields of "job_status" */ -["jobStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["jobStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["jobStatus_max_fields"], - min?:ValueTypes["jobStatus_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "job_status". All fields are combined with a logical 'AND'. */ -["jobStatus_bool_exp"]: { - _and?: (ValueTypes["jobStatus_bool_exp"])[], - _not?: ValueTypes["jobStatus_bool_exp"] | undefined | null, - _or?: (ValueTypes["jobStatus_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "job_status" */ -["jobStatus_constraint"]:jobStatus_constraint; - /** input type for inserting data into table "job_status" */ -["jobStatus_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["jobStatus_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["jobStatus_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "job_status" */ -["jobStatus_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["jobStatus"], - __typename?: boolean -}>; - /** on conflict condition type for table "job_status" */ -["jobStatus_on_conflict"]: { - constraint: ValueTypes["jobStatus_constraint"], - update_columns: (ValueTypes["jobStatus_update_column"])[] | undefined | null, - where?: ValueTypes["jobStatus_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "job_status". */ -["jobStatus_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: jobStatus */ -["jobStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "job_status" */ -["jobStatus_select_column"]:jobStatus_select_column; - /** input type for updating data in table "job_status" */ -["jobStatus_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "job_status" */ -["jobStatus_update_column"]:jobStatus_update_column; - ["jsonb"]:unknown; - /** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ -["jsonb_comparison_exp"]: { - /** is the column contained in the given json value */ - _contained_in?: ValueTypes["jsonb"] | undefined | null, - /** does the column contain the given json value at the top level */ - _contains?: ValueTypes["jsonb"] | undefined | null, - _eq?: ValueTypes["jsonb"] | undefined | null, - _gt?: ValueTypes["jsonb"] | undefined | null, - _gte?: ValueTypes["jsonb"] | undefined | null, - /** does the string exist as a top-level key in the column */ - _has_key?: string | undefined | null, - /** do all of these strings exist as top-level keys in the column */ - _has_keys_all?: (string)[], - /** do any of these strings exist as top-level keys in the column */ - _has_keys_any?: (string)[], - _in?: (ValueTypes["jsonb"])[], - _is_null?: boolean | undefined | null, - _lt?: ValueTypes["jsonb"] | undefined | null, - _lte?: ValueTypes["jsonb"] | undefined | null, - _neq?: ValueTypes["jsonb"] | undefined | null, - _nin?: (ValueTypes["jsonb"])[] -}; - /** columns and relationships of "line" */ -["line"]: AliasType<{ - /** An object relationship */ - booking?:ValueTypes["booking"], - bookingId?:boolean, - centTotal?:boolean, - classification?:boolean, - /** An object relationship */ - connection?:ValueTypes["connection"], - connectionId?:boolean, - createdAt?:boolean, - description?:boolean, -enhancementLines?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], -enhancementLines_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], - /** An object relationship */ - enhancingLine?:ValueTypes["line"], - enhancingLineId?:boolean, - id?:boolean, - invoiceStatus?:boolean, - isEnhanced?:boolean, -metadata?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - originCentTotal?:boolean, - originCurrency?:boolean, - originExchangeRate?:boolean, - /** An object relationship */ - payment?:ValueTypes["payment"], - paymentId?:boolean, - subclassification?:boolean, - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "line" */ -["line_aggregate"]: AliasType<{ - aggregate?:ValueTypes["line_aggregate_fields"], - nodes?:ValueTypes["line"], - __typename?: boolean -}>; - /** aggregate fields of "line" */ -["line_aggregate_fields"]: AliasType<{ - avg?:ValueTypes["line_avg_fields"], -count?: [{ columns?: (ValueTypes["line_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["line_max_fields"], - min?:ValueTypes["line_min_fields"], - stddev?:ValueTypes["line_stddev_fields"], - stddev_pop?:ValueTypes["line_stddev_pop_fields"], - stddev_samp?:ValueTypes["line_stddev_samp_fields"], - sum?:ValueTypes["line_sum_fields"], - var_pop?:ValueTypes["line_var_pop_fields"], - var_samp?:ValueTypes["line_var_samp_fields"], - variance?:ValueTypes["line_variance_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "line" */ -["line_aggregate_order_by"]: { - avg?: ValueTypes["line_avg_order_by"] | undefined | null, - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["line_max_order_by"] | undefined | null, - min?: ValueTypes["line_min_order_by"] | undefined | null, - stddev?: ValueTypes["line_stddev_order_by"] | undefined | null, - stddev_pop?: ValueTypes["line_stddev_pop_order_by"] | undefined | null, - stddev_samp?: ValueTypes["line_stddev_samp_order_by"] | undefined | null, - sum?: ValueTypes["line_sum_order_by"] | undefined | null, - var_pop?: ValueTypes["line_var_pop_order_by"] | undefined | null, - var_samp?: ValueTypes["line_var_samp_order_by"] | undefined | null, - variance?: ValueTypes["line_variance_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["line_append_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "line" */ -["line_arr_rel_insert_input"]: { - data: (ValueTypes["line_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["line_on_conflict"] | undefined | null -}; - /** aggregate avg on columns */ -["line_avg_fields"]: AliasType<{ - centTotal?:boolean, - originCentTotal?:boolean, - originExchangeRate?:boolean, - __typename?: boolean -}>; - /** order by avg() on columns of table "line" */ -["line_avg_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null -}; - /** Boolean expression to filter rows from the table "line". All fields are combined with a logical 'AND'. */ -["line_bool_exp"]: { - _and?: (ValueTypes["line_bool_exp"])[], - _not?: ValueTypes["line_bool_exp"] | undefined | null, - _or?: (ValueTypes["line_bool_exp"])[], - booking?: ValueTypes["booking_bool_exp"] | undefined | null, - bookingId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - centTotal?: ValueTypes["Int_comparison_exp"] | undefined | null, - classification?: ValueTypes["classification_enum_comparison_exp"] | undefined | null, - connection?: ValueTypes["connection_bool_exp"] | undefined | null, - connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - description?: ValueTypes["String_comparison_exp"] | undefined | null, - enhancementLines?: ValueTypes["line_bool_exp"] | undefined | null, - enhancingLine?: ValueTypes["line_bool_exp"] | undefined | null, - enhancingLineId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - invoiceStatus?: ValueTypes["String_comparison_exp"] | undefined | null, - isEnhanced?: ValueTypes["Boolean_comparison_exp"] | undefined | null, - metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - originCentTotal?: ValueTypes["Int_comparison_exp"] | undefined | null, - originCurrency?: ValueTypes["String_comparison_exp"] | undefined | null, - originExchangeRate?: ValueTypes["numeric_comparison_exp"] | undefined | null, - payment?: ValueTypes["payment_bool_exp"] | undefined | null, - paymentId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - subclassification?: ValueTypes["subclassification_enum_comparison_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - type?: ValueTypes["String_comparison_exp"] | undefined | null, - uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, - unitId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "line" */ -["line_constraint"]:line_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["line_delete_at_path_input"]: { - metadata?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["line_delete_elem_input"]: { - metadata?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["line_delete_key_input"]: { - metadata?: string | undefined | null -}; - /** input type for incrementing numeric columns in table "line" */ -["line_inc_input"]: { - centTotal?: number | undefined | null, - originCentTotal?: number | undefined | null, - originExchangeRate?: ValueTypes["numeric"] | undefined | null -}; - /** input type for inserting data into table "line" */ -["line_insert_input"]: { - booking?: ValueTypes["booking_obj_rel_insert_input"] | undefined | null, - bookingId?: ValueTypes["uuid"] | undefined | null, - centTotal?: number | undefined | null, - classification?: ValueTypes["classification_enum"] | undefined | null, - connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - description?: string | undefined | null, - enhancementLines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, - enhancingLine?: ValueTypes["line_obj_rel_insert_input"] | undefined | null, - enhancingLineId?: ValueTypes["uuid"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - invoiceStatus?: string | undefined | null, - isEnhanced?: boolean | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - originCentTotal?: number | undefined | null, - originCurrency?: string | undefined | null, - originExchangeRate?: ValueTypes["numeric"] | undefined | null, - payment?: ValueTypes["payment_obj_rel_insert_input"] | undefined | null, - paymentId?: ValueTypes["uuid"] | undefined | null, - subclassification?: ValueTypes["subclassification_enum"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - unitId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate max on columns */ -["line_max_fields"]: AliasType<{ - bookingId?:boolean, - centTotal?:boolean, - connectionId?:boolean, - createdAt?:boolean, - description?:boolean, - enhancingLineId?:boolean, - id?:boolean, - invoiceStatus?:boolean, - originCentTotal?:boolean, - originCurrency?:boolean, - originExchangeRate?:boolean, - paymentId?:boolean, - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "line" */ -["line_max_order_by"]: { - bookingId?: ValueTypes["order_by"] | undefined | null, - centTotal?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - description?: ValueTypes["order_by"] | undefined | null, - enhancingLineId?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - invoiceStatus?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originCurrency?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null, - paymentId?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["line_min_fields"]: AliasType<{ - bookingId?:boolean, - centTotal?:boolean, - connectionId?:boolean, - createdAt?:boolean, - description?:boolean, - enhancingLineId?:boolean, - id?:boolean, - invoiceStatus?:boolean, - originCentTotal?:boolean, - originCurrency?:boolean, - originExchangeRate?:boolean, - paymentId?:boolean, - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "line" */ -["line_min_order_by"]: { - bookingId?: ValueTypes["order_by"] | undefined | null, - centTotal?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - description?: ValueTypes["order_by"] | undefined | null, - enhancingLineId?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - invoiceStatus?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originCurrency?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null, - paymentId?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "line" */ -["line_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["line"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "line" */ -["line_obj_rel_insert_input"]: { - data: ValueTypes["line_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["line_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "line" */ -["line_on_conflict"]: { - constraint: ValueTypes["line_constraint"], - update_columns: (ValueTypes["line_update_column"])[] | undefined | null, - where?: ValueTypes["line_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "line". */ -["line_order_by"]: { - booking?: ValueTypes["booking_order_by"] | undefined | null, - bookingId?: ValueTypes["order_by"] | undefined | null, - centTotal?: ValueTypes["order_by"] | undefined | null, - classification?: ValueTypes["order_by"] | undefined | null, - connection?: ValueTypes["connection_order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - description?: ValueTypes["order_by"] | undefined | null, - enhancementLines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, - enhancingLine?: ValueTypes["line_order_by"] | undefined | null, - enhancingLineId?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - invoiceStatus?: ValueTypes["order_by"] | undefined | null, - isEnhanced?: ValueTypes["order_by"] | undefined | null, - metadata?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originCurrency?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null, - payment?: ValueTypes["payment_order_by"] | undefined | null, - paymentId?: ValueTypes["order_by"] | undefined | null, - subclassification?: ValueTypes["order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: line */ -["line_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["line_prepend_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "line" */ -["line_select_column"]:line_select_column; - /** input type for updating data in table "line" */ -["line_set_input"]: { - bookingId?: ValueTypes["uuid"] | undefined | null, - centTotal?: number | undefined | null, - classification?: ValueTypes["classification_enum"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - description?: string | undefined | null, - enhancingLineId?: ValueTypes["uuid"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - invoiceStatus?: string | undefined | null, - isEnhanced?: boolean | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - originCentTotal?: number | undefined | null, - originCurrency?: string | undefined | null, - originExchangeRate?: ValueTypes["numeric"] | undefined | null, - paymentId?: ValueTypes["uuid"] | undefined | null, - subclassification?: ValueTypes["subclassification_enum"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - unitId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate stddev on columns */ -["line_stddev_fields"]: AliasType<{ - centTotal?:boolean, - originCentTotal?:boolean, - originExchangeRate?:boolean, - __typename?: boolean -}>; - /** order by stddev() on columns of table "line" */ -["line_stddev_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate stddev_pop on columns */ -["line_stddev_pop_fields"]: AliasType<{ - centTotal?:boolean, - originCentTotal?:boolean, - originExchangeRate?:boolean, - __typename?: boolean -}>; - /** order by stddev_pop() on columns of table "line" */ -["line_stddev_pop_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate stddev_samp on columns */ -["line_stddev_samp_fields"]: AliasType<{ - centTotal?:boolean, - originCentTotal?:boolean, - originExchangeRate?:boolean, - __typename?: boolean -}>; - /** order by stddev_samp() on columns of table "line" */ -["line_stddev_samp_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate sum on columns */ -["line_sum_fields"]: AliasType<{ - centTotal?:boolean, - originCentTotal?:boolean, - originExchangeRate?:boolean, - __typename?: boolean -}>; - /** order by sum() on columns of table "line" */ -["line_sum_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null -}; - /** update columns of table "line" */ -["line_update_column"]:line_update_column; - /** aggregate var_pop on columns */ -["line_var_pop_fields"]: AliasType<{ - centTotal?:boolean, - originCentTotal?:boolean, - originExchangeRate?:boolean, - __typename?: boolean -}>; - /** order by var_pop() on columns of table "line" */ -["line_var_pop_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate var_samp on columns */ -["line_var_samp_fields"]: AliasType<{ - centTotal?:boolean, - originCentTotal?:boolean, - originExchangeRate?:boolean, - __typename?: boolean -}>; - /** order by var_samp() on columns of table "line" */ -["line_var_samp_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate variance on columns */ -["line_variance_fields"]: AliasType<{ - centTotal?:boolean, - originCentTotal?:boolean, - originExchangeRate?:boolean, - __typename?: boolean -}>; - /** order by variance() on columns of table "line" */ -["line_variance_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null, - originCentTotal?: ValueTypes["order_by"] | undefined | null, - originExchangeRate?: ValueTypes["order_by"] | undefined | null -}; - /** columns and relationships of "metric" */ -["metric"]: AliasType<{ - /** An object relationship */ - connection?:ValueTypes["connection"], - connectionId?:boolean, - createdAt?:boolean, - ensuedAt?:boolean, - id?:boolean, -metadata?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - text?:boolean, - type?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - value?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "metric" */ -["metric_aggregate"]: AliasType<{ - aggregate?:ValueTypes["metric_aggregate_fields"], - nodes?:ValueTypes["metric"], - __typename?: boolean -}>; - /** aggregate fields of "metric" */ -["metric_aggregate_fields"]: AliasType<{ - avg?:ValueTypes["metric_avg_fields"], -count?: [{ columns?: (ValueTypes["metric_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["metric_max_fields"], - min?:ValueTypes["metric_min_fields"], - stddev?:ValueTypes["metric_stddev_fields"], - stddev_pop?:ValueTypes["metric_stddev_pop_fields"], - stddev_samp?:ValueTypes["metric_stddev_samp_fields"], - sum?:ValueTypes["metric_sum_fields"], - var_pop?:ValueTypes["metric_var_pop_fields"], - var_samp?:ValueTypes["metric_var_samp_fields"], - variance?:ValueTypes["metric_variance_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "metric" */ -["metric_aggregate_order_by"]: { - avg?: ValueTypes["metric_avg_order_by"] | undefined | null, - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["metric_max_order_by"] | undefined | null, - min?: ValueTypes["metric_min_order_by"] | undefined | null, - stddev?: ValueTypes["metric_stddev_order_by"] | undefined | null, - stddev_pop?: ValueTypes["metric_stddev_pop_order_by"] | undefined | null, - stddev_samp?: ValueTypes["metric_stddev_samp_order_by"] | undefined | null, - sum?: ValueTypes["metric_sum_order_by"] | undefined | null, - var_pop?: ValueTypes["metric_var_pop_order_by"] | undefined | null, - var_samp?: ValueTypes["metric_var_samp_order_by"] | undefined | null, - variance?: ValueTypes["metric_variance_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["metric_append_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "metric" */ -["metric_arr_rel_insert_input"]: { - data: (ValueTypes["metric_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["metric_on_conflict"] | undefined | null -}; - /** aggregate avg on columns */ -["metric_avg_fields"]: AliasType<{ - value?:boolean, - __typename?: boolean -}>; - /** order by avg() on columns of table "metric" */ -["metric_avg_order_by"]: { - value?: ValueTypes["order_by"] | undefined | null -}; - /** Boolean expression to filter rows from the table "metric". All fields are combined with a logical 'AND'. */ -["metric_bool_exp"]: { - _and?: (ValueTypes["metric_bool_exp"])[], - _not?: ValueTypes["metric_bool_exp"] | undefined | null, - _or?: (ValueTypes["metric_bool_exp"])[], - connection?: ValueTypes["connection_bool_exp"] | undefined | null, - connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - ensuedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - text?: ValueTypes["String_comparison_exp"] | undefined | null, - type?: ValueTypes["String_comparison_exp"] | undefined | null, - uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, - unitId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - value?: ValueTypes["float8_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "metric" */ -["metric_constraint"]:metric_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["metric_delete_at_path_input"]: { - metadata?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["metric_delete_elem_input"]: { - metadata?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["metric_delete_key_input"]: { - metadata?: string | undefined | null -}; - /** input type for incrementing numeric columns in table "metric" */ -["metric_inc_input"]: { - value?: ValueTypes["float8"] | undefined | null -}; - /** input type for inserting data into table "metric" */ -["metric_insert_input"]: { - connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - ensuedAt?: ValueTypes["timestamptz"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - text?: string | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - unitId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null, - value?: ValueTypes["float8"] | undefined | null -}; - /** aggregate max on columns */ -["metric_max_fields"]: AliasType<{ - connectionId?:boolean, - createdAt?:boolean, - ensuedAt?:boolean, - id?:boolean, - teamId?:boolean, - text?:boolean, - type?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - value?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "metric" */ -["metric_max_order_by"]: { - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - ensuedAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - text?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null, - value?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["metric_min_fields"]: AliasType<{ - connectionId?:boolean, - createdAt?:boolean, - ensuedAt?:boolean, - id?:boolean, - teamId?:boolean, - text?:boolean, - type?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - value?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "metric" */ -["metric_min_order_by"]: { - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - ensuedAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - text?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null, - value?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "metric" */ -["metric_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["metric"], - __typename?: boolean -}>; - /** on conflict condition type for table "metric" */ -["metric_on_conflict"]: { - constraint: ValueTypes["metric_constraint"], - update_columns: (ValueTypes["metric_update_column"])[] | undefined | null, - where?: ValueTypes["metric_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "metric". */ -["metric_order_by"]: { - connection?: ValueTypes["connection_order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - ensuedAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - metadata?: ValueTypes["order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - text?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null, - value?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: metric */ -["metric_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["metric_prepend_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "metric" */ -["metric_select_column"]:metric_select_column; - /** input type for updating data in table "metric" */ -["metric_set_input"]: { - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - ensuedAt?: ValueTypes["timestamptz"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - text?: string | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - unitId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null, - value?: ValueTypes["float8"] | undefined | null -}; - /** aggregate stddev on columns */ -["metric_stddev_fields"]: AliasType<{ - value?:boolean, - __typename?: boolean -}>; - /** order by stddev() on columns of table "metric" */ -["metric_stddev_order_by"]: { - value?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate stddev_pop on columns */ -["metric_stddev_pop_fields"]: AliasType<{ - value?:boolean, - __typename?: boolean -}>; - /** order by stddev_pop() on columns of table "metric" */ -["metric_stddev_pop_order_by"]: { - value?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate stddev_samp on columns */ -["metric_stddev_samp_fields"]: AliasType<{ - value?:boolean, - __typename?: boolean -}>; - /** order by stddev_samp() on columns of table "metric" */ -["metric_stddev_samp_order_by"]: { - value?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate sum on columns */ -["metric_sum_fields"]: AliasType<{ - value?:boolean, - __typename?: boolean -}>; - /** order by sum() on columns of table "metric" */ -["metric_sum_order_by"]: { - value?: ValueTypes["order_by"] | undefined | null -}; - /** update columns of table "metric" */ -["metric_update_column"]:metric_update_column; - /** aggregate var_pop on columns */ -["metric_var_pop_fields"]: AliasType<{ - value?:boolean, - __typename?: boolean -}>; - /** order by var_pop() on columns of table "metric" */ -["metric_var_pop_order_by"]: { - value?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate var_samp on columns */ -["metric_var_samp_fields"]: AliasType<{ - value?:boolean, - __typename?: boolean -}>; - /** order by var_samp() on columns of table "metric" */ -["metric_var_samp_order_by"]: { - value?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate variance on columns */ -["metric_variance_fields"]: AliasType<{ - value?:boolean, - __typename?: boolean -}>; - /** order by variance() on columns of table "metric" */ -["metric_variance_order_by"]: { - value?: ValueTypes["order_by"] | undefined | null -}; - /** mutation root */ -["mutation_root"]: AliasType<{ -deleteBooking?: [{ id: ValueTypes["uuid"]},ValueTypes["booking"]], -deleteBookingStatus?: [{ name: string},ValueTypes["bookingStatus"]], -deleteBookingStatuses?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["bookingStatus_bool_exp"]},ValueTypes["bookingStatus_mutation_response"]], -deleteBookings?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["booking_bool_exp"]},ValueTypes["booking_mutation_response"]], -deleteClassification?: [{ name: string},ValueTypes["classification"]], -deleteClassifications?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["classification_bool_exp"]},ValueTypes["classification_mutation_response"]], -deleteConnection?: [{ id: ValueTypes["uuid"]},ValueTypes["connection"]], -deleteConnections?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["connection_bool_exp"]},ValueTypes["connection_mutation_response"]], -deleteCurrencies?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["currency_bool_exp"]},ValueTypes["currency_mutation_response"]], -deleteCurrency?: [{ name: string},ValueTypes["currency"]], -deleteEntities?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["entity_bool_exp"]},ValueTypes["entity_mutation_response"]], -deleteEntity?: [{ id: ValueTypes["uuid"]},ValueTypes["entity"]], -deleteEntityStatus?: [{ name: string},ValueTypes["entityStatus"]], -deleteEntityStatuses?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["entityStatus_bool_exp"]},ValueTypes["entityStatus_mutation_response"]], -deleteIntegration?: [{ id: ValueTypes["uuid"]},ValueTypes["integration"]], -deleteIntegrationType?: [{ name: string},ValueTypes["integrationType"]], -deleteIntegrationTypes?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["integrationType_bool_exp"]},ValueTypes["integrationType_mutation_response"]], -deleteIntegrations?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["integration_bool_exp"]},ValueTypes["integration_mutation_response"]], -deleteIssue?: [{ id: ValueTypes["uuid"]},ValueTypes["issue"]], -deleteIssues?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["issue_bool_exp"]},ValueTypes["issue_mutation_response"]], -deleteJob?: [{ id: ValueTypes["uuid"]},ValueTypes["job"]], -deleteJobMethod?: [{ name: string},ValueTypes["jobMethod"]], -deleteJobMethods?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["jobMethod_bool_exp"]},ValueTypes["jobMethod_mutation_response"]], -deleteJobStatus?: [{ name: string},ValueTypes["jobStatus"]], -deleteJobStatuses?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["jobStatus_bool_exp"]},ValueTypes["jobStatus_mutation_response"]], -deleteJobs?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["job_bool_exp"]},ValueTypes["job_mutation_response"]], -deleteLine?: [{ id: ValueTypes["uuid"]},ValueTypes["line"]], -deleteLines?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["line_bool_exp"]},ValueTypes["line_mutation_response"]], -deleteMetric?: [{ id: ValueTypes["uuid"]},ValueTypes["metric"]], -deleteMetrics?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["metric_bool_exp"]},ValueTypes["metric_mutation_response"]], -deleteNormalizedType?: [{ name: string},ValueTypes["normalizedType"]], -deleteNormalizedTypes?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["normalizedType_bool_exp"]},ValueTypes["normalizedType_mutation_response"]], -deletePayment?: [{ id: ValueTypes["uuid"]},ValueTypes["payment"]], -deletePaymentStatus?: [{ name: string},ValueTypes["paymentStatus"]], -deletePaymentStatuses?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["paymentStatus_bool_exp"]},ValueTypes["paymentStatus_mutation_response"]], -deletePaymentType?: [{ name: string},ValueTypes["paymentType"]], -deletePaymentTypes?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["paymentType_bool_exp"]},ValueTypes["paymentType_mutation_response"]], -deletePayments?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["payment_bool_exp"]},ValueTypes["payment_mutation_response"]], -deleteSubclassification?: [{ name: string},ValueTypes["subclassification"]], -deleteSubclassifications?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["subclassification_bool_exp"]},ValueTypes["subclassification_mutation_response"]], -deleteTag?: [{ id: ValueTypes["uuid"]},ValueTypes["tag"]], -deleteTags?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["tag_bool_exp"]},ValueTypes["tag_mutation_response"]], -deleteTeam?: [{ id: ValueTypes["uuid"]},ValueTypes["team"]], -deleteTeamUser?: [{ id: ValueTypes["uuid"]},ValueTypes["teamUser"]], -deleteTeamUsers?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["teamUser_bool_exp"]},ValueTypes["teamUser_mutation_response"]], -deleteTeams?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["team_bool_exp"]},ValueTypes["team_mutation_response"]], -deleteUnit?: [{ id: ValueTypes["uuid"]},ValueTypes["unit"]], -deleteUnits?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["unit_bool_exp"]},ValueTypes["unit_mutation_response"]], -deleteUser?: [{ id: ValueTypes["uuid"]},ValueTypes["user"]], -deleteUserStatus?: [{ name: string},ValueTypes["userStatus"]], -deleteUserStatuses?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["userStatus_bool_exp"]},ValueTypes["userStatus_mutation_response"]], -deleteUsers?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["user_bool_exp"]},ValueTypes["user_mutation_response"]], -deleteWebhook?: [{ id: ValueTypes["uuid"]},ValueTypes["webhook"]], -deleteWebhooks?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["webhook_bool_exp"]},ValueTypes["webhook_mutation_response"]], -delete_booking_channel?: [{ /** filter the rows which have to be deleted */ - where: ValueTypes["booking_channel_bool_exp"]},ValueTypes["booking_channel_mutation_response"]], -delete_booking_channel_by_pk?: [{ name: string},ValueTypes["booking_channel"]], -insertBooking?: [{ /** the row to be inserted */ - object: ValueTypes["booking_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["booking_on_conflict"] | undefined | null},ValueTypes["booking"]], -insertBookingStatus?: [{ /** the row to be inserted */ - object: ValueTypes["bookingStatus_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["bookingStatus_on_conflict"] | undefined | null},ValueTypes["bookingStatus"]], -insertBookingStatuses?: [{ /** the rows to be inserted */ - objects: (ValueTypes["bookingStatus_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["bookingStatus_on_conflict"] | undefined | null},ValueTypes["bookingStatus_mutation_response"]], -insertBookings?: [{ /** the rows to be inserted */ - objects: (ValueTypes["booking_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["booking_on_conflict"] | undefined | null},ValueTypes["booking_mutation_response"]], -insertClassification?: [{ /** the row to be inserted */ - object: ValueTypes["classification_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["classification_on_conflict"] | undefined | null},ValueTypes["classification"]], -insertClassifications?: [{ /** the rows to be inserted */ - objects: (ValueTypes["classification_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["classification_on_conflict"] | undefined | null},ValueTypes["classification_mutation_response"]], -insertConnection?: [{ /** the row to be inserted */ - object: ValueTypes["connection_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["connection_on_conflict"] | undefined | null},ValueTypes["connection"]], -insertConnections?: [{ /** the rows to be inserted */ - objects: (ValueTypes["connection_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["connection_on_conflict"] | undefined | null},ValueTypes["connection_mutation_response"]], -insertCurrencies?: [{ /** the rows to be inserted */ - objects: (ValueTypes["currency_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["currency_on_conflict"] | undefined | null},ValueTypes["currency_mutation_response"]], -insertCurrency?: [{ /** the row to be inserted */ - object: ValueTypes["currency_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["currency_on_conflict"] | undefined | null},ValueTypes["currency"]], -insertEntities?: [{ /** the rows to be inserted */ - objects: (ValueTypes["entity_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["entity_on_conflict"] | undefined | null},ValueTypes["entity_mutation_response"]], -insertEntity?: [{ /** the row to be inserted */ - object: ValueTypes["entity_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["entity_on_conflict"] | undefined | null},ValueTypes["entity"]], -insertEntityStatus?: [{ /** the row to be inserted */ - object: ValueTypes["entityStatus_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["entityStatus_on_conflict"] | undefined | null},ValueTypes["entityStatus"]], -insertEntityStatuses?: [{ /** the rows to be inserted */ - objects: (ValueTypes["entityStatus_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["entityStatus_on_conflict"] | undefined | null},ValueTypes["entityStatus_mutation_response"]], -insertIntegration?: [{ /** the row to be inserted */ - object: ValueTypes["integration_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["integration_on_conflict"] | undefined | null},ValueTypes["integration"]], -insertIntegrationType?: [{ /** the row to be inserted */ - object: ValueTypes["integrationType_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["integrationType_on_conflict"] | undefined | null},ValueTypes["integrationType"]], -insertIntegrationTypes?: [{ /** the rows to be inserted */ - objects: (ValueTypes["integrationType_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["integrationType_on_conflict"] | undefined | null},ValueTypes["integrationType_mutation_response"]], -insertIntegrations?: [{ /** the rows to be inserted */ - objects: (ValueTypes["integration_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["integration_on_conflict"] | undefined | null},ValueTypes["integration_mutation_response"]], -insertIssue?: [{ /** the row to be inserted */ - object: ValueTypes["issue_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["issue_on_conflict"] | undefined | null},ValueTypes["issue"]], -insertIssues?: [{ /** the rows to be inserted */ - objects: (ValueTypes["issue_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["issue_on_conflict"] | undefined | null},ValueTypes["issue_mutation_response"]], -insertJob?: [{ /** the row to be inserted */ - object: ValueTypes["job_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["job_on_conflict"] | undefined | null},ValueTypes["job"]], -insertJobMethod?: [{ /** the row to be inserted */ - object: ValueTypes["jobMethod_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["jobMethod_on_conflict"] | undefined | null},ValueTypes["jobMethod"]], -insertJobMethods?: [{ /** the rows to be inserted */ - objects: (ValueTypes["jobMethod_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["jobMethod_on_conflict"] | undefined | null},ValueTypes["jobMethod_mutation_response"]], -insertJobStatus?: [{ /** the row to be inserted */ - object: ValueTypes["jobStatus_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["jobStatus_on_conflict"] | undefined | null},ValueTypes["jobStatus"]], -insertJobStatuses?: [{ /** the rows to be inserted */ - objects: (ValueTypes["jobStatus_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["jobStatus_on_conflict"] | undefined | null},ValueTypes["jobStatus_mutation_response"]], -insertJobs?: [{ /** the rows to be inserted */ - objects: (ValueTypes["job_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["job_on_conflict"] | undefined | null},ValueTypes["job_mutation_response"]], -insertLine?: [{ /** the row to be inserted */ - object: ValueTypes["line_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["line_on_conflict"] | undefined | null},ValueTypes["line"]], -insertLines?: [{ /** the rows to be inserted */ - objects: (ValueTypes["line_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["line_on_conflict"] | undefined | null},ValueTypes["line_mutation_response"]], -insertMetric?: [{ /** the row to be inserted */ - object: ValueTypes["metric_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["metric_on_conflict"] | undefined | null},ValueTypes["metric"]], -insertMetrics?: [{ /** the rows to be inserted */ - objects: (ValueTypes["metric_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["metric_on_conflict"] | undefined | null},ValueTypes["metric_mutation_response"]], -insertNormalizedType?: [{ /** the row to be inserted */ - object: ValueTypes["normalizedType_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["normalizedType_on_conflict"] | undefined | null},ValueTypes["normalizedType"]], -insertNormalizedTypes?: [{ /** the rows to be inserted */ - objects: (ValueTypes["normalizedType_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["normalizedType_on_conflict"] | undefined | null},ValueTypes["normalizedType_mutation_response"]], -insertPayment?: [{ /** the row to be inserted */ - object: ValueTypes["payment_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["payment_on_conflict"] | undefined | null},ValueTypes["payment"]], -insertPaymentStatus?: [{ /** the row to be inserted */ - object: ValueTypes["paymentStatus_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["paymentStatus_on_conflict"] | undefined | null},ValueTypes["paymentStatus"]], -insertPaymentStatuses?: [{ /** the rows to be inserted */ - objects: (ValueTypes["paymentStatus_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["paymentStatus_on_conflict"] | undefined | null},ValueTypes["paymentStatus_mutation_response"]], -insertPaymentType?: [{ /** the row to be inserted */ - object: ValueTypes["paymentType_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["paymentType_on_conflict"] | undefined | null},ValueTypes["paymentType"]], -insertPaymentTypes?: [{ /** the rows to be inserted */ - objects: (ValueTypes["paymentType_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["paymentType_on_conflict"] | undefined | null},ValueTypes["paymentType_mutation_response"]], -insertPayments?: [{ /** the rows to be inserted */ - objects: (ValueTypes["payment_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["payment_on_conflict"] | undefined | null},ValueTypes["payment_mutation_response"]], -insertSubclassification?: [{ /** the row to be inserted */ - object: ValueTypes["subclassification_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["subclassification_on_conflict"] | undefined | null},ValueTypes["subclassification"]], -insertSubclassifications?: [{ /** the rows to be inserted */ - objects: (ValueTypes["subclassification_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["subclassification_on_conflict"] | undefined | null},ValueTypes["subclassification_mutation_response"]], -insertTag?: [{ /** the row to be inserted */ - object: ValueTypes["tag_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["tag_on_conflict"] | undefined | null},ValueTypes["tag"]], -insertTags?: [{ /** the rows to be inserted */ - objects: (ValueTypes["tag_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["tag_on_conflict"] | undefined | null},ValueTypes["tag_mutation_response"]], -insertTeam?: [{ /** the row to be inserted */ - object: ValueTypes["team_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["team_on_conflict"] | undefined | null},ValueTypes["team"]], -insertTeamUser?: [{ /** the row to be inserted */ - object: ValueTypes["teamUser_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["teamUser_on_conflict"] | undefined | null},ValueTypes["teamUser"]], -insertTeamUsers?: [{ /** the rows to be inserted */ - objects: (ValueTypes["teamUser_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["teamUser_on_conflict"] | undefined | null},ValueTypes["teamUser_mutation_response"]], -insertTeams?: [{ /** the rows to be inserted */ - objects: (ValueTypes["team_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["team_on_conflict"] | undefined | null},ValueTypes["team_mutation_response"]], -insertUnit?: [{ /** the row to be inserted */ - object: ValueTypes["unit_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["unit_on_conflict"] | undefined | null},ValueTypes["unit"]], -insertUnits?: [{ /** the rows to be inserted */ - objects: (ValueTypes["unit_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["unit_on_conflict"] | undefined | null},ValueTypes["unit_mutation_response"]], -insertUser?: [{ /** the row to be inserted */ - object: ValueTypes["user_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["user_on_conflict"] | undefined | null},ValueTypes["user"]], -insertUserStatus?: [{ /** the row to be inserted */ - object: ValueTypes["userStatus_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["userStatus_on_conflict"] | undefined | null},ValueTypes["userStatus"]], -insertUserStatuses?: [{ /** the rows to be inserted */ - objects: (ValueTypes["userStatus_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["userStatus_on_conflict"] | undefined | null},ValueTypes["userStatus_mutation_response"]], -insertUsers?: [{ /** the rows to be inserted */ - objects: (ValueTypes["user_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["user_on_conflict"] | undefined | null},ValueTypes["user_mutation_response"]], -insertWebhook?: [{ /** the row to be inserted */ - object: ValueTypes["webhook_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["webhook_on_conflict"] | undefined | null},ValueTypes["webhook"]], -insertWebhooks?: [{ /** the rows to be inserted */ - objects: (ValueTypes["webhook_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["webhook_on_conflict"] | undefined | null},ValueTypes["webhook_mutation_response"]], -insert_booking_channel?: [{ /** the rows to be inserted */ - objects: (ValueTypes["booking_channel_insert_input"])[] | undefined | null, /** on conflict condition */ - on_conflict?: ValueTypes["booking_channel_on_conflict"] | undefined | null},ValueTypes["booking_channel_mutation_response"]], -insert_booking_channel_one?: [{ /** the row to be inserted */ - object: ValueTypes["booking_channel_insert_input"], /** on conflict condition */ - on_conflict?: ValueTypes["booking_channel_on_conflict"] | undefined | null},ValueTypes["booking_channel"]], -updateBooking?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["booking_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["booking_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["booking_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["booking_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["booking_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["booking_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["booking_set_input"] | undefined | null, pk_columns: ValueTypes["booking_pk_columns_input"]},ValueTypes["booking"]], -updateBookingStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["bookingStatus_set_input"] | undefined | null, pk_columns: ValueTypes["bookingStatus_pk_columns_input"]},ValueTypes["bookingStatus"]], -updateBookingStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["bookingStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["bookingStatus_bool_exp"]},ValueTypes["bookingStatus_mutation_response"]], -updateBookings?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["booking_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["booking_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["booking_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["booking_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["booking_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["booking_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["booking_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["booking_bool_exp"]},ValueTypes["booking_mutation_response"]], -updateClassification?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["classification_set_input"] | undefined | null, pk_columns: ValueTypes["classification_pk_columns_input"]},ValueTypes["classification"]], -updateClassifications?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["classification_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["classification_bool_exp"]},ValueTypes["classification_mutation_response"]], -updateConnection?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["connection_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["connection_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["connection_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["connection_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["connection_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["connection_set_input"] | undefined | null, pk_columns: ValueTypes["connection_pk_columns_input"]},ValueTypes["connection"]], -updateConnections?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["connection_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["connection_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["connection_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["connection_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["connection_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["connection_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["connection_bool_exp"]},ValueTypes["connection_mutation_response"]], -updateCurrencies?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["currency_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["currency_bool_exp"]},ValueTypes["currency_mutation_response"]], -updateCurrency?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["currency_set_input"] | undefined | null, pk_columns: ValueTypes["currency_pk_columns_input"]},ValueTypes["currency"]], -updateEntities?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["entity_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["entity_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["entity_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["entity_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["entity_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["entity_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["entity_bool_exp"]},ValueTypes["entity_mutation_response"]], -updateEntity?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["entity_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["entity_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["entity_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["entity_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["entity_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["entity_set_input"] | undefined | null, pk_columns: ValueTypes["entity_pk_columns_input"]},ValueTypes["entity"]], -updateEntityStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["entityStatus_set_input"] | undefined | null, pk_columns: ValueTypes["entityStatus_pk_columns_input"]},ValueTypes["entityStatus"]], -updateEntityStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["entityStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["entityStatus_bool_exp"]},ValueTypes["entityStatus_mutation_response"]], -updateIntegration?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["integration_set_input"] | undefined | null, pk_columns: ValueTypes["integration_pk_columns_input"]},ValueTypes["integration"]], -updateIntegrationType?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["integrationType_set_input"] | undefined | null, pk_columns: ValueTypes["integrationType_pk_columns_input"]},ValueTypes["integrationType"]], -updateIntegrationTypes?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["integrationType_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["integrationType_bool_exp"]},ValueTypes["integrationType_mutation_response"]], -updateIntegrations?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["integration_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["integration_bool_exp"]},ValueTypes["integration_mutation_response"]], -updateIssue?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["issue_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["issue_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["issue_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["issue_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["issue_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["issue_set_input"] | undefined | null, pk_columns: ValueTypes["issue_pk_columns_input"]},ValueTypes["issue"]], -updateIssues?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["issue_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["issue_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["issue_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["issue_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["issue_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["issue_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["issue_bool_exp"]},ValueTypes["issue_mutation_response"]], -updateJob?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["job_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["job_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["job_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["job_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["job_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["job_set_input"] | undefined | null, pk_columns: ValueTypes["job_pk_columns_input"]},ValueTypes["job"]], -updateJobMethod?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["jobMethod_set_input"] | undefined | null, pk_columns: ValueTypes["jobMethod_pk_columns_input"]},ValueTypes["jobMethod"]], -updateJobMethods?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["jobMethod_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["jobMethod_bool_exp"]},ValueTypes["jobMethod_mutation_response"]], -updateJobStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["jobStatus_set_input"] | undefined | null, pk_columns: ValueTypes["jobStatus_pk_columns_input"]},ValueTypes["jobStatus"]], -updateJobStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["jobStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["jobStatus_bool_exp"]},ValueTypes["jobStatus_mutation_response"]], -updateJobs?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["job_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["job_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["job_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["job_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["job_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["job_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["job_bool_exp"]},ValueTypes["job_mutation_response"]], -updateLine?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["line_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["line_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["line_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["line_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["line_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["line_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["line_set_input"] | undefined | null, pk_columns: ValueTypes["line_pk_columns_input"]},ValueTypes["line"]], -updateLines?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["line_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["line_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["line_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["line_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["line_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["line_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["line_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["line_bool_exp"]},ValueTypes["line_mutation_response"]], -updateMetric?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["metric_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["metric_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["metric_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["metric_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["metric_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["metric_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["metric_set_input"] | undefined | null, pk_columns: ValueTypes["metric_pk_columns_input"]},ValueTypes["metric"]], -updateMetrics?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["metric_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["metric_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["metric_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["metric_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["metric_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["metric_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["metric_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["metric_bool_exp"]},ValueTypes["metric_mutation_response"]], -updateNormalizedType?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["normalizedType_set_input"] | undefined | null, pk_columns: ValueTypes["normalizedType_pk_columns_input"]},ValueTypes["normalizedType"]], -updateNormalizedTypes?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["normalizedType_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["normalizedType_bool_exp"]},ValueTypes["normalizedType_mutation_response"]], -updatePayment?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["payment_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["payment_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["payment_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["payment_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["payment_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["payment_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["payment_set_input"] | undefined | null, pk_columns: ValueTypes["payment_pk_columns_input"]},ValueTypes["payment"]], -updatePaymentStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["paymentStatus_set_input"] | undefined | null, pk_columns: ValueTypes["paymentStatus_pk_columns_input"]},ValueTypes["paymentStatus"]], -updatePaymentStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["paymentStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["paymentStatus_bool_exp"]},ValueTypes["paymentStatus_mutation_response"]], -updatePaymentType?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["paymentType_set_input"] | undefined | null, pk_columns: ValueTypes["paymentType_pk_columns_input"]},ValueTypes["paymentType"]], -updatePaymentTypes?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["paymentType_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["paymentType_bool_exp"]},ValueTypes["paymentType_mutation_response"]], -updatePayments?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["payment_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["payment_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["payment_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["payment_delete_key_input"] | undefined | null, /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["payment_inc_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["payment_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["payment_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["payment_bool_exp"]},ValueTypes["payment_mutation_response"]], -updateSubclassification?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["subclassification_set_input"] | undefined | null, pk_columns: ValueTypes["subclassification_pk_columns_input"]},ValueTypes["subclassification"]], -updateSubclassifications?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["subclassification_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["subclassification_bool_exp"]},ValueTypes["subclassification_mutation_response"]], -updateTag?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["tag_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["tag_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["tag_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["tag_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["tag_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["tag_set_input"] | undefined | null, pk_columns: ValueTypes["tag_pk_columns_input"]},ValueTypes["tag"]], -updateTags?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["tag_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["tag_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["tag_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["tag_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["tag_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["tag_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["tag_bool_exp"]},ValueTypes["tag_mutation_response"]], -updateTeam?: [{ /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["team_inc_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["team_set_input"] | undefined | null, pk_columns: ValueTypes["team_pk_columns_input"]},ValueTypes["team"]], -updateTeamUser?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["teamUser_set_input"] | undefined | null, pk_columns: ValueTypes["teamUser_pk_columns_input"]},ValueTypes["teamUser"]], -updateTeamUsers?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["teamUser_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["teamUser_bool_exp"]},ValueTypes["teamUser_mutation_response"]], -updateTeams?: [{ /** increments the numeric columns with given value of the filtered values */ - _inc?: ValueTypes["team_inc_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["team_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["team_bool_exp"]},ValueTypes["team_mutation_response"]], -updateUnit?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["unit_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["unit_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["unit_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["unit_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["unit_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["unit_set_input"] | undefined | null, pk_columns: ValueTypes["unit_pk_columns_input"]},ValueTypes["unit"]], -updateUnits?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["unit_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["unit_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["unit_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["unit_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["unit_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["unit_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["unit_bool_exp"]},ValueTypes["unit_mutation_response"]], -updateUser?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["user_set_input"] | undefined | null, pk_columns: ValueTypes["user_pk_columns_input"]},ValueTypes["user"]], -updateUserStatus?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["userStatus_set_input"] | undefined | null, pk_columns: ValueTypes["userStatus_pk_columns_input"]},ValueTypes["userStatus"]], -updateUserStatuses?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["userStatus_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["userStatus_bool_exp"]},ValueTypes["userStatus_mutation_response"]], -updateUsers?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["user_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["user_bool_exp"]},ValueTypes["user_mutation_response"]], -updateWebhook?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["webhook_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["webhook_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["webhook_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["webhook_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["webhook_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["webhook_set_input"] | undefined | null, pk_columns: ValueTypes["webhook_pk_columns_input"]},ValueTypes["webhook"]], -updateWebhooks?: [{ /** append existing jsonb value of filtered columns with new jsonb value */ - _append?: ValueTypes["webhook_append_input"] | undefined | null, /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ - _delete_at_path?: ValueTypes["webhook_delete_at_path_input"] | undefined | null, /** delete the array element with specified index (negative integers count from -the end). throws an error if top level container is not an array */ - _delete_elem?: ValueTypes["webhook_delete_elem_input"] | undefined | null, /** delete key/value pair or string element. key/value pairs are matched based on their key value */ - _delete_key?: ValueTypes["webhook_delete_key_input"] | undefined | null, /** prepend existing jsonb value of filtered columns with new jsonb value */ - _prepend?: ValueTypes["webhook_prepend_input"] | undefined | null, /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["webhook_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["webhook_bool_exp"]},ValueTypes["webhook_mutation_response"]], -update_booking_channel?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["booking_channel_set_input"] | undefined | null, /** filter the rows which have to be updated */ - where: ValueTypes["booking_channel_bool_exp"]},ValueTypes["booking_channel_mutation_response"]], -update_booking_channel_by_pk?: [{ /** sets the columns of the filtered rows to the given values */ - _set?: ValueTypes["booking_channel_set_input"] | undefined | null, pk_columns: ValueTypes["booking_channel_pk_columns_input"]},ValueTypes["booking_channel"]], - __typename?: boolean -}>; - ["normalized_type_enum"]:normalized_type_enum; - /** Boolean expression to compare columns of type "normalized_type_enum". All fields are combined with logical 'AND'. */ -["normalized_type_enum_comparison_exp"]: { - _eq?: ValueTypes["normalized_type_enum"] | undefined | null, - _in?: (ValueTypes["normalized_type_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["normalized_type_enum"] | undefined | null, - _nin?: (ValueTypes["normalized_type_enum"])[] -}; - /** columns and relationships of "normalized_type" */ -["normalizedType"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "normalized_type" */ -["normalizedType_aggregate"]: AliasType<{ - aggregate?:ValueTypes["normalizedType_aggregate_fields"], - nodes?:ValueTypes["normalizedType"], - __typename?: boolean -}>; - /** aggregate fields of "normalized_type" */ -["normalizedType_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["normalizedType_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["normalizedType_max_fields"], - min?:ValueTypes["normalizedType_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "normalized_type". All fields are combined with a logical 'AND'. */ -["normalizedType_bool_exp"]: { - _and?: (ValueTypes["normalizedType_bool_exp"])[], - _not?: ValueTypes["normalizedType_bool_exp"] | undefined | null, - _or?: (ValueTypes["normalizedType_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "normalized_type" */ -["normalizedType_constraint"]:normalizedType_constraint; - /** input type for inserting data into table "normalized_type" */ -["normalizedType_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["normalizedType_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["normalizedType_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "normalized_type" */ -["normalizedType_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["normalizedType"], - __typename?: boolean -}>; - /** on conflict condition type for table "normalized_type" */ -["normalizedType_on_conflict"]: { - constraint: ValueTypes["normalizedType_constraint"], - update_columns: (ValueTypes["normalizedType_update_column"])[] | undefined | null, - where?: ValueTypes["normalizedType_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "normalized_type". */ -["normalizedType_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: normalizedType */ -["normalizedType_pk_columns_input"]: { - name: string -}; - /** select columns of table "normalized_type" */ -["normalizedType_select_column"]:normalizedType_select_column; - /** input type for updating data in table "normalized_type" */ -["normalizedType_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "normalized_type" */ -["normalizedType_update_column"]:normalizedType_update_column; - ["numeric"]:unknown; - /** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ -["numeric_comparison_exp"]: { - _eq?: ValueTypes["numeric"] | undefined | null, - _gt?: ValueTypes["numeric"] | undefined | null, - _gte?: ValueTypes["numeric"] | undefined | null, - _in?: (ValueTypes["numeric"])[], - _is_null?: boolean | undefined | null, - _lt?: ValueTypes["numeric"] | undefined | null, - _lte?: ValueTypes["numeric"] | undefined | null, - _neq?: ValueTypes["numeric"] | undefined | null, - _nin?: (ValueTypes["numeric"])[] -}; - /** column ordering options */ -["order_by"]:order_by; - /** columns and relationships of "payment" */ -["payment"]: AliasType<{ - arrivesAt?:boolean, - centTotal?:boolean, - /** An object relationship */ - connection?:ValueTypes["connection"], - connectionId?:boolean, - createdAt?:boolean, - currency?:boolean, - description?:boolean, - /** An object relationship */ - entity?:ValueTypes["entity"], - entityId?:boolean, - id?:boolean, -lines?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], -lines_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], -metadata?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - paidAt?:boolean, - status?:boolean, -tags?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], -tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "payment" */ -["payment_aggregate"]: AliasType<{ - aggregate?:ValueTypes["payment_aggregate_fields"], - nodes?:ValueTypes["payment"], - __typename?: boolean -}>; - /** aggregate fields of "payment" */ -["payment_aggregate_fields"]: AliasType<{ - avg?:ValueTypes["payment_avg_fields"], -count?: [{ columns?: (ValueTypes["payment_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["payment_max_fields"], - min?:ValueTypes["payment_min_fields"], - stddev?:ValueTypes["payment_stddev_fields"], - stddev_pop?:ValueTypes["payment_stddev_pop_fields"], - stddev_samp?:ValueTypes["payment_stddev_samp_fields"], - sum?:ValueTypes["payment_sum_fields"], - var_pop?:ValueTypes["payment_var_pop_fields"], - var_samp?:ValueTypes["payment_var_samp_fields"], - variance?:ValueTypes["payment_variance_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "payment" */ -["payment_aggregate_order_by"]: { - avg?: ValueTypes["payment_avg_order_by"] | undefined | null, - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["payment_max_order_by"] | undefined | null, - min?: ValueTypes["payment_min_order_by"] | undefined | null, - stddev?: ValueTypes["payment_stddev_order_by"] | undefined | null, - stddev_pop?: ValueTypes["payment_stddev_pop_order_by"] | undefined | null, - stddev_samp?: ValueTypes["payment_stddev_samp_order_by"] | undefined | null, - sum?: ValueTypes["payment_sum_order_by"] | undefined | null, - var_pop?: ValueTypes["payment_var_pop_order_by"] | undefined | null, - var_samp?: ValueTypes["payment_var_samp_order_by"] | undefined | null, - variance?: ValueTypes["payment_variance_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["payment_append_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "payment" */ -["payment_arr_rel_insert_input"]: { - data: (ValueTypes["payment_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["payment_on_conflict"] | undefined | null -}; - /** aggregate avg on columns */ -["payment_avg_fields"]: AliasType<{ - centTotal?:boolean, - __typename?: boolean -}>; - /** order by avg() on columns of table "payment" */ -["payment_avg_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null -}; - /** Boolean expression to filter rows from the table "payment". All fields are combined with a logical 'AND'. */ -["payment_bool_exp"]: { - _and?: (ValueTypes["payment_bool_exp"])[], - _not?: ValueTypes["payment_bool_exp"] | undefined | null, - _or?: (ValueTypes["payment_bool_exp"])[], - arrivesAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - centTotal?: ValueTypes["Int_comparison_exp"] | undefined | null, - connection?: ValueTypes["connection_bool_exp"] | undefined | null, - connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - currency?: ValueTypes["currency_enum_comparison_exp"] | undefined | null, - description?: ValueTypes["String_comparison_exp"] | undefined | null, - entity?: ValueTypes["entity_bool_exp"] | undefined | null, - entityId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - lines?: ValueTypes["line_bool_exp"] | undefined | null, - metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - paidAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - status?: ValueTypes["payment_status_enum_comparison_exp"] | undefined | null, - tags?: ValueTypes["tag_bool_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - type?: ValueTypes["String_comparison_exp"] | undefined | null, - uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "payment" */ -["payment_constraint"]:payment_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["payment_delete_at_path_input"]: { - metadata?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["payment_delete_elem_input"]: { - metadata?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["payment_delete_key_input"]: { - metadata?: string | undefined | null -}; - /** input type for incrementing numeric columns in table "payment" */ -["payment_inc_input"]: { - centTotal?: number | undefined | null -}; - /** input type for inserting data into table "payment" */ -["payment_insert_input"]: { - arrivesAt?: ValueTypes["timestamptz"] | undefined | null, - centTotal?: number | undefined | null, - connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - currency?: ValueTypes["currency_enum"] | undefined | null, - description?: string | undefined | null, - entity?: ValueTypes["entity_obj_rel_insert_input"] | undefined | null, - entityId?: ValueTypes["uuid"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - lines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - paidAt?: ValueTypes["timestamptz"] | undefined | null, - status?: ValueTypes["payment_status_enum"] | undefined | null, - tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate max on columns */ -["payment_max_fields"]: AliasType<{ - arrivesAt?:boolean, - centTotal?:boolean, - connectionId?:boolean, - createdAt?:boolean, - description?:boolean, - entityId?:boolean, - id?:boolean, - paidAt?:boolean, - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "payment" */ -["payment_max_order_by"]: { - arrivesAt?: ValueTypes["order_by"] | undefined | null, - centTotal?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - description?: ValueTypes["order_by"] | undefined | null, - entityId?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - paidAt?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["payment_min_fields"]: AliasType<{ - arrivesAt?:boolean, - centTotal?:boolean, - connectionId?:boolean, - createdAt?:boolean, - description?:boolean, - entityId?:boolean, - id?:boolean, - paidAt?:boolean, - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "payment" */ -["payment_min_order_by"]: { - arrivesAt?: ValueTypes["order_by"] | undefined | null, - centTotal?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - description?: ValueTypes["order_by"] | undefined | null, - entityId?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - paidAt?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "payment" */ -["payment_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["payment"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "payment" */ -["payment_obj_rel_insert_input"]: { - data: ValueTypes["payment_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["payment_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "payment" */ -["payment_on_conflict"]: { - constraint: ValueTypes["payment_constraint"], - update_columns: (ValueTypes["payment_update_column"])[] | undefined | null, - where?: ValueTypes["payment_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "payment". */ -["payment_order_by"]: { - arrivesAt?: ValueTypes["order_by"] | undefined | null, - centTotal?: ValueTypes["order_by"] | undefined | null, - connection?: ValueTypes["connection_order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - currency?: ValueTypes["order_by"] | undefined | null, - description?: ValueTypes["order_by"] | undefined | null, - entity?: ValueTypes["entity_order_by"] | undefined | null, - entityId?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - lines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, - metadata?: ValueTypes["order_by"] | undefined | null, - paidAt?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: payment */ -["payment_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["payment_prepend_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "payment" */ -["payment_select_column"]:payment_select_column; - /** input type for updating data in table "payment" */ -["payment_set_input"]: { - arrivesAt?: ValueTypes["timestamptz"] | undefined | null, - centTotal?: number | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - currency?: ValueTypes["currency_enum"] | undefined | null, - description?: string | undefined | null, - entityId?: ValueTypes["uuid"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - paidAt?: ValueTypes["timestamptz"] | undefined | null, - status?: ValueTypes["payment_status_enum"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - ["payment_status_enum"]:payment_status_enum; - /** Boolean expression to compare columns of type "payment_status_enum". All fields are combined with logical 'AND'. */ -["payment_status_enum_comparison_exp"]: { - _eq?: ValueTypes["payment_status_enum"] | undefined | null, - _in?: (ValueTypes["payment_status_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["payment_status_enum"] | undefined | null, - _nin?: (ValueTypes["payment_status_enum"])[] -}; - /** aggregate stddev on columns */ -["payment_stddev_fields"]: AliasType<{ - centTotal?:boolean, - __typename?: boolean -}>; - /** order by stddev() on columns of table "payment" */ -["payment_stddev_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate stddev_pop on columns */ -["payment_stddev_pop_fields"]: AliasType<{ - centTotal?:boolean, - __typename?: boolean -}>; - /** order by stddev_pop() on columns of table "payment" */ -["payment_stddev_pop_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate stddev_samp on columns */ -["payment_stddev_samp_fields"]: AliasType<{ - centTotal?:boolean, - __typename?: boolean -}>; - /** order by stddev_samp() on columns of table "payment" */ -["payment_stddev_samp_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate sum on columns */ -["payment_sum_fields"]: AliasType<{ - centTotal?:boolean, - __typename?: boolean -}>; - /** order by sum() on columns of table "payment" */ -["payment_sum_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null -}; - /** update columns of table "payment" */ -["payment_update_column"]:payment_update_column; - /** aggregate var_pop on columns */ -["payment_var_pop_fields"]: AliasType<{ - centTotal?:boolean, - __typename?: boolean -}>; - /** order by var_pop() on columns of table "payment" */ -["payment_var_pop_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate var_samp on columns */ -["payment_var_samp_fields"]: AliasType<{ - centTotal?:boolean, - __typename?: boolean -}>; - /** order by var_samp() on columns of table "payment" */ -["payment_var_samp_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate variance on columns */ -["payment_variance_fields"]: AliasType<{ - centTotal?:boolean, - __typename?: boolean -}>; - /** order by variance() on columns of table "payment" */ -["payment_variance_order_by"]: { - centTotal?: ValueTypes["order_by"] | undefined | null -}; - /** columns and relationships of "payment_status" */ -["paymentStatus"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "payment_status" */ -["paymentStatus_aggregate"]: AliasType<{ - aggregate?:ValueTypes["paymentStatus_aggregate_fields"], - nodes?:ValueTypes["paymentStatus"], - __typename?: boolean -}>; - /** aggregate fields of "payment_status" */ -["paymentStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["paymentStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["paymentStatus_max_fields"], - min?:ValueTypes["paymentStatus_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "payment_status". All fields are combined with a logical 'AND'. */ -["paymentStatus_bool_exp"]: { - _and?: (ValueTypes["paymentStatus_bool_exp"])[], - _not?: ValueTypes["paymentStatus_bool_exp"] | undefined | null, - _or?: (ValueTypes["paymentStatus_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "payment_status" */ -["paymentStatus_constraint"]:paymentStatus_constraint; - /** input type for inserting data into table "payment_status" */ -["paymentStatus_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["paymentStatus_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["paymentStatus_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "payment_status" */ -["paymentStatus_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["paymentStatus"], - __typename?: boolean -}>; - /** on conflict condition type for table "payment_status" */ -["paymentStatus_on_conflict"]: { - constraint: ValueTypes["paymentStatus_constraint"], - update_columns: (ValueTypes["paymentStatus_update_column"])[] | undefined | null, - where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "payment_status". */ -["paymentStatus_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: paymentStatus */ -["paymentStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "payment_status" */ -["paymentStatus_select_column"]:paymentStatus_select_column; - /** input type for updating data in table "payment_status" */ -["paymentStatus_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "payment_status" */ -["paymentStatus_update_column"]:paymentStatus_update_column; - /** columns and relationships of "payment_type" */ -["paymentType"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "payment_type" */ -["paymentType_aggregate"]: AliasType<{ - aggregate?:ValueTypes["paymentType_aggregate_fields"], - nodes?:ValueTypes["paymentType"], - __typename?: boolean -}>; - /** aggregate fields of "payment_type" */ -["paymentType_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["paymentType_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["paymentType_max_fields"], - min?:ValueTypes["paymentType_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "payment_type". All fields are combined with a logical 'AND'. */ -["paymentType_bool_exp"]: { - _and?: (ValueTypes["paymentType_bool_exp"])[], - _not?: ValueTypes["paymentType_bool_exp"] | undefined | null, - _or?: (ValueTypes["paymentType_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "payment_type" */ -["paymentType_constraint"]:paymentType_constraint; - /** input type for inserting data into table "payment_type" */ -["paymentType_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["paymentType_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["paymentType_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "payment_type" */ -["paymentType_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["paymentType"], - __typename?: boolean -}>; - /** on conflict condition type for table "payment_type" */ -["paymentType_on_conflict"]: { - constraint: ValueTypes["paymentType_constraint"], - update_columns: (ValueTypes["paymentType_update_column"])[] | undefined | null, - where?: ValueTypes["paymentType_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "payment_type". */ -["paymentType_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: paymentType */ -["paymentType_pk_columns_input"]: { - name: string -}; - /** select columns of table "payment_type" */ -["paymentType_select_column"]:paymentType_select_column; - /** input type for updating data in table "payment_type" */ -["paymentType_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "payment_type" */ -["paymentType_update_column"]:paymentType_update_column; - ["query_root"]: AliasType<{ -aggregateBookingStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["bookingStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["bookingStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null},ValueTypes["bookingStatus_aggregate"]], -aggregateBookings?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], -aggregateClassifications?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["classification_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["classification_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["classification_bool_exp"] | undefined | null},ValueTypes["classification_aggregate"]], -aggregateConnections?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection_aggregate"]], -aggregateCurrencies?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["currency_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["currency_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["currency_bool_exp"] | undefined | null},ValueTypes["currency_aggregate"]], -aggregateEntities?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], -aggregateEntityStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entityStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entityStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entityStatus_bool_exp"] | undefined | null},ValueTypes["entityStatus_aggregate"]], -aggregateIntegrationTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integrationType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integrationType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integrationType_bool_exp"] | undefined | null},ValueTypes["integrationType_aggregate"]], -aggregateIntegrations?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration_aggregate"]], -aggregateIssues?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue_aggregate"]], -aggregateJobMethods?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["jobMethod_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["jobMethod_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["jobMethod_bool_exp"] | undefined | null},ValueTypes["jobMethod_aggregate"]], -aggregateJobStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["jobStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["jobStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["jobStatus_bool_exp"] | undefined | null},ValueTypes["jobStatus_aggregate"]], -aggregateJobs?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], -aggregateLines?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], -aggregateMetrics?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric_aggregate"]], -aggregateNormalizedTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["normalizedType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["normalizedType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["normalizedType_bool_exp"] | undefined | null},ValueTypes["normalizedType_aggregate"]], -aggregatePaymentStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["paymentStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["paymentStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null},ValueTypes["paymentStatus_aggregate"]], -aggregatePaymentTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["paymentType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["paymentType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["paymentType_bool_exp"] | undefined | null},ValueTypes["paymentType_aggregate"]], -aggregatePayments?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], -aggregateSubclassifications?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["subclassification_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["subclassification_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["subclassification_bool_exp"] | undefined | null},ValueTypes["subclassification_aggregate"]], -aggregateTags?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], -aggregateTeamUsers?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser_aggregate"]], -aggregateTeams?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["team_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["team_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["team_bool_exp"] | undefined | null},ValueTypes["team_aggregate"]], -aggregateUnits?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], -aggregateUserStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["userStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["userStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["userStatus_bool_exp"] | undefined | null},ValueTypes["userStatus_aggregate"]], -aggregateUsers?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["user_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["user_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["user_bool_exp"] | undefined | null},ValueTypes["user_aggregate"]], -aggregateWebhooks?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook_aggregate"]], -booking?: [{ id: ValueTypes["uuid"]},ValueTypes["booking"]], -bookingStatus?: [{ name: string},ValueTypes["bookingStatus"]], -bookingStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["bookingStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["bookingStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null},ValueTypes["bookingStatus"]], -booking_channel?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_channel_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_channel_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_channel_bool_exp"] | undefined | null},ValueTypes["booking_channel"]], -booking_channel_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_channel_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_channel_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_channel_bool_exp"] | undefined | null},ValueTypes["booking_channel_aggregate"]], -booking_channel_by_pk?: [{ name: string},ValueTypes["booking_channel"]], -bookings?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], -classification?: [{ name: string},ValueTypes["classification"]], -classifications?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["classification_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["classification_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["classification_bool_exp"] | undefined | null},ValueTypes["classification"]], -connection?: [{ id: ValueTypes["uuid"]},ValueTypes["connection"]], -connections?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection"]], -currencies?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["currency_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["currency_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["currency_bool_exp"] | undefined | null},ValueTypes["currency"]], -currency?: [{ name: string},ValueTypes["currency"]], -entities?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], -entity?: [{ id: ValueTypes["uuid"]},ValueTypes["entity"]], -entityStatus?: [{ name: string},ValueTypes["entityStatus"]], -entityStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entityStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entityStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entityStatus_bool_exp"] | undefined | null},ValueTypes["entityStatus"]], -integration?: [{ id: ValueTypes["uuid"]},ValueTypes["integration"]], -integrationType?: [{ name: string},ValueTypes["integrationType"]], -integrationTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integrationType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integrationType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integrationType_bool_exp"] | undefined | null},ValueTypes["integrationType"]], -integrations?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration"]], -issue?: [{ id: ValueTypes["uuid"]},ValueTypes["issue"]], -issues?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue"]], -job?: [{ id: ValueTypes["uuid"]},ValueTypes["job"]], -jobMethod?: [{ name: string},ValueTypes["jobMethod"]], -jobMethods?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["jobMethod_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["jobMethod_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["jobMethod_bool_exp"] | undefined | null},ValueTypes["jobMethod"]], -jobStatus?: [{ name: string},ValueTypes["jobStatus"]], -jobStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["jobStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["jobStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["jobStatus_bool_exp"] | undefined | null},ValueTypes["jobStatus"]], -jobs?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], -line?: [{ id: ValueTypes["uuid"]},ValueTypes["line"]], -lines?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], -metric?: [{ id: ValueTypes["uuid"]},ValueTypes["metric"]], -metrics?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric"]], -normalizedType?: [{ name: string},ValueTypes["normalizedType"]], -normalizedTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["normalizedType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["normalizedType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["normalizedType_bool_exp"] | undefined | null},ValueTypes["normalizedType"]], -payment?: [{ id: ValueTypes["uuid"]},ValueTypes["payment"]], -paymentStatus?: [{ name: string},ValueTypes["paymentStatus"]], -paymentStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["paymentStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["paymentStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null},ValueTypes["paymentStatus"]], -paymentType?: [{ name: string},ValueTypes["paymentType"]], -paymentTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["paymentType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["paymentType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["paymentType_bool_exp"] | undefined | null},ValueTypes["paymentType"]], -payments?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], -subclassification?: [{ name: string},ValueTypes["subclassification"]], -subclassifications?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["subclassification_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["subclassification_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["subclassification_bool_exp"] | undefined | null},ValueTypes["subclassification"]], -tag?: [{ id: ValueTypes["uuid"]},ValueTypes["tag"]], -tags?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], -team?: [{ id: ValueTypes["uuid"]},ValueTypes["team"]], -teamUser?: [{ id: ValueTypes["uuid"]},ValueTypes["teamUser"]], -teamUsers?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser"]], -teams?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["team_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["team_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["team_bool_exp"] | undefined | null},ValueTypes["team"]], -unit?: [{ id: ValueTypes["uuid"]},ValueTypes["unit"]], -units?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], -user?: [{ id: ValueTypes["uuid"]},ValueTypes["user"]], -userStatus?: [{ name: string},ValueTypes["userStatus"]], -userStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["userStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["userStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["userStatus_bool_exp"] | undefined | null},ValueTypes["userStatus"]], -users?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["user_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["user_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["user_bool_exp"] | undefined | null},ValueTypes["user"]], -webhook?: [{ id: ValueTypes["uuid"]},ValueTypes["webhook"]], -webhooks?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook"]], - __typename?: boolean -}>; - /** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ -["String_comparison_exp"]: { - _eq?: string | undefined | null, - _gt?: string | undefined | null, - _gte?: string | undefined | null, - /** does the column match the given case-insensitive pattern */ - _ilike?: string | undefined | null, - _in?: (string)[], - /** does the column match the given POSIX regular expression, case insensitive */ - _iregex?: string | undefined | null, - _is_null?: boolean | undefined | null, - /** does the column match the given pattern */ - _like?: string | undefined | null, - _lt?: string | undefined | null, - _lte?: string | undefined | null, - _neq?: string | undefined | null, - /** does the column NOT match the given case-insensitive pattern */ - _nilike?: string | undefined | null, - _nin?: (string)[], - /** does the column NOT match the given POSIX regular expression, case insensitive */ - _niregex?: string | undefined | null, - /** does the column NOT match the given pattern */ - _nlike?: string | undefined | null, - /** does the column NOT match the given POSIX regular expression, case sensitive */ - _nregex?: string | undefined | null, - /** does the column NOT match the given SQL regular expression */ - _nsimilar?: string | undefined | null, - /** does the column match the given POSIX regular expression, case sensitive */ - _regex?: string | undefined | null, - /** does the column match the given SQL regular expression */ - _similar?: string | undefined | null -}; - /** columns and relationships of "subclassification" */ -["subclassification"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "subclassification" */ -["subclassification_aggregate"]: AliasType<{ - aggregate?:ValueTypes["subclassification_aggregate_fields"], - nodes?:ValueTypes["subclassification"], - __typename?: boolean -}>; - /** aggregate fields of "subclassification" */ -["subclassification_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["subclassification_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["subclassification_max_fields"], - min?:ValueTypes["subclassification_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "subclassification". All fields are combined with a logical 'AND'. */ -["subclassification_bool_exp"]: { - _and?: (ValueTypes["subclassification_bool_exp"])[], - _not?: ValueTypes["subclassification_bool_exp"] | undefined | null, - _or?: (ValueTypes["subclassification_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "subclassification" */ -["subclassification_constraint"]:subclassification_constraint; - ["subclassification_enum"]:subclassification_enum; - /** Boolean expression to compare columns of type "subclassification_enum". All fields are combined with logical 'AND'. */ -["subclassification_enum_comparison_exp"]: { - _eq?: ValueTypes["subclassification_enum"] | undefined | null, - _in?: (ValueTypes["subclassification_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["subclassification_enum"] | undefined | null, - _nin?: (ValueTypes["subclassification_enum"])[] -}; - /** input type for inserting data into table "subclassification" */ -["subclassification_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["subclassification_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["subclassification_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "subclassification" */ -["subclassification_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["subclassification"], - __typename?: boolean -}>; - /** on conflict condition type for table "subclassification" */ -["subclassification_on_conflict"]: { - constraint: ValueTypes["subclassification_constraint"], - update_columns: (ValueTypes["subclassification_update_column"])[] | undefined | null, - where?: ValueTypes["subclassification_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "subclassification". */ -["subclassification_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: subclassification */ -["subclassification_pk_columns_input"]: { - name: string -}; - /** select columns of table "subclassification" */ -["subclassification_select_column"]:subclassification_select_column; - /** input type for updating data in table "subclassification" */ -["subclassification_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "subclassification" */ -["subclassification_update_column"]:subclassification_update_column; - ["subscription_root"]: AliasType<{ -aggregateBookingStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["bookingStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["bookingStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null},ValueTypes["bookingStatus_aggregate"]], -aggregateBookings?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], -aggregateClassifications?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["classification_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["classification_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["classification_bool_exp"] | undefined | null},ValueTypes["classification_aggregate"]], -aggregateConnections?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection_aggregate"]], -aggregateCurrencies?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["currency_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["currency_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["currency_bool_exp"] | undefined | null},ValueTypes["currency_aggregate"]], -aggregateEntities?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], -aggregateEntityStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entityStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entityStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entityStatus_bool_exp"] | undefined | null},ValueTypes["entityStatus_aggregate"]], -aggregateIntegrationTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integrationType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integrationType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integrationType_bool_exp"] | undefined | null},ValueTypes["integrationType_aggregate"]], -aggregateIntegrations?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration_aggregate"]], -aggregateIssues?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue_aggregate"]], -aggregateJobMethods?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["jobMethod_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["jobMethod_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["jobMethod_bool_exp"] | undefined | null},ValueTypes["jobMethod_aggregate"]], -aggregateJobStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["jobStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["jobStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["jobStatus_bool_exp"] | undefined | null},ValueTypes["jobStatus_aggregate"]], -aggregateJobs?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], -aggregateLines?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], -aggregateMetrics?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric_aggregate"]], -aggregateNormalizedTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["normalizedType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["normalizedType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["normalizedType_bool_exp"] | undefined | null},ValueTypes["normalizedType_aggregate"]], -aggregatePaymentStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["paymentStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["paymentStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null},ValueTypes["paymentStatus_aggregate"]], -aggregatePaymentTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["paymentType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["paymentType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["paymentType_bool_exp"] | undefined | null},ValueTypes["paymentType_aggregate"]], -aggregatePayments?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], -aggregateSubclassifications?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["subclassification_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["subclassification_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["subclassification_bool_exp"] | undefined | null},ValueTypes["subclassification_aggregate"]], -aggregateTags?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], -aggregateTeamUsers?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser_aggregate"]], -aggregateTeams?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["team_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["team_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["team_bool_exp"] | undefined | null},ValueTypes["team_aggregate"]], -aggregateUnits?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], -aggregateUserStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["userStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["userStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["userStatus_bool_exp"] | undefined | null},ValueTypes["userStatus_aggregate"]], -aggregateUsers?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["user_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["user_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["user_bool_exp"] | undefined | null},ValueTypes["user_aggregate"]], -aggregateWebhooks?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook_aggregate"]], -booking?: [{ id: ValueTypes["uuid"]},ValueTypes["booking"]], -bookingStatus?: [{ name: string},ValueTypes["bookingStatus"]], -bookingStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["bookingStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["bookingStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["bookingStatus_bool_exp"] | undefined | null},ValueTypes["bookingStatus"]], -booking_channel?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_channel_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_channel_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_channel_bool_exp"] | undefined | null},ValueTypes["booking_channel"]], -booking_channel_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_channel_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_channel_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_channel_bool_exp"] | undefined | null},ValueTypes["booking_channel_aggregate"]], -booking_channel_by_pk?: [{ name: string},ValueTypes["booking_channel"]], -bookings?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], -classification?: [{ name: string},ValueTypes["classification"]], -classifications?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["classification_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["classification_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["classification_bool_exp"] | undefined | null},ValueTypes["classification"]], -connection?: [{ id: ValueTypes["uuid"]},ValueTypes["connection"]], -connections?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection"]], -currencies?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["currency_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["currency_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["currency_bool_exp"] | undefined | null},ValueTypes["currency"]], -currency?: [{ name: string},ValueTypes["currency"]], -entities?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], -entity?: [{ id: ValueTypes["uuid"]},ValueTypes["entity"]], -entityStatus?: [{ name: string},ValueTypes["entityStatus"]], -entityStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entityStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entityStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entityStatus_bool_exp"] | undefined | null},ValueTypes["entityStatus"]], -integration?: [{ id: ValueTypes["uuid"]},ValueTypes["integration"]], -integrationType?: [{ name: string},ValueTypes["integrationType"]], -integrationTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integrationType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integrationType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integrationType_bool_exp"] | undefined | null},ValueTypes["integrationType"]], -integrations?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration"]], -issue?: [{ id: ValueTypes["uuid"]},ValueTypes["issue"]], -issues?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue"]], -job?: [{ id: ValueTypes["uuid"]},ValueTypes["job"]], -jobMethod?: [{ name: string},ValueTypes["jobMethod"]], -jobMethods?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["jobMethod_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["jobMethod_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["jobMethod_bool_exp"] | undefined | null},ValueTypes["jobMethod"]], -jobStatus?: [{ name: string},ValueTypes["jobStatus"]], -jobStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["jobStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["jobStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["jobStatus_bool_exp"] | undefined | null},ValueTypes["jobStatus"]], -jobs?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], -line?: [{ id: ValueTypes["uuid"]},ValueTypes["line"]], -lines?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], -metric?: [{ id: ValueTypes["uuid"]},ValueTypes["metric"]], -metrics?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric"]], -normalizedType?: [{ name: string},ValueTypes["normalizedType"]], -normalizedTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["normalizedType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["normalizedType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["normalizedType_bool_exp"] | undefined | null},ValueTypes["normalizedType"]], -payment?: [{ id: ValueTypes["uuid"]},ValueTypes["payment"]], -paymentStatus?: [{ name: string},ValueTypes["paymentStatus"]], -paymentStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["paymentStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["paymentStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["paymentStatus_bool_exp"] | undefined | null},ValueTypes["paymentStatus"]], -paymentType?: [{ name: string},ValueTypes["paymentType"]], -paymentTypes?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["paymentType_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["paymentType_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["paymentType_bool_exp"] | undefined | null},ValueTypes["paymentType"]], -payments?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], -subclassification?: [{ name: string},ValueTypes["subclassification"]], -subclassifications?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["subclassification_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["subclassification_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["subclassification_bool_exp"] | undefined | null},ValueTypes["subclassification"]], -tag?: [{ id: ValueTypes["uuid"]},ValueTypes["tag"]], -tags?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], -team?: [{ id: ValueTypes["uuid"]},ValueTypes["team"]], -teamUser?: [{ id: ValueTypes["uuid"]},ValueTypes["teamUser"]], -teamUsers?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser"]], -teams?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["team_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["team_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["team_bool_exp"] | undefined | null},ValueTypes["team"]], -unit?: [{ id: ValueTypes["uuid"]},ValueTypes["unit"]], -units?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], -user?: [{ id: ValueTypes["uuid"]},ValueTypes["user"]], -userStatus?: [{ name: string},ValueTypes["userStatus"]], -userStatuses?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["userStatus_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["userStatus_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["userStatus_bool_exp"] | undefined | null},ValueTypes["userStatus"]], -users?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["user_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["user_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["user_bool_exp"] | undefined | null},ValueTypes["user"]], -webhook?: [{ id: ValueTypes["uuid"]},ValueTypes["webhook"]], -webhooks?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook"]], - __typename?: boolean -}>; - /** columns and relationships of "tag" */ -["tag"]: AliasType<{ - /** An object relationship */ - booking?:ValueTypes["booking"], - bookingId?:boolean, - /** An object relationship */ - connection?:ValueTypes["connection"], - connectionId?:boolean, - createdAt?:boolean, - id?:boolean, -json?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - /** An object relationship */ - payment?:ValueTypes["payment"], - paymentId?:boolean, - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - /** An object relationship */ - unit?:ValueTypes["unit"], - unitId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "tag" */ -["tag_aggregate"]: AliasType<{ - aggregate?:ValueTypes["tag_aggregate_fields"], - nodes?:ValueTypes["tag"], - __typename?: boolean -}>; - /** aggregate fields of "tag" */ -["tag_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["tag_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["tag_max_fields"], - min?:ValueTypes["tag_min_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "tag" */ -["tag_aggregate_order_by"]: { - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["tag_max_order_by"] | undefined | null, - min?: ValueTypes["tag_min_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["tag_append_input"]: { - json?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "tag" */ -["tag_arr_rel_insert_input"]: { - data: (ValueTypes["tag_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["tag_on_conflict"] | undefined | null -}; - /** Boolean expression to filter rows from the table "tag". All fields are combined with a logical 'AND'. */ -["tag_bool_exp"]: { - _and?: (ValueTypes["tag_bool_exp"])[], - _not?: ValueTypes["tag_bool_exp"] | undefined | null, - _or?: (ValueTypes["tag_bool_exp"])[], - booking?: ValueTypes["booking_bool_exp"] | undefined | null, - bookingId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - connection?: ValueTypes["connection_bool_exp"] | undefined | null, - connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - json?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - payment?: ValueTypes["payment_bool_exp"] | undefined | null, - paymentId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - type?: ValueTypes["String_comparison_exp"] | undefined | null, - uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, - unit?: ValueTypes["unit_bool_exp"] | undefined | null, - unitId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "tag" */ -["tag_constraint"]:tag_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["tag_delete_at_path_input"]: { - json?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["tag_delete_elem_input"]: { - json?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["tag_delete_key_input"]: { - json?: string | undefined | null -}; - /** input type for inserting data into table "tag" */ -["tag_insert_input"]: { - booking?: ValueTypes["booking_obj_rel_insert_input"] | undefined | null, - bookingId?: ValueTypes["uuid"] | undefined | null, - connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - json?: ValueTypes["jsonb"] | undefined | null, - payment?: ValueTypes["payment_obj_rel_insert_input"] | undefined | null, - paymentId?: ValueTypes["uuid"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - unit?: ValueTypes["unit_obj_rel_insert_input"] | undefined | null, - unitId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate max on columns */ -["tag_max_fields"]: AliasType<{ - bookingId?:boolean, - connectionId?:boolean, - createdAt?:boolean, - id?:boolean, - paymentId?:boolean, - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "tag" */ -["tag_max_order_by"]: { - bookingId?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - paymentId?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["tag_min_fields"]: AliasType<{ - bookingId?:boolean, - connectionId?:boolean, - createdAt?:boolean, - id?:boolean, - paymentId?:boolean, - teamId?:boolean, - type?:boolean, - uniqueRef?:boolean, - unitId?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "tag" */ -["tag_min_order_by"]: { - bookingId?: ValueTypes["order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - paymentId?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "tag" */ -["tag_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["tag"], - __typename?: boolean -}>; - /** on conflict condition type for table "tag" */ -["tag_on_conflict"]: { - constraint: ValueTypes["tag_constraint"], - update_columns: (ValueTypes["tag_update_column"])[] | undefined | null, - where?: ValueTypes["tag_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "tag". */ -["tag_order_by"]: { - booking?: ValueTypes["booking_order_by"] | undefined | null, - bookingId?: ValueTypes["order_by"] | undefined | null, - connection?: ValueTypes["connection_order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - json?: ValueTypes["order_by"] | undefined | null, - payment?: ValueTypes["payment_order_by"] | undefined | null, - paymentId?: ValueTypes["order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - type?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - unit?: ValueTypes["unit_order_by"] | undefined | null, - unitId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: tag */ -["tag_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["tag_prepend_input"]: { - json?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "tag" */ -["tag_select_column"]:tag_select_column; - /** input type for updating data in table "tag" */ -["tag_set_input"]: { - bookingId?: ValueTypes["uuid"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - json?: ValueTypes["jsonb"] | undefined | null, - paymentId?: ValueTypes["uuid"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - type?: string | undefined | null, - uniqueRef?: string | undefined | null, - unitId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** update columns of table "tag" */ -["tag_update_column"]:tag_update_column; - /** columns and relationships of "team" */ -["team"]: AliasType<{ - address?:boolean, -bookings?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], -bookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], - commissionPercentage?:boolean, -connections?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection"]], -connections_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["connection_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["connection_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["connection_bool_exp"] | undefined | null},ValueTypes["connection_aggregate"]], - createdAt?:boolean, - email?:boolean, -entities?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity"]], -entities_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["entity_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["entity_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["entity_bool_exp"] | undefined | null},ValueTypes["entity_aggregate"]], - id?:boolean, -integrations?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration"]], -integrations_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["integration_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["integration_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["integration_bool_exp"] | undefined | null},ValueTypes["integration_aggregate"]], - isActive?:boolean, - isTest?:boolean, -issues?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue"]], -issues_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["issue_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["issue_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["issue_bool_exp"] | undefined | null},ValueTypes["issue_aggregate"]], -jobs?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job"]], -jobs_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["job_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["job_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["job_bool_exp"] | undefined | null},ValueTypes["job_aggregate"]], -lines?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line"]], -lines_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["line_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["line_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["line_bool_exp"] | undefined | null},ValueTypes["line_aggregate"]], -members?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser"]], -members_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser_aggregate"]], -metrics?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric"]], -metrics_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["metric_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["metric_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["metric_bool_exp"] | undefined | null},ValueTypes["metric_aggregate"]], - name?:boolean, -payments?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment"]], -payments_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["payment_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["payment_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["payment_bool_exp"] | undefined | null},ValueTypes["payment_aggregate"]], - stripeId?:boolean, - stripeSubscriptionItemId?:boolean, - supportEmail?:boolean, - supportPhone?:boolean, -tags?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], -tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], -units?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit"]], -units_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["unit_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["unit_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["unit_bool_exp"] | undefined | null},ValueTypes["unit_aggregate"]], -webhooks?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook"]], -webhooks_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["webhook_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["webhook_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["webhook_bool_exp"] | undefined | null},ValueTypes["webhook_aggregate"]], - website?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "team" */ -["team_aggregate"]: AliasType<{ - aggregate?:ValueTypes["team_aggregate_fields"], - nodes?:ValueTypes["team"], - __typename?: boolean -}>; - /** aggregate fields of "team" */ -["team_aggregate_fields"]: AliasType<{ - avg?:ValueTypes["team_avg_fields"], -count?: [{ columns?: (ValueTypes["team_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["team_max_fields"], - min?:ValueTypes["team_min_fields"], - stddev?:ValueTypes["team_stddev_fields"], - stddev_pop?:ValueTypes["team_stddev_pop_fields"], - stddev_samp?:ValueTypes["team_stddev_samp_fields"], - sum?:ValueTypes["team_sum_fields"], - var_pop?:ValueTypes["team_var_pop_fields"], - var_samp?:ValueTypes["team_var_samp_fields"], - variance?:ValueTypes["team_variance_fields"], - __typename?: boolean -}>; - /** aggregate avg on columns */ -["team_avg_fields"]: AliasType<{ - commissionPercentage?:boolean, - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "team". All fields are combined with a logical 'AND'. */ -["team_bool_exp"]: { - _and?: (ValueTypes["team_bool_exp"])[], - _not?: ValueTypes["team_bool_exp"] | undefined | null, - _or?: (ValueTypes["team_bool_exp"])[], - address?: ValueTypes["String_comparison_exp"] | undefined | null, - bookings?: ValueTypes["booking_bool_exp"] | undefined | null, - commissionPercentage?: ValueTypes["numeric_comparison_exp"] | undefined | null, - connections?: ValueTypes["connection_bool_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - email?: ValueTypes["String_comparison_exp"] | undefined | null, - entities?: ValueTypes["entity_bool_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - integrations?: ValueTypes["integration_bool_exp"] | undefined | null, - isActive?: ValueTypes["Boolean_comparison_exp"] | undefined | null, - isTest?: ValueTypes["Boolean_comparison_exp"] | undefined | null, - issues?: ValueTypes["issue_bool_exp"] | undefined | null, - jobs?: ValueTypes["job_bool_exp"] | undefined | null, - lines?: ValueTypes["line_bool_exp"] | undefined | null, - members?: ValueTypes["teamUser_bool_exp"] | undefined | null, - metrics?: ValueTypes["metric_bool_exp"] | undefined | null, - name?: ValueTypes["String_comparison_exp"] | undefined | null, - payments?: ValueTypes["payment_bool_exp"] | undefined | null, - stripeId?: ValueTypes["String_comparison_exp"] | undefined | null, - stripeSubscriptionItemId?: ValueTypes["String_comparison_exp"] | undefined | null, - supportEmail?: ValueTypes["String_comparison_exp"] | undefined | null, - supportPhone?: ValueTypes["String_comparison_exp"] | undefined | null, - tags?: ValueTypes["tag_bool_exp"] | undefined | null, - units?: ValueTypes["unit_bool_exp"] | undefined | null, - webhooks?: ValueTypes["webhook_bool_exp"] | undefined | null, - website?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "team" */ -["team_constraint"]:team_constraint; - /** input type for incrementing numeric columns in table "team" */ -["team_inc_input"]: { - commissionPercentage?: ValueTypes["numeric"] | undefined | null -}; - /** input type for inserting data into table "team" */ -["team_insert_input"]: { - address?: string | undefined | null, - bookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, - commissionPercentage?: ValueTypes["numeric"] | undefined | null, - connections?: ValueTypes["connection_arr_rel_insert_input"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - email?: string | undefined | null, - entities?: ValueTypes["entity_arr_rel_insert_input"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - integrations?: ValueTypes["integration_arr_rel_insert_input"] | undefined | null, - isActive?: boolean | undefined | null, - isTest?: boolean | undefined | null, - issues?: ValueTypes["issue_arr_rel_insert_input"] | undefined | null, - jobs?: ValueTypes["job_arr_rel_insert_input"] | undefined | null, - lines?: ValueTypes["line_arr_rel_insert_input"] | undefined | null, - members?: ValueTypes["teamUser_arr_rel_insert_input"] | undefined | null, - metrics?: ValueTypes["metric_arr_rel_insert_input"] | undefined | null, - name?: string | undefined | null, - payments?: ValueTypes["payment_arr_rel_insert_input"] | undefined | null, - stripeId?: string | undefined | null, - stripeSubscriptionItemId?: string | undefined | null, - supportEmail?: string | undefined | null, - supportPhone?: string | undefined | null, - tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, - units?: ValueTypes["unit_arr_rel_insert_input"] | undefined | null, - webhooks?: ValueTypes["webhook_arr_rel_insert_input"] | undefined | null, - website?: string | undefined | null -}; - /** aggregate max on columns */ -["team_max_fields"]: AliasType<{ - address?:boolean, - commissionPercentage?:boolean, - createdAt?:boolean, - email?:boolean, - id?:boolean, - name?:boolean, - stripeId?:boolean, - stripeSubscriptionItemId?:boolean, - supportEmail?:boolean, - supportPhone?:boolean, - website?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["team_min_fields"]: AliasType<{ - address?:boolean, - commissionPercentage?:boolean, - createdAt?:boolean, - email?:boolean, - id?:boolean, - name?:boolean, - stripeId?:boolean, - stripeSubscriptionItemId?:boolean, - supportEmail?:boolean, - supportPhone?:boolean, - website?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "team" */ -["team_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["team"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "team" */ -["team_obj_rel_insert_input"]: { - data: ValueTypes["team_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["team_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "team" */ -["team_on_conflict"]: { - constraint: ValueTypes["team_constraint"], - update_columns: (ValueTypes["team_update_column"])[] | undefined | null, - where?: ValueTypes["team_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "team". */ -["team_order_by"]: { - address?: ValueTypes["order_by"] | undefined | null, - bookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, - commissionPercentage?: ValueTypes["order_by"] | undefined | null, - connections_aggregate?: ValueTypes["connection_aggregate_order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - email?: ValueTypes["order_by"] | undefined | null, - entities_aggregate?: ValueTypes["entity_aggregate_order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - integrations_aggregate?: ValueTypes["integration_aggregate_order_by"] | undefined | null, - isActive?: ValueTypes["order_by"] | undefined | null, - isTest?: ValueTypes["order_by"] | undefined | null, - issues_aggregate?: ValueTypes["issue_aggregate_order_by"] | undefined | null, - jobs_aggregate?: ValueTypes["job_aggregate_order_by"] | undefined | null, - lines_aggregate?: ValueTypes["line_aggregate_order_by"] | undefined | null, - members_aggregate?: ValueTypes["teamUser_aggregate_order_by"] | undefined | null, - metrics_aggregate?: ValueTypes["metric_aggregate_order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - payments_aggregate?: ValueTypes["payment_aggregate_order_by"] | undefined | null, - stripeId?: ValueTypes["order_by"] | undefined | null, - stripeSubscriptionItemId?: ValueTypes["order_by"] | undefined | null, - supportEmail?: ValueTypes["order_by"] | undefined | null, - supportPhone?: ValueTypes["order_by"] | undefined | null, - tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, - units_aggregate?: ValueTypes["unit_aggregate_order_by"] | undefined | null, - webhooks_aggregate?: ValueTypes["webhook_aggregate_order_by"] | undefined | null, - website?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: team */ -["team_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** select columns of table "team" */ -["team_select_column"]:team_select_column; - /** input type for updating data in table "team" */ -["team_set_input"]: { - address?: string | undefined | null, - commissionPercentage?: ValueTypes["numeric"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - email?: string | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - isActive?: boolean | undefined | null, - isTest?: boolean | undefined | null, - name?: string | undefined | null, - stripeId?: string | undefined | null, - stripeSubscriptionItemId?: string | undefined | null, - supportEmail?: string | undefined | null, - supportPhone?: string | undefined | null, - website?: string | undefined | null -}; - /** aggregate stddev on columns */ -["team_stddev_fields"]: AliasType<{ - commissionPercentage?:boolean, - __typename?: boolean -}>; - /** aggregate stddev_pop on columns */ -["team_stddev_pop_fields"]: AliasType<{ - commissionPercentage?:boolean, - __typename?: boolean -}>; - /** aggregate stddev_samp on columns */ -["team_stddev_samp_fields"]: AliasType<{ - commissionPercentage?:boolean, - __typename?: boolean -}>; - /** aggregate sum on columns */ -["team_sum_fields"]: AliasType<{ - commissionPercentage?:boolean, - __typename?: boolean -}>; - /** update columns of table "team" */ -["team_update_column"]:team_update_column; - /** aggregate var_pop on columns */ -["team_var_pop_fields"]: AliasType<{ - commissionPercentage?:boolean, - __typename?: boolean -}>; - /** aggregate var_samp on columns */ -["team_var_samp_fields"]: AliasType<{ - commissionPercentage?:boolean, - __typename?: boolean -}>; - /** aggregate variance on columns */ -["team_variance_fields"]: AliasType<{ - commissionPercentage?:boolean, - __typename?: boolean -}>; - /** columns and relationships of "team_user" */ -["teamUser"]: AliasType<{ - createdAt?:boolean, - id?:boolean, - role?:boolean, - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - updatedAt?:boolean, - /** An object relationship */ - user?:ValueTypes["user"], - userId?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "team_user" */ -["teamUser_aggregate"]: AliasType<{ - aggregate?:ValueTypes["teamUser_aggregate_fields"], - nodes?:ValueTypes["teamUser"], - __typename?: boolean -}>; - /** aggregate fields of "team_user" */ -["teamUser_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["teamUser_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["teamUser_max_fields"], - min?:ValueTypes["teamUser_min_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "team_user" */ -["teamUser_aggregate_order_by"]: { - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["teamUser_max_order_by"] | undefined | null, - min?: ValueTypes["teamUser_min_order_by"] | undefined | null -}; - /** input type for inserting array relation for remote table "team_user" */ -["teamUser_arr_rel_insert_input"]: { - data: (ValueTypes["teamUser_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["teamUser_on_conflict"] | undefined | null -}; - /** Boolean expression to filter rows from the table "team_user". All fields are combined with a logical 'AND'. */ -["teamUser_bool_exp"]: { - _and?: (ValueTypes["teamUser_bool_exp"])[], - _not?: ValueTypes["teamUser_bool_exp"] | undefined | null, - _or?: (ValueTypes["teamUser_bool_exp"])[], - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - role?: ValueTypes["String_comparison_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - user?: ValueTypes["user_bool_exp"] | undefined | null, - userId?: ValueTypes["uuid_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "team_user" */ -["teamUser_constraint"]:teamUser_constraint; - /** input type for inserting data into table "team_user" */ -["teamUser_insert_input"]: { - createdAt?: ValueTypes["timestamptz"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - role?: string | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null, - user?: ValueTypes["user_obj_rel_insert_input"] | undefined | null, - userId?: ValueTypes["uuid"] | undefined | null -}; - /** aggregate max on columns */ -["teamUser_max_fields"]: AliasType<{ - createdAt?:boolean, - id?:boolean, - role?:boolean, - teamId?:boolean, - updatedAt?:boolean, - userId?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "team_user" */ -["teamUser_max_order_by"]: { - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - role?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null, - userId?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["teamUser_min_fields"]: AliasType<{ - createdAt?:boolean, - id?:boolean, - role?:boolean, - teamId?:boolean, - updatedAt?:boolean, - userId?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "team_user" */ -["teamUser_min_order_by"]: { - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - role?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null, - userId?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "team_user" */ -["teamUser_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["teamUser"], - __typename?: boolean -}>; - /** on conflict condition type for table "team_user" */ -["teamUser_on_conflict"]: { - constraint: ValueTypes["teamUser_constraint"], - update_columns: (ValueTypes["teamUser_update_column"])[] | undefined | null, - where?: ValueTypes["teamUser_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "team_user". */ -["teamUser_order_by"]: { - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - role?: ValueTypes["order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null, - user?: ValueTypes["user_order_by"] | undefined | null, - userId?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: teamUser */ -["teamUser_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** select columns of table "team_user" */ -["teamUser_select_column"]:teamUser_select_column; - /** input type for updating data in table "team_user" */ -["teamUser_set_input"]: { - createdAt?: ValueTypes["timestamptz"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - role?: string | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null, - userId?: ValueTypes["uuid"] | undefined | null -}; - /** update columns of table "team_user" */ -["teamUser_update_column"]:teamUser_update_column; - ["timestamptz"]:unknown; - /** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ -["timestamptz_comparison_exp"]: { - _eq?: ValueTypes["timestamptz"] | undefined | null, - _gt?: ValueTypes["timestamptz"] | undefined | null, - _gte?: ValueTypes["timestamptz"] | undefined | null, - _in?: (ValueTypes["timestamptz"])[], - _is_null?: boolean | undefined | null, - _lt?: ValueTypes["timestamptz"] | undefined | null, - _lte?: ValueTypes["timestamptz"] | undefined | null, - _neq?: ValueTypes["timestamptz"] | undefined | null, - _nin?: (ValueTypes["timestamptz"])[] -}; - /** columns and relationships of "unit" */ -["unit"]: AliasType<{ -bookings?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking"]], -bookings_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["booking_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["booking_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["booking_bool_exp"] | undefined | null},ValueTypes["booking_aggregate"]], - /** An object relationship */ - connection?:ValueTypes["connection"], - connectionId?:boolean, - createdAt?:boolean, - /** An object relationship */ - entity?:ValueTypes["entity"], - entityId?:boolean, - id?:boolean, -metadata?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - name?:boolean, - status?:boolean, -tags?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag"]], -tags_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["tag_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["tag_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["tag_bool_exp"] | undefined | null},ValueTypes["tag_aggregate"]], - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, - uniqueRef?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "unit" */ -["unit_aggregate"]: AliasType<{ - aggregate?:ValueTypes["unit_aggregate_fields"], - nodes?:ValueTypes["unit"], - __typename?: boolean -}>; - /** aggregate fields of "unit" */ -["unit_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["unit_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["unit_max_fields"], - min?:ValueTypes["unit_min_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "unit" */ -["unit_aggregate_order_by"]: { - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["unit_max_order_by"] | undefined | null, - min?: ValueTypes["unit_min_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["unit_append_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "unit" */ -["unit_arr_rel_insert_input"]: { - data: (ValueTypes["unit_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["unit_on_conflict"] | undefined | null -}; - /** Boolean expression to filter rows from the table "unit". All fields are combined with a logical 'AND'. */ -["unit_bool_exp"]: { - _and?: (ValueTypes["unit_bool_exp"])[], - _not?: ValueTypes["unit_bool_exp"] | undefined | null, - _or?: (ValueTypes["unit_bool_exp"])[], - bookings?: ValueTypes["booking_bool_exp"] | undefined | null, - connection?: ValueTypes["connection_bool_exp"] | undefined | null, - connectionId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - entity?: ValueTypes["entity_bool_exp"] | undefined | null, - entityId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - metadata?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - name?: ValueTypes["String_comparison_exp"] | undefined | null, - status?: ValueTypes["String_comparison_exp"] | undefined | null, - tags?: ValueTypes["tag_bool_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - uniqueRef?: ValueTypes["String_comparison_exp"] | undefined | null, - updatedAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "unit" */ -["unit_constraint"]:unit_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["unit_delete_at_path_input"]: { - metadata?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["unit_delete_elem_input"]: { - metadata?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["unit_delete_key_input"]: { - metadata?: string | undefined | null -}; - /** input type for inserting data into table "unit" */ -["unit_insert_input"]: { - bookings?: ValueTypes["booking_arr_rel_insert_input"] | undefined | null, - connection?: ValueTypes["connection_obj_rel_insert_input"] | undefined | null, - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - entity?: ValueTypes["entity_obj_rel_insert_input"] | undefined | null, - entityId?: ValueTypes["uuid"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - name?: string | undefined | null, - status?: string | undefined | null, - tags?: ValueTypes["tag_arr_rel_insert_input"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - uniqueRef?: string | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate max on columns */ -["unit_max_fields"]: AliasType<{ - connectionId?:boolean, - createdAt?:boolean, - entityId?:boolean, - id?:boolean, - name?:boolean, - status?:boolean, - teamId?:boolean, - uniqueRef?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "unit" */ -["unit_max_order_by"]: { - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - entityId?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["unit_min_fields"]: AliasType<{ - connectionId?:boolean, - createdAt?:boolean, - entityId?:boolean, - id?:boolean, - name?:boolean, - status?:boolean, - teamId?:boolean, - uniqueRef?:boolean, - updatedAt?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "unit" */ -["unit_min_order_by"]: { - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - entityId?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "unit" */ -["unit_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["unit"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "unit" */ -["unit_obj_rel_insert_input"]: { - data: ValueTypes["unit_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["unit_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "unit" */ -["unit_on_conflict"]: { - constraint: ValueTypes["unit_constraint"], - update_columns: (ValueTypes["unit_update_column"])[] | undefined | null, - where?: ValueTypes["unit_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "unit". */ -["unit_order_by"]: { - bookings_aggregate?: ValueTypes["booking_aggregate_order_by"] | undefined | null, - connection?: ValueTypes["connection_order_by"] | undefined | null, - connectionId?: ValueTypes["order_by"] | undefined | null, - createdAt?: ValueTypes["order_by"] | undefined | null, - entity?: ValueTypes["entity_order_by"] | undefined | null, - entityId?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - metadata?: ValueTypes["order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - tags_aggregate?: ValueTypes["tag_aggregate_order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - uniqueRef?: ValueTypes["order_by"] | undefined | null, - updatedAt?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: unit */ -["unit_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["unit_prepend_input"]: { - metadata?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "unit" */ -["unit_select_column"]:unit_select_column; - /** input type for updating data in table "unit" */ -["unit_set_input"]: { - connectionId?: ValueTypes["uuid"] | undefined | null, - createdAt?: ValueTypes["timestamptz"] | undefined | null, - entityId?: ValueTypes["uuid"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - metadata?: ValueTypes["jsonb"] | undefined | null, - name?: string | undefined | null, - status?: string | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - uniqueRef?: string | undefined | null, - updatedAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** update columns of table "unit" */ -["unit_update_column"]:unit_update_column; - /** columns and relationships of "user" */ -["user"]: AliasType<{ - createdAt?:boolean, - email?:boolean, - id?:boolean, - isAdmin?:boolean, -memberships?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser"]], -memberships_aggregate?: [{ /** distinct select on columns */ - distinct_on?: (ValueTypes["teamUser_select_column"])[], /** limit the number of rows returned */ - limit?: number | undefined | null, /** skip the first n rows. Use only with order_by */ - offset?: number | undefined | null, /** sort the rows by one or more columns */ - order_by?: (ValueTypes["teamUser_order_by"])[], /** filter the rows returned */ - where?: ValueTypes["teamUser_bool_exp"] | undefined | null},ValueTypes["teamUser_aggregate"]], - name?:boolean, - status?:boolean, - sub?:boolean, - trialExpiryAt?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "user" */ -["user_aggregate"]: AliasType<{ - aggregate?:ValueTypes["user_aggregate_fields"], - nodes?:ValueTypes["user"], - __typename?: boolean -}>; - /** aggregate fields of "user" */ -["user_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["user_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["user_max_fields"], - min?:ValueTypes["user_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "user". All fields are combined with a logical 'AND'. */ -["user_bool_exp"]: { - _and?: (ValueTypes["user_bool_exp"])[], - _not?: ValueTypes["user_bool_exp"] | undefined | null, - _or?: (ValueTypes["user_bool_exp"])[], - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - email?: ValueTypes["String_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - isAdmin?: ValueTypes["Boolean_comparison_exp"] | undefined | null, - memberships?: ValueTypes["teamUser_bool_exp"] | undefined | null, - name?: ValueTypes["String_comparison_exp"] | undefined | null, - status?: ValueTypes["user_status_enum_comparison_exp"] | undefined | null, - sub?: ValueTypes["String_comparison_exp"] | undefined | null, - trialExpiryAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "user" */ -["user_constraint"]:user_constraint; - /** input type for inserting data into table "user" */ -["user_insert_input"]: { - createdAt?: ValueTypes["timestamptz"] | undefined | null, - email?: string | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - isAdmin?: boolean | undefined | null, - memberships?: ValueTypes["teamUser_arr_rel_insert_input"] | undefined | null, - name?: string | undefined | null, - status?: ValueTypes["user_status_enum"] | undefined | null, - sub?: string | undefined | null, - trialExpiryAt?: ValueTypes["timestamptz"] | undefined | null -}; - /** aggregate max on columns */ -["user_max_fields"]: AliasType<{ - createdAt?:boolean, - email?:boolean, - id?:boolean, - name?:boolean, - sub?:boolean, - trialExpiryAt?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["user_min_fields"]: AliasType<{ - createdAt?:boolean, - email?:boolean, - id?:boolean, - name?:boolean, - sub?:boolean, - trialExpiryAt?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "user" */ -["user_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["user"], - __typename?: boolean -}>; - /** input type for inserting object relation for remote table "user" */ -["user_obj_rel_insert_input"]: { - data: ValueTypes["user_insert_input"], - /** on conflict condition */ - on_conflict?: ValueTypes["user_on_conflict"] | undefined | null -}; - /** on conflict condition type for table "user" */ -["user_on_conflict"]: { - constraint: ValueTypes["user_constraint"], - update_columns: (ValueTypes["user_update_column"])[] | undefined | null, - where?: ValueTypes["user_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "user". */ -["user_order_by"]: { - createdAt?: ValueTypes["order_by"] | undefined | null, - email?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - isAdmin?: ValueTypes["order_by"] | undefined | null, - memberships_aggregate?: ValueTypes["teamUser_aggregate_order_by"] | undefined | null, - name?: ValueTypes["order_by"] | undefined | null, - status?: ValueTypes["order_by"] | undefined | null, - sub?: ValueTypes["order_by"] | undefined | null, - trialExpiryAt?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: user */ -["user_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** select columns of table "user" */ -["user_select_column"]:user_select_column; - /** input type for updating data in table "user" */ -["user_set_input"]: { - createdAt?: ValueTypes["timestamptz"] | undefined | null, - email?: string | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - isAdmin?: boolean | undefined | null, - name?: string | undefined | null, - status?: ValueTypes["user_status_enum"] | undefined | null, - sub?: string | undefined | null, - trialExpiryAt?: ValueTypes["timestamptz"] | undefined | null -}; - ["user_status_enum"]:user_status_enum; - /** Boolean expression to compare columns of type "user_status_enum". All fields are combined with logical 'AND'. */ -["user_status_enum_comparison_exp"]: { - _eq?: ValueTypes["user_status_enum"] | undefined | null, - _in?: (ValueTypes["user_status_enum"])[], - _is_null?: boolean | undefined | null, - _neq?: ValueTypes["user_status_enum"] | undefined | null, - _nin?: (ValueTypes["user_status_enum"])[] -}; - /** update columns of table "user" */ -["user_update_column"]:user_update_column; - /** columns and relationships of "user_status" */ -["userStatus"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "user_status" */ -["userStatus_aggregate"]: AliasType<{ - aggregate?:ValueTypes["userStatus_aggregate_fields"], - nodes?:ValueTypes["userStatus"], - __typename?: boolean -}>; - /** aggregate fields of "user_status" */ -["userStatus_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["userStatus_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["userStatus_max_fields"], - min?:ValueTypes["userStatus_min_fields"], - __typename?: boolean -}>; - /** Boolean expression to filter rows from the table "user_status". All fields are combined with a logical 'AND'. */ -["userStatus_bool_exp"]: { - _and?: (ValueTypes["userStatus_bool_exp"])[], - _not?: ValueTypes["userStatus_bool_exp"] | undefined | null, - _or?: (ValueTypes["userStatus_bool_exp"])[], - name?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "user_status" */ -["userStatus_constraint"]:userStatus_constraint; - /** input type for inserting data into table "user_status" */ -["userStatus_insert_input"]: { - name?: string | undefined | null -}; - /** aggregate max on columns */ -["userStatus_max_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** aggregate min on columns */ -["userStatus_min_fields"]: AliasType<{ - name?:boolean, - __typename?: boolean -}>; - /** response of any mutation on the table "user_status" */ -["userStatus_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["userStatus"], - __typename?: boolean -}>; - /** on conflict condition type for table "user_status" */ -["userStatus_on_conflict"]: { - constraint: ValueTypes["userStatus_constraint"], - update_columns: (ValueTypes["userStatus_update_column"])[] | undefined | null, - where?: ValueTypes["userStatus_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "user_status". */ -["userStatus_order_by"]: { - name?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: userStatus */ -["userStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "user_status" */ -["userStatus_select_column"]:userStatus_select_column; - /** input type for updating data in table "user_status" */ -["userStatus_set_input"]: { - name?: string | undefined | null -}; - /** update columns of table "user_status" */ -["userStatus_update_column"]:userStatus_update_column; - ["uuid"]:unknown; - /** Boolean expression to compare columns of type "uuid". All fields are combined with logical 'AND'. */ -["uuid_comparison_exp"]: { - _eq?: ValueTypes["uuid"] | undefined | null, - _gt?: ValueTypes["uuid"] | undefined | null, - _gte?: ValueTypes["uuid"] | undefined | null, - _in?: (ValueTypes["uuid"])[], - _is_null?: boolean | undefined | null, - _lt?: ValueTypes["uuid"] | undefined | null, - _lte?: ValueTypes["uuid"] | undefined | null, - _neq?: ValueTypes["uuid"] | undefined | null, - _nin?: (ValueTypes["uuid"])[] -}; - /** columns and relationships of "webhook" */ -["webhook"]: AliasType<{ - createdAt?:boolean, -headers?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - id?:boolean, - /** An object relationship */ - team?:ValueTypes["team"], - teamId?:boolean, -types?: [{ /** JSON select path */ - path?: string | undefined | null},boolean], - types2?:boolean, - url?:boolean, - __typename?: boolean -}>; - /** aggregated selection of "webhook" */ -["webhook_aggregate"]: AliasType<{ - aggregate?:ValueTypes["webhook_aggregate_fields"], - nodes?:ValueTypes["webhook"], - __typename?: boolean -}>; - /** aggregate fields of "webhook" */ -["webhook_aggregate_fields"]: AliasType<{ -count?: [{ columns?: (ValueTypes["webhook_select_column"])[], distinct?: boolean | undefined | null},boolean], - max?:ValueTypes["webhook_max_fields"], - min?:ValueTypes["webhook_min_fields"], - __typename?: boolean -}>; - /** order by aggregate values of table "webhook" */ -["webhook_aggregate_order_by"]: { - count?: ValueTypes["order_by"] | undefined | null, - max?: ValueTypes["webhook_max_order_by"] | undefined | null, - min?: ValueTypes["webhook_min_order_by"] | undefined | null -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["webhook_append_input"]: { - headers?: ValueTypes["jsonb"] | undefined | null, - types?: ValueTypes["jsonb"] | undefined | null -}; - /** input type for inserting array relation for remote table "webhook" */ -["webhook_arr_rel_insert_input"]: { - data: (ValueTypes["webhook_insert_input"])[] | undefined | null, - /** on conflict condition */ - on_conflict?: ValueTypes["webhook_on_conflict"] | undefined | null -}; - /** Boolean expression to filter rows from the table "webhook". All fields are combined with a logical 'AND'. */ -["webhook_bool_exp"]: { - _and?: (ValueTypes["webhook_bool_exp"])[], - _not?: ValueTypes["webhook_bool_exp"] | undefined | null, - _or?: (ValueTypes["webhook_bool_exp"])[], - createdAt?: ValueTypes["timestamptz_comparison_exp"] | undefined | null, - headers?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - id?: ValueTypes["uuid_comparison_exp"] | undefined | null, - team?: ValueTypes["team_bool_exp"] | undefined | null, - teamId?: ValueTypes["uuid_comparison_exp"] | undefined | null, - types?: ValueTypes["jsonb_comparison_exp"] | undefined | null, - types2?: ValueTypes["_text_comparison_exp"] | undefined | null, - url?: ValueTypes["String_comparison_exp"] | undefined | null -}; - /** unique or primary key constraints on table "webhook" */ -["webhook_constraint"]:webhook_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["webhook_delete_at_path_input"]: { - headers?: (string)[], - types?: (string)[] -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["webhook_delete_elem_input"]: { - headers?: number | undefined | null, - types?: number | undefined | null -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["webhook_delete_key_input"]: { - headers?: string | undefined | null, - types?: string | undefined | null -}; - /** input type for inserting data into table "webhook" */ -["webhook_insert_input"]: { - createdAt?: ValueTypes["timestamptz"] | undefined | null, - headers?: ValueTypes["jsonb"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - team?: ValueTypes["team_obj_rel_insert_input"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - types?: ValueTypes["jsonb"] | undefined | null, - types2?: ValueTypes["_text"] | undefined | null, - url?: string | undefined | null -}; - /** aggregate max on columns */ -["webhook_max_fields"]: AliasType<{ - createdAt?:boolean, - id?:boolean, - teamId?:boolean, - url?:boolean, - __typename?: boolean -}>; - /** order by max() on columns of table "webhook" */ -["webhook_max_order_by"]: { - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - url?: ValueTypes["order_by"] | undefined | null -}; - /** aggregate min on columns */ -["webhook_min_fields"]: AliasType<{ - createdAt?:boolean, - id?:boolean, - teamId?:boolean, - url?:boolean, - __typename?: boolean -}>; - /** order by min() on columns of table "webhook" */ -["webhook_min_order_by"]: { - createdAt?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - url?: ValueTypes["order_by"] | undefined | null -}; - /** response of any mutation on the table "webhook" */ -["webhook_mutation_response"]: AliasType<{ - /** number of rows affected by the mutation */ - affected_rows?:boolean, - /** data from the rows affected by the mutation */ - returning?:ValueTypes["webhook"], - __typename?: boolean -}>; - /** on conflict condition type for table "webhook" */ -["webhook_on_conflict"]: { - constraint: ValueTypes["webhook_constraint"], - update_columns: (ValueTypes["webhook_update_column"])[] | undefined | null, - where?: ValueTypes["webhook_bool_exp"] | undefined | null -}; - /** Ordering options when selecting data from "webhook". */ -["webhook_order_by"]: { - createdAt?: ValueTypes["order_by"] | undefined | null, - headers?: ValueTypes["order_by"] | undefined | null, - id?: ValueTypes["order_by"] | undefined | null, - team?: ValueTypes["team_order_by"] | undefined | null, - teamId?: ValueTypes["order_by"] | undefined | null, - types?: ValueTypes["order_by"] | undefined | null, - types2?: ValueTypes["order_by"] | undefined | null, - url?: ValueTypes["order_by"] | undefined | null -}; - /** primary key columns input for table: webhook */ -["webhook_pk_columns_input"]: { - id: ValueTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["webhook_prepend_input"]: { - headers?: ValueTypes["jsonb"] | undefined | null, - types?: ValueTypes["jsonb"] | undefined | null -}; - /** select columns of table "webhook" */ -["webhook_select_column"]:webhook_select_column; - /** input type for updating data in table "webhook" */ -["webhook_set_input"]: { - createdAt?: ValueTypes["timestamptz"] | undefined | null, - headers?: ValueTypes["jsonb"] | undefined | null, - id?: ValueTypes["uuid"] | undefined | null, - teamId?: ValueTypes["uuid"] | undefined | null, - types?: ValueTypes["jsonb"] | undefined | null, - types2?: ValueTypes["_text"] | undefined | null, - url?: string | undefined | null -}; - /** update columns of table "webhook" */ -["webhook_update_column"]:webhook_update_column - } - -export type ModelTypes = { - ["_text"]:any; - /** Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. */ -["_text_comparison_exp"]: GraphQLTypes["_text_comparison_exp"]; - /** columns and relationships of "booking" */ -["booking"]: { - bookedAt?: GraphQLTypes["timestamptz"] | undefined, - bookerName?: string | undefined, - bookingChannel?: GraphQLTypes["booking_channel_enum"] | undefined, - checkIn?: GraphQLTypes["timestamptz"] | undefined, - checkOut?: GraphQLTypes["timestamptz"] | undefined, - confirmationCode?: string | undefined, - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - currency?: GraphQLTypes["currency_enum"] | undefined, - /** An object relationship */ - entity?: GraphQLTypes["entity"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - guestName?: string | undefined, - guests?: number | undefined, - id: GraphQLTypes["uuid"], - isOTA?: boolean | undefined, - /** An array relationship */ - lines: Array, - /** An aggregate relationship */ - lines_aggregate: GraphQLTypes["line_aggregate"], - metadata?: GraphQLTypes["jsonb"] | undefined, - nights?: number | undefined, - /** An object relationship */ - otaBooking?: GraphQLTypes["booking"] | undefined, - otaBookingId?: GraphQLTypes["uuid"] | undefined, - /** An array relationship */ - relatedBookings: Array, - /** An aggregate relationship */ - relatedBookings_aggregate: GraphQLTypes["booking_aggregate"], - status?: GraphQLTypes["booking_status_enum"] | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - /** An object relationship */ - unit?: GraphQLTypes["unit"] | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "booking" */ -["booking_aggregate"]: { - aggregate?: GraphQLTypes["booking_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "booking" */ -["booking_aggregate_fields"]: { - avg?: GraphQLTypes["booking_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["booking_max_fields"] | undefined, - min?: GraphQLTypes["booking_min_fields"] | undefined, - stddev?: GraphQLTypes["booking_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["booking_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["booking_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["booking_sum_fields"] | undefined, - var_pop?: GraphQLTypes["booking_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["booking_var_samp_fields"] | undefined, - variance?: GraphQLTypes["booking_variance_fields"] | undefined -}; - /** order by aggregate values of table "booking" */ -["booking_aggregate_order_by"]: GraphQLTypes["booking_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["booking_append_input"]: GraphQLTypes["booking_append_input"]; - /** input type for inserting array relation for remote table "booking" */ -["booking_arr_rel_insert_input"]: GraphQLTypes["booking_arr_rel_insert_input"]; - /** aggregate avg on columns */ -["booking_avg_fields"]: { - guests?: number | undefined, - nights?: number | undefined -}; - /** order by avg() on columns of table "booking" */ -["booking_avg_order_by"]: GraphQLTypes["booking_avg_order_by"]; - /** Boolean expression to filter rows from the table "booking". All fields are combined with a logical 'AND'. */ -["booking_bool_exp"]: GraphQLTypes["booking_bool_exp"]; - /** columns and relationships of "booking_channel" */ -["booking_channel"]: { - name: string -}; - /** aggregated selection of "booking_channel" */ -["booking_channel_aggregate"]: { - aggregate?: GraphQLTypes["booking_channel_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "booking_channel" */ -["booking_channel_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["booking_channel_max_fields"] | undefined, - min?: GraphQLTypes["booking_channel_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "booking_channel". All fields are combined with a logical 'AND'. */ -["booking_channel_bool_exp"]: GraphQLTypes["booking_channel_bool_exp"]; - /** unique or primary key constraints on table "booking_channel" */ -["booking_channel_constraint"]: GraphQLTypes["booking_channel_constraint"]; - ["booking_channel_enum"]: GraphQLTypes["booking_channel_enum"]; - /** Boolean expression to compare columns of type "booking_channel_enum". All fields are combined with logical 'AND'. */ -["booking_channel_enum_comparison_exp"]: GraphQLTypes["booking_channel_enum_comparison_exp"]; - /** input type for inserting data into table "booking_channel" */ -["booking_channel_insert_input"]: GraphQLTypes["booking_channel_insert_input"]; - /** aggregate max on columns */ -["booking_channel_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["booking_channel_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "booking_channel" */ -["booking_channel_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "booking_channel" */ -["booking_channel_on_conflict"]: GraphQLTypes["booking_channel_on_conflict"]; - /** Ordering options when selecting data from "booking_channel". */ -["booking_channel_order_by"]: GraphQLTypes["booking_channel_order_by"]; - /** primary key columns input for table: booking_channel */ -["booking_channel_pk_columns_input"]: GraphQLTypes["booking_channel_pk_columns_input"]; - /** select columns of table "booking_channel" */ -["booking_channel_select_column"]: GraphQLTypes["booking_channel_select_column"]; - /** input type for updating data in table "booking_channel" */ -["booking_channel_set_input"]: GraphQLTypes["booking_channel_set_input"]; - /** update columns of table "booking_channel" */ -["booking_channel_update_column"]: GraphQLTypes["booking_channel_update_column"]; - /** unique or primary key constraints on table "booking" */ -["booking_constraint"]: GraphQLTypes["booking_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["booking_delete_at_path_input"]: GraphQLTypes["booking_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["booking_delete_elem_input"]: GraphQLTypes["booking_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["booking_delete_key_input"]: GraphQLTypes["booking_delete_key_input"]; - /** input type for incrementing numeric columns in table "booking" */ -["booking_inc_input"]: GraphQLTypes["booking_inc_input"]; - /** input type for inserting data into table "booking" */ -["booking_insert_input"]: GraphQLTypes["booking_insert_input"]; - /** aggregate max on columns */ -["booking_max_fields"]: { - bookedAt?: GraphQLTypes["timestamptz"] | undefined, - bookerName?: string | undefined, - checkIn?: GraphQLTypes["timestamptz"] | undefined, - checkOut?: GraphQLTypes["timestamptz"] | undefined, - confirmationCode?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - guestName?: string | undefined, - guests?: number | undefined, - id?: GraphQLTypes["uuid"] | undefined, - nights?: number | undefined, - otaBookingId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "booking" */ -["booking_max_order_by"]: GraphQLTypes["booking_max_order_by"]; - /** aggregate min on columns */ -["booking_min_fields"]: { - bookedAt?: GraphQLTypes["timestamptz"] | undefined, - bookerName?: string | undefined, - checkIn?: GraphQLTypes["timestamptz"] | undefined, - checkOut?: GraphQLTypes["timestamptz"] | undefined, - confirmationCode?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - guestName?: string | undefined, - guests?: number | undefined, - id?: GraphQLTypes["uuid"] | undefined, - nights?: number | undefined, - otaBookingId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "booking" */ -["booking_min_order_by"]: GraphQLTypes["booking_min_order_by"]; - /** response of any mutation on the table "booking" */ -["booking_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "booking" */ -["booking_obj_rel_insert_input"]: GraphQLTypes["booking_obj_rel_insert_input"]; - /** on conflict condition type for table "booking" */ -["booking_on_conflict"]: GraphQLTypes["booking_on_conflict"]; - /** Ordering options when selecting data from "booking". */ -["booking_order_by"]: GraphQLTypes["booking_order_by"]; - /** primary key columns input for table: booking */ -["booking_pk_columns_input"]: GraphQLTypes["booking_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["booking_prepend_input"]: GraphQLTypes["booking_prepend_input"]; - /** select columns of table "booking" */ -["booking_select_column"]: GraphQLTypes["booking_select_column"]; - /** input type for updating data in table "booking" */ -["booking_set_input"]: GraphQLTypes["booking_set_input"]; - ["booking_status_enum"]: GraphQLTypes["booking_status_enum"]; - /** Boolean expression to compare columns of type "booking_status_enum". All fields are combined with logical 'AND'. */ -["booking_status_enum_comparison_exp"]: GraphQLTypes["booking_status_enum_comparison_exp"]; - /** aggregate stddev on columns */ -["booking_stddev_fields"]: { - guests?: number | undefined, - nights?: number | undefined -}; - /** order by stddev() on columns of table "booking" */ -["booking_stddev_order_by"]: GraphQLTypes["booking_stddev_order_by"]; - /** aggregate stddev_pop on columns */ -["booking_stddev_pop_fields"]: { - guests?: number | undefined, - nights?: number | undefined -}; - /** order by stddev_pop() on columns of table "booking" */ -["booking_stddev_pop_order_by"]: GraphQLTypes["booking_stddev_pop_order_by"]; - /** aggregate stddev_samp on columns */ -["booking_stddev_samp_fields"]: { - guests?: number | undefined, - nights?: number | undefined -}; - /** order by stddev_samp() on columns of table "booking" */ -["booking_stddev_samp_order_by"]: GraphQLTypes["booking_stddev_samp_order_by"]; - /** aggregate sum on columns */ -["booking_sum_fields"]: { - guests?: number | undefined, - nights?: number | undefined -}; - /** order by sum() on columns of table "booking" */ -["booking_sum_order_by"]: GraphQLTypes["booking_sum_order_by"]; - /** update columns of table "booking" */ -["booking_update_column"]: GraphQLTypes["booking_update_column"]; - /** aggregate var_pop on columns */ -["booking_var_pop_fields"]: { - guests?: number | undefined, - nights?: number | undefined -}; - /** order by var_pop() on columns of table "booking" */ -["booking_var_pop_order_by"]: GraphQLTypes["booking_var_pop_order_by"]; - /** aggregate var_samp on columns */ -["booking_var_samp_fields"]: { - guests?: number | undefined, - nights?: number | undefined -}; - /** order by var_samp() on columns of table "booking" */ -["booking_var_samp_order_by"]: GraphQLTypes["booking_var_samp_order_by"]; - /** aggregate variance on columns */ -["booking_variance_fields"]: { - guests?: number | undefined, - nights?: number | undefined -}; - /** order by variance() on columns of table "booking" */ -["booking_variance_order_by"]: GraphQLTypes["booking_variance_order_by"]; - /** columns and relationships of "booking_status" */ -["bookingStatus"]: { - name: string -}; - /** aggregated selection of "booking_status" */ -["bookingStatus_aggregate"]: { - aggregate?: GraphQLTypes["bookingStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "booking_status" */ -["bookingStatus_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["bookingStatus_max_fields"] | undefined, - min?: GraphQLTypes["bookingStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "booking_status". All fields are combined with a logical 'AND'. */ -["bookingStatus_bool_exp"]: GraphQLTypes["bookingStatus_bool_exp"]; - /** unique or primary key constraints on table "booking_status" */ -["bookingStatus_constraint"]: GraphQLTypes["bookingStatus_constraint"]; - /** input type for inserting data into table "booking_status" */ -["bookingStatus_insert_input"]: GraphQLTypes["bookingStatus_insert_input"]; - /** aggregate max on columns */ -["bookingStatus_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["bookingStatus_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "booking_status" */ -["bookingStatus_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "booking_status" */ -["bookingStatus_on_conflict"]: GraphQLTypes["bookingStatus_on_conflict"]; - /** Ordering options when selecting data from "booking_status". */ -["bookingStatus_order_by"]: GraphQLTypes["bookingStatus_order_by"]; - /** primary key columns input for table: bookingStatus */ -["bookingStatus_pk_columns_input"]: GraphQLTypes["bookingStatus_pk_columns_input"]; - /** select columns of table "booking_status" */ -["bookingStatus_select_column"]: GraphQLTypes["bookingStatus_select_column"]; - /** input type for updating data in table "booking_status" */ -["bookingStatus_set_input"]: GraphQLTypes["bookingStatus_set_input"]; - /** update columns of table "booking_status" */ -["bookingStatus_update_column"]: GraphQLTypes["bookingStatus_update_column"]; - /** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */ -["Boolean_comparison_exp"]: GraphQLTypes["Boolean_comparison_exp"]; - /** columns and relationships of "classification" */ -["classification"]: { - name: string -}; - /** aggregated selection of "classification" */ -["classification_aggregate"]: { - aggregate?: GraphQLTypes["classification_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "classification" */ -["classification_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["classification_max_fields"] | undefined, - min?: GraphQLTypes["classification_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "classification". All fields are combined with a logical 'AND'. */ -["classification_bool_exp"]: GraphQLTypes["classification_bool_exp"]; - /** unique or primary key constraints on table "classification" */ -["classification_constraint"]: GraphQLTypes["classification_constraint"]; - ["classification_enum"]: GraphQLTypes["classification_enum"]; - /** Boolean expression to compare columns of type "classification_enum". All fields are combined with logical 'AND'. */ -["classification_enum_comparison_exp"]: GraphQLTypes["classification_enum_comparison_exp"]; - /** input type for inserting data into table "classification" */ -["classification_insert_input"]: GraphQLTypes["classification_insert_input"]; - /** aggregate max on columns */ -["classification_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["classification_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "classification" */ -["classification_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "classification" */ -["classification_on_conflict"]: GraphQLTypes["classification_on_conflict"]; - /** Ordering options when selecting data from "classification". */ -["classification_order_by"]: GraphQLTypes["classification_order_by"]; - /** primary key columns input for table: classification */ -["classification_pk_columns_input"]: GraphQLTypes["classification_pk_columns_input"]; - /** select columns of table "classification" */ -["classification_select_column"]: GraphQLTypes["classification_select_column"]; - /** input type for updating data in table "classification" */ -["classification_set_input"]: GraphQLTypes["classification_set_input"]; - /** update columns of table "classification" */ -["classification_update_column"]: GraphQLTypes["classification_update_column"]; - /** columns and relationships of "connection" */ -["connection"]: { - /** An array relationship */ - bookings: Array, - /** An aggregate relationship */ - bookings_aggregate: GraphQLTypes["booking_aggregate"], - createdAt: GraphQLTypes["timestamptz"], - credentials?: GraphQLTypes["jsonb"] | undefined, - /** An array relationship */ - entities: Array, - /** An aggregate relationship */ - entities_aggregate: GraphQLTypes["entity_aggregate"], - id: GraphQLTypes["uuid"], - /** An object relationship */ - integration: GraphQLTypes["integration"], - integrationId: GraphQLTypes["uuid"], - /** An array relationship */ - jobs: Array, - /** An aggregate relationship */ - jobs_aggregate: GraphQLTypes["job_aggregate"], - /** An array relationship */ - lines: Array, - /** An aggregate relationship */ - lines_aggregate: GraphQLTypes["line_aggregate"], - /** An array relationship */ - metrics: Array, - /** An aggregate relationship */ - metrics_aggregate: GraphQLTypes["metric_aggregate"], - name: string, - /** An array relationship */ - payments: Array, - /** An aggregate relationship */ - payments_aggregate: GraphQLTypes["payment_aggregate"], - persistentState?: GraphQLTypes["jsonb"] | undefined, - status?: string | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - /** An array relationship */ - units: Array, - /** An aggregate relationship */ - units_aggregate: GraphQLTypes["unit_aggregate"], - webhookKey?: string | undefined -}; - /** aggregated selection of "connection" */ -["connection_aggregate"]: { - aggregate?: GraphQLTypes["connection_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "connection" */ -["connection_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["connection_max_fields"] | undefined, - min?: GraphQLTypes["connection_min_fields"] | undefined -}; - /** order by aggregate values of table "connection" */ -["connection_aggregate_order_by"]: GraphQLTypes["connection_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["connection_append_input"]: GraphQLTypes["connection_append_input"]; - /** input type for inserting array relation for remote table "connection" */ -["connection_arr_rel_insert_input"]: GraphQLTypes["connection_arr_rel_insert_input"]; - /** Boolean expression to filter rows from the table "connection". All fields are combined with a logical 'AND'. */ -["connection_bool_exp"]: GraphQLTypes["connection_bool_exp"]; - /** unique or primary key constraints on table "connection" */ -["connection_constraint"]: GraphQLTypes["connection_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["connection_delete_at_path_input"]: GraphQLTypes["connection_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["connection_delete_elem_input"]: GraphQLTypes["connection_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["connection_delete_key_input"]: GraphQLTypes["connection_delete_key_input"]; - /** input type for inserting data into table "connection" */ -["connection_insert_input"]: GraphQLTypes["connection_insert_input"]; - /** aggregate max on columns */ -["connection_max_fields"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - webhookKey?: string | undefined -}; - /** order by max() on columns of table "connection" */ -["connection_max_order_by"]: GraphQLTypes["connection_max_order_by"]; - /** aggregate min on columns */ -["connection_min_fields"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - webhookKey?: string | undefined -}; - /** order by min() on columns of table "connection" */ -["connection_min_order_by"]: GraphQLTypes["connection_min_order_by"]; - /** response of any mutation on the table "connection" */ -["connection_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "connection" */ -["connection_obj_rel_insert_input"]: GraphQLTypes["connection_obj_rel_insert_input"]; - /** on conflict condition type for table "connection" */ -["connection_on_conflict"]: GraphQLTypes["connection_on_conflict"]; - /** Ordering options when selecting data from "connection". */ -["connection_order_by"]: GraphQLTypes["connection_order_by"]; - /** primary key columns input for table: connection */ -["connection_pk_columns_input"]: GraphQLTypes["connection_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["connection_prepend_input"]: GraphQLTypes["connection_prepend_input"]; - /** select columns of table "connection" */ -["connection_select_column"]: GraphQLTypes["connection_select_column"]; - /** input type for updating data in table "connection" */ -["connection_set_input"]: GraphQLTypes["connection_set_input"]; - /** update columns of table "connection" */ -["connection_update_column"]: GraphQLTypes["connection_update_column"]; - /** columns and relationships of "currency" */ -["currency"]: { - name: string -}; - /** aggregated selection of "currency" */ -["currency_aggregate"]: { - aggregate?: GraphQLTypes["currency_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "currency" */ -["currency_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["currency_max_fields"] | undefined, - min?: GraphQLTypes["currency_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "currency". All fields are combined with a logical 'AND'. */ -["currency_bool_exp"]: GraphQLTypes["currency_bool_exp"]; - /** unique or primary key constraints on table "currency" */ -["currency_constraint"]: GraphQLTypes["currency_constraint"]; - ["currency_enum"]: GraphQLTypes["currency_enum"]; - /** Boolean expression to compare columns of type "currency_enum". All fields are combined with logical 'AND'. */ -["currency_enum_comparison_exp"]: GraphQLTypes["currency_enum_comparison_exp"]; - /** input type for inserting data into table "currency" */ -["currency_insert_input"]: GraphQLTypes["currency_insert_input"]; - /** aggregate max on columns */ -["currency_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["currency_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "currency" */ -["currency_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "currency" */ -["currency_on_conflict"]: GraphQLTypes["currency_on_conflict"]; - /** Ordering options when selecting data from "currency". */ -["currency_order_by"]: GraphQLTypes["currency_order_by"]; - /** primary key columns input for table: currency */ -["currency_pk_columns_input"]: GraphQLTypes["currency_pk_columns_input"]; - /** select columns of table "currency" */ -["currency_select_column"]: GraphQLTypes["currency_select_column"]; - /** input type for updating data in table "currency" */ -["currency_set_input"]: GraphQLTypes["currency_set_input"]; - /** update columns of table "currency" */ -["currency_update_column"]: GraphQLTypes["currency_update_column"]; - /** columns and relationships of "entity" */ -["entity"]: { - /** An array relationship */ - bookings: Array, - /** An aggregate relationship */ - bookings_aggregate: GraphQLTypes["booking_aggregate"], - /** An object relationship */ - connection: GraphQLTypes["connection"], - connectionId: GraphQLTypes["uuid"], - createdAt: GraphQLTypes["timestamptz"], - description: string, - diffJson?: GraphQLTypes["jsonb"] | undefined, - hash?: string | undefined, - id: GraphQLTypes["uuid"], - /** An object relationship */ - job?: GraphQLTypes["job"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - json?: GraphQLTypes["jsonb"] | undefined, - normalizedJson?: GraphQLTypes["jsonb"] | undefined, - normalizedType?: GraphQLTypes["normalized_type_enum"] | undefined, - parsedAt?: GraphQLTypes["timestamptz"] | undefined, - /** An array relationship */ - payments: Array, - /** An aggregate relationship */ - payments_aggregate: GraphQLTypes["payment_aggregate"], - /** An object relationship */ - predecessorEntity?: GraphQLTypes["entity"] | undefined, - predecessorEntityId?: GraphQLTypes["uuid"] | undefined, - status: GraphQLTypes["entity_status_enum"], - statusText?: string | undefined, - /** An array relationship */ - successorEntities: Array, - /** An aggregate relationship */ - successorEntities_aggregate: GraphQLTypes["entity_aggregate"], - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type: string, - uniqueRef?: string | undefined, - /** An array relationship */ - units: Array, - /** An aggregate relationship */ - units_aggregate: GraphQLTypes["unit_aggregate"], - updatedAt: GraphQLTypes["timestamptz"] -}; - /** aggregated selection of "entity" */ -["entity_aggregate"]: { - aggregate?: GraphQLTypes["entity_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "entity" */ -["entity_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["entity_max_fields"] | undefined, - min?: GraphQLTypes["entity_min_fields"] | undefined -}; - /** order by aggregate values of table "entity" */ -["entity_aggregate_order_by"]: GraphQLTypes["entity_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["entity_append_input"]: GraphQLTypes["entity_append_input"]; - /** input type for inserting array relation for remote table "entity" */ -["entity_arr_rel_insert_input"]: GraphQLTypes["entity_arr_rel_insert_input"]; - /** Boolean expression to filter rows from the table "entity". All fields are combined with a logical 'AND'. */ -["entity_bool_exp"]: GraphQLTypes["entity_bool_exp"]; - /** unique or primary key constraints on table "entity" */ -["entity_constraint"]: GraphQLTypes["entity_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["entity_delete_at_path_input"]: GraphQLTypes["entity_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["entity_delete_elem_input"]: GraphQLTypes["entity_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["entity_delete_key_input"]: GraphQLTypes["entity_delete_key_input"]; - /** input type for inserting data into table "entity" */ -["entity_insert_input"]: GraphQLTypes["entity_insert_input"]; - /** aggregate max on columns */ -["entity_max_fields"]: { - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - hash?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - parsedAt?: GraphQLTypes["timestamptz"] | undefined, - predecessorEntityId?: GraphQLTypes["uuid"] | undefined, - statusText?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "entity" */ -["entity_max_order_by"]: GraphQLTypes["entity_max_order_by"]; - /** aggregate min on columns */ -["entity_min_fields"]: { - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - hash?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - parsedAt?: GraphQLTypes["timestamptz"] | undefined, - predecessorEntityId?: GraphQLTypes["uuid"] | undefined, - statusText?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "entity" */ -["entity_min_order_by"]: GraphQLTypes["entity_min_order_by"]; - /** response of any mutation on the table "entity" */ -["entity_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "entity" */ -["entity_obj_rel_insert_input"]: GraphQLTypes["entity_obj_rel_insert_input"]; - /** on conflict condition type for table "entity" */ -["entity_on_conflict"]: GraphQLTypes["entity_on_conflict"]; - /** Ordering options when selecting data from "entity". */ -["entity_order_by"]: GraphQLTypes["entity_order_by"]; - /** primary key columns input for table: entity */ -["entity_pk_columns_input"]: GraphQLTypes["entity_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["entity_prepend_input"]: GraphQLTypes["entity_prepend_input"]; - /** select columns of table "entity" */ -["entity_select_column"]: GraphQLTypes["entity_select_column"]; - /** input type for updating data in table "entity" */ -["entity_set_input"]: GraphQLTypes["entity_set_input"]; - ["entity_status_enum"]: GraphQLTypes["entity_status_enum"]; - /** Boolean expression to compare columns of type "entity_status_enum". All fields are combined with logical 'AND'. */ -["entity_status_enum_comparison_exp"]: GraphQLTypes["entity_status_enum_comparison_exp"]; - /** update columns of table "entity" */ -["entity_update_column"]: GraphQLTypes["entity_update_column"]; - /** columns and relationships of "entity_status" */ -["entityStatus"]: { - name: string -}; - /** aggregated selection of "entity_status" */ -["entityStatus_aggregate"]: { - aggregate?: GraphQLTypes["entityStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "entity_status" */ -["entityStatus_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["entityStatus_max_fields"] | undefined, - min?: GraphQLTypes["entityStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "entity_status". All fields are combined with a logical 'AND'. */ -["entityStatus_bool_exp"]: GraphQLTypes["entityStatus_bool_exp"]; - /** unique or primary key constraints on table "entity_status" */ -["entityStatus_constraint"]: GraphQLTypes["entityStatus_constraint"]; - /** input type for inserting data into table "entity_status" */ -["entityStatus_insert_input"]: GraphQLTypes["entityStatus_insert_input"]; - /** aggregate max on columns */ -["entityStatus_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["entityStatus_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "entity_status" */ -["entityStatus_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "entity_status" */ -["entityStatus_on_conflict"]: GraphQLTypes["entityStatus_on_conflict"]; - /** Ordering options when selecting data from "entity_status". */ -["entityStatus_order_by"]: GraphQLTypes["entityStatus_order_by"]; - /** primary key columns input for table: entityStatus */ -["entityStatus_pk_columns_input"]: GraphQLTypes["entityStatus_pk_columns_input"]; - /** select columns of table "entity_status" */ -["entityStatus_select_column"]: GraphQLTypes["entityStatus_select_column"]; - /** input type for updating data in table "entity_status" */ -["entityStatus_set_input"]: GraphQLTypes["entityStatus_set_input"]; - /** update columns of table "entity_status" */ -["entityStatus_update_column"]: GraphQLTypes["entityStatus_update_column"]; - ["float8"]:any; - /** Boolean expression to compare columns of type "float8". All fields are combined with logical 'AND'. */ -["float8_comparison_exp"]: GraphQLTypes["float8_comparison_exp"]; - /** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ -["Int_comparison_exp"]: GraphQLTypes["Int_comparison_exp"]; - /** columns and relationships of "integration" */ -["integration"]: { - apiDevUrl?: string | undefined, - apiUrl: string, - /** An array relationship */ - connections: Array, - /** An aggregate relationship */ - connections_aggregate: GraphQLTypes["connection_aggregate"], - icon?: string | undefined, - id: GraphQLTypes["uuid"], - isApproved?: boolean | undefined, - isPrivate: boolean, - /** An array relationship */ - jobs: Array, - /** An aggregate relationship */ - jobs_aggregate: GraphQLTypes["job_aggregate"], - name: string, - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type: GraphQLTypes["integration_type_enum"], - uniqueRef: string -}; - /** aggregated selection of "integration" */ -["integration_aggregate"]: { - aggregate?: GraphQLTypes["integration_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "integration" */ -["integration_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["integration_max_fields"] | undefined, - min?: GraphQLTypes["integration_min_fields"] | undefined -}; - /** order by aggregate values of table "integration" */ -["integration_aggregate_order_by"]: GraphQLTypes["integration_aggregate_order_by"]; - /** input type for inserting array relation for remote table "integration" */ -["integration_arr_rel_insert_input"]: GraphQLTypes["integration_arr_rel_insert_input"]; - /** Boolean expression to filter rows from the table "integration". All fields are combined with a logical 'AND'. */ -["integration_bool_exp"]: GraphQLTypes["integration_bool_exp"]; - /** unique or primary key constraints on table "integration" */ -["integration_constraint"]: GraphQLTypes["integration_constraint"]; - /** input type for inserting data into table "integration" */ -["integration_insert_input"]: GraphQLTypes["integration_insert_input"]; - /** aggregate max on columns */ -["integration_max_fields"]: { - apiDevUrl?: string | undefined, - apiUrl?: string | undefined, - icon?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined -}; - /** order by max() on columns of table "integration" */ -["integration_max_order_by"]: GraphQLTypes["integration_max_order_by"]; - /** aggregate min on columns */ -["integration_min_fields"]: { - apiDevUrl?: string | undefined, - apiUrl?: string | undefined, - icon?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined -}; - /** order by min() on columns of table "integration" */ -["integration_min_order_by"]: GraphQLTypes["integration_min_order_by"]; - /** response of any mutation on the table "integration" */ -["integration_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "integration" */ -["integration_obj_rel_insert_input"]: GraphQLTypes["integration_obj_rel_insert_input"]; - /** on conflict condition type for table "integration" */ -["integration_on_conflict"]: GraphQLTypes["integration_on_conflict"]; - /** Ordering options when selecting data from "integration". */ -["integration_order_by"]: GraphQLTypes["integration_order_by"]; - /** primary key columns input for table: integration */ -["integration_pk_columns_input"]: GraphQLTypes["integration_pk_columns_input"]; - /** select columns of table "integration" */ -["integration_select_column"]: GraphQLTypes["integration_select_column"]; - /** input type for updating data in table "integration" */ -["integration_set_input"]: GraphQLTypes["integration_set_input"]; - ["integration_type_enum"]: GraphQLTypes["integration_type_enum"]; - /** Boolean expression to compare columns of type "integration_type_enum". All fields are combined with logical 'AND'. */ -["integration_type_enum_comparison_exp"]: GraphQLTypes["integration_type_enum_comparison_exp"]; - /** update columns of table "integration" */ -["integration_update_column"]: GraphQLTypes["integration_update_column"]; - /** columns and relationships of "integration_type" */ -["integrationType"]: { - name: string -}; - /** aggregated selection of "integration_type" */ -["integrationType_aggregate"]: { - aggregate?: GraphQLTypes["integrationType_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "integration_type" */ -["integrationType_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["integrationType_max_fields"] | undefined, - min?: GraphQLTypes["integrationType_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "integration_type". All fields are combined with a logical 'AND'. */ -["integrationType_bool_exp"]: GraphQLTypes["integrationType_bool_exp"]; - /** unique or primary key constraints on table "integration_type" */ -["integrationType_constraint"]: GraphQLTypes["integrationType_constraint"]; - /** input type for inserting data into table "integration_type" */ -["integrationType_insert_input"]: GraphQLTypes["integrationType_insert_input"]; - /** aggregate max on columns */ -["integrationType_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["integrationType_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "integration_type" */ -["integrationType_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "integration_type" */ -["integrationType_on_conflict"]: GraphQLTypes["integrationType_on_conflict"]; - /** Ordering options when selecting data from "integration_type". */ -["integrationType_order_by"]: GraphQLTypes["integrationType_order_by"]; - /** primary key columns input for table: integrationType */ -["integrationType_pk_columns_input"]: GraphQLTypes["integrationType_pk_columns_input"]; - /** select columns of table "integration_type" */ -["integrationType_select_column"]: GraphQLTypes["integrationType_select_column"]; - /** input type for updating data in table "integration_type" */ -["integrationType_set_input"]: GraphQLTypes["integrationType_set_input"]; - /** update columns of table "integration_type" */ -["integrationType_update_column"]: GraphQLTypes["integrationType_update_column"]; - /** columns and relationships of "issue" */ -["issue"]: { - code?: string | undefined, - createdAt: GraphQLTypes["timestamptz"], - id: GraphQLTypes["uuid"], - isPublic?: boolean | undefined, - isResolved?: boolean | undefined, - /** An object relationship */ - job: GraphQLTypes["job"], - jobId: GraphQLTypes["uuid"], - message?: string | undefined, - requestParams?: GraphQLTypes["jsonb"] | undefined, - resolveParams?: GraphQLTypes["jsonb"] | undefined, - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - type?: string | undefined, - updatedAt: GraphQLTypes["timestamptz"] -}; - /** aggregated selection of "issue" */ -["issue_aggregate"]: { - aggregate?: GraphQLTypes["issue_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "issue" */ -["issue_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["issue_max_fields"] | undefined, - min?: GraphQLTypes["issue_min_fields"] | undefined -}; - /** order by aggregate values of table "issue" */ -["issue_aggregate_order_by"]: GraphQLTypes["issue_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["issue_append_input"]: GraphQLTypes["issue_append_input"]; - /** input type for inserting array relation for remote table "issue" */ -["issue_arr_rel_insert_input"]: GraphQLTypes["issue_arr_rel_insert_input"]; - /** Boolean expression to filter rows from the table "issue". All fields are combined with a logical 'AND'. */ -["issue_bool_exp"]: GraphQLTypes["issue_bool_exp"]; - /** unique or primary key constraints on table "issue" */ -["issue_constraint"]: GraphQLTypes["issue_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["issue_delete_at_path_input"]: GraphQLTypes["issue_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["issue_delete_elem_input"]: GraphQLTypes["issue_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["issue_delete_key_input"]: GraphQLTypes["issue_delete_key_input"]; - /** input type for inserting data into table "issue" */ -["issue_insert_input"]: GraphQLTypes["issue_insert_input"]; - /** aggregate max on columns */ -["issue_max_fields"]: { - code?: string | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - message?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "issue" */ -["issue_max_order_by"]: GraphQLTypes["issue_max_order_by"]; - /** aggregate min on columns */ -["issue_min_fields"]: { - code?: string | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - message?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "issue" */ -["issue_min_order_by"]: GraphQLTypes["issue_min_order_by"]; - /** response of any mutation on the table "issue" */ -["issue_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "issue" */ -["issue_on_conflict"]: GraphQLTypes["issue_on_conflict"]; - /** Ordering options when selecting data from "issue". */ -["issue_order_by"]: GraphQLTypes["issue_order_by"]; - /** primary key columns input for table: issue */ -["issue_pk_columns_input"]: GraphQLTypes["issue_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["issue_prepend_input"]: GraphQLTypes["issue_prepend_input"]; - /** select columns of table "issue" */ -["issue_select_column"]: GraphQLTypes["issue_select_column"]; - /** input type for updating data in table "issue" */ -["issue_set_input"]: GraphQLTypes["issue_set_input"]; - /** update columns of table "issue" */ -["issue_update_column"]: GraphQLTypes["issue_update_column"]; - /** columns and relationships of "job" */ -["job"]: { - apiVersion?: string | undefined, - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt: GraphQLTypes["timestamptz"], - endedAt?: GraphQLTypes["timestamptz"] | undefined, - /** An array relationship */ - entities: Array, - /** An aggregate relationship */ - entities_aggregate: GraphQLTypes["entity_aggregate"], - id: GraphQLTypes["uuid"], - /** An object relationship */ - integration?: GraphQLTypes["integration"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - integrationSdkVersion?: string | undefined, - integrationVersion?: string | undefined, - /** An array relationship */ - issues: Array, - /** An aggregate relationship */ - issues_aggregate: GraphQLTypes["issue_aggregate"], - logFile?: string | undefined, - logLink?: string | undefined, - logs?: GraphQLTypes["jsonb"] | undefined, - method?: GraphQLTypes["job_method_enum"] | undefined, - params?: GraphQLTypes["jsonb"] | undefined, - requestId?: string | undefined, - response?: GraphQLTypes["jsonb"] | undefined, - sdkVersion?: string | undefined, - startedAt?: GraphQLTypes["timestamptz"] | undefined, - status?: GraphQLTypes["job_status_enum"] | undefined, - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt: GraphQLTypes["timestamptz"] -}; - /** aggregated selection of "job" */ -["job_aggregate"]: { - aggregate?: GraphQLTypes["job_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "job" */ -["job_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["job_max_fields"] | undefined, - min?: GraphQLTypes["job_min_fields"] | undefined -}; - /** order by aggregate values of table "job" */ -["job_aggregate_order_by"]: GraphQLTypes["job_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["job_append_input"]: GraphQLTypes["job_append_input"]; - /** input type for inserting array relation for remote table "job" */ -["job_arr_rel_insert_input"]: GraphQLTypes["job_arr_rel_insert_input"]; - /** Boolean expression to filter rows from the table "job". All fields are combined with a logical 'AND'. */ -["job_bool_exp"]: GraphQLTypes["job_bool_exp"]; - /** unique or primary key constraints on table "job" */ -["job_constraint"]: GraphQLTypes["job_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["job_delete_at_path_input"]: GraphQLTypes["job_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["job_delete_elem_input"]: GraphQLTypes["job_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["job_delete_key_input"]: GraphQLTypes["job_delete_key_input"]; - /** input type for inserting data into table "job" */ -["job_insert_input"]: GraphQLTypes["job_insert_input"]; - /** aggregate max on columns */ -["job_max_fields"]: { - apiVersion?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - endedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - integrationSdkVersion?: string | undefined, - integrationVersion?: string | undefined, - logFile?: string | undefined, - logLink?: string | undefined, - requestId?: string | undefined, - sdkVersion?: string | undefined, - startedAt?: GraphQLTypes["timestamptz"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "job" */ -["job_max_order_by"]: GraphQLTypes["job_max_order_by"]; - ["job_method_enum"]: GraphQLTypes["job_method_enum"]; - /** Boolean expression to compare columns of type "job_method_enum". All fields are combined with logical 'AND'. */ -["job_method_enum_comparison_exp"]: GraphQLTypes["job_method_enum_comparison_exp"]; - /** aggregate min on columns */ -["job_min_fields"]: { - apiVersion?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - endedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - integrationSdkVersion?: string | undefined, - integrationVersion?: string | undefined, - logFile?: string | undefined, - logLink?: string | undefined, - requestId?: string | undefined, - sdkVersion?: string | undefined, - startedAt?: GraphQLTypes["timestamptz"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "job" */ -["job_min_order_by"]: GraphQLTypes["job_min_order_by"]; - /** response of any mutation on the table "job" */ -["job_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "job" */ -["job_obj_rel_insert_input"]: GraphQLTypes["job_obj_rel_insert_input"]; - /** on conflict condition type for table "job" */ -["job_on_conflict"]: GraphQLTypes["job_on_conflict"]; - /** Ordering options when selecting data from "job". */ -["job_order_by"]: GraphQLTypes["job_order_by"]; - /** primary key columns input for table: job */ -["job_pk_columns_input"]: GraphQLTypes["job_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["job_prepend_input"]: GraphQLTypes["job_prepend_input"]; - /** select columns of table "job" */ -["job_select_column"]: GraphQLTypes["job_select_column"]; - /** input type for updating data in table "job" */ -["job_set_input"]: GraphQLTypes["job_set_input"]; - ["job_status_enum"]: GraphQLTypes["job_status_enum"]; - /** Boolean expression to compare columns of type "job_status_enum". All fields are combined with logical 'AND'. */ -["job_status_enum_comparison_exp"]: GraphQLTypes["job_status_enum_comparison_exp"]; - /** update columns of table "job" */ -["job_update_column"]: GraphQLTypes["job_update_column"]; - /** columns and relationships of "job_method" */ -["jobMethod"]: { - name: string -}; - /** aggregated selection of "job_method" */ -["jobMethod_aggregate"]: { - aggregate?: GraphQLTypes["jobMethod_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "job_method" */ -["jobMethod_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["jobMethod_max_fields"] | undefined, - min?: GraphQLTypes["jobMethod_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "job_method". All fields are combined with a logical 'AND'. */ -["jobMethod_bool_exp"]: GraphQLTypes["jobMethod_bool_exp"]; - /** unique or primary key constraints on table "job_method" */ -["jobMethod_constraint"]: GraphQLTypes["jobMethod_constraint"]; - /** input type for inserting data into table "job_method" */ -["jobMethod_insert_input"]: GraphQLTypes["jobMethod_insert_input"]; - /** aggregate max on columns */ -["jobMethod_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["jobMethod_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "job_method" */ -["jobMethod_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "job_method" */ -["jobMethod_on_conflict"]: GraphQLTypes["jobMethod_on_conflict"]; - /** Ordering options when selecting data from "job_method". */ -["jobMethod_order_by"]: GraphQLTypes["jobMethod_order_by"]; - /** primary key columns input for table: jobMethod */ -["jobMethod_pk_columns_input"]: GraphQLTypes["jobMethod_pk_columns_input"]; - /** select columns of table "job_method" */ -["jobMethod_select_column"]: GraphQLTypes["jobMethod_select_column"]; - /** input type for updating data in table "job_method" */ -["jobMethod_set_input"]: GraphQLTypes["jobMethod_set_input"]; - /** update columns of table "job_method" */ -["jobMethod_update_column"]: GraphQLTypes["jobMethod_update_column"]; - /** columns and relationships of "job_status" */ -["jobStatus"]: { - name: string -}; - /** aggregated selection of "job_status" */ -["jobStatus_aggregate"]: { - aggregate?: GraphQLTypes["jobStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "job_status" */ -["jobStatus_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["jobStatus_max_fields"] | undefined, - min?: GraphQLTypes["jobStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "job_status". All fields are combined with a logical 'AND'. */ -["jobStatus_bool_exp"]: GraphQLTypes["jobStatus_bool_exp"]; - /** unique or primary key constraints on table "job_status" */ -["jobStatus_constraint"]: GraphQLTypes["jobStatus_constraint"]; - /** input type for inserting data into table "job_status" */ -["jobStatus_insert_input"]: GraphQLTypes["jobStatus_insert_input"]; - /** aggregate max on columns */ -["jobStatus_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["jobStatus_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "job_status" */ -["jobStatus_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "job_status" */ -["jobStatus_on_conflict"]: GraphQLTypes["jobStatus_on_conflict"]; - /** Ordering options when selecting data from "job_status". */ -["jobStatus_order_by"]: GraphQLTypes["jobStatus_order_by"]; - /** primary key columns input for table: jobStatus */ -["jobStatus_pk_columns_input"]: GraphQLTypes["jobStatus_pk_columns_input"]; - /** select columns of table "job_status" */ -["jobStatus_select_column"]: GraphQLTypes["jobStatus_select_column"]; - /** input type for updating data in table "job_status" */ -["jobStatus_set_input"]: GraphQLTypes["jobStatus_set_input"]; - /** update columns of table "job_status" */ -["jobStatus_update_column"]: GraphQLTypes["jobStatus_update_column"]; - ["jsonb"]:any; - /** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ -["jsonb_comparison_exp"]: GraphQLTypes["jsonb_comparison_exp"]; - /** columns and relationships of "line" */ -["line"]: { - /** An object relationship */ - booking?: GraphQLTypes["booking"] | undefined, - bookingId?: GraphQLTypes["uuid"] | undefined, - centTotal?: number | undefined, - classification?: GraphQLTypes["classification_enum"] | undefined, - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt: GraphQLTypes["timestamptz"], - description?: string | undefined, - /** An array relationship */ - enhancementLines: Array, - /** An aggregate relationship */ - enhancementLines_aggregate: GraphQLTypes["line_aggregate"], - /** An object relationship */ - enhancingLine?: GraphQLTypes["line"] | undefined, - enhancingLineId?: GraphQLTypes["uuid"] | undefined, - id: GraphQLTypes["uuid"], - invoiceStatus?: string | undefined, - isEnhanced?: boolean | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - originCentTotal?: number | undefined, - originCurrency?: string | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined, - /** An object relationship */ - payment?: GraphQLTypes["payment"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - subclassification?: GraphQLTypes["subclassification_enum"] | undefined, - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "line" */ -["line_aggregate"]: { - aggregate?: GraphQLTypes["line_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "line" */ -["line_aggregate_fields"]: { - avg?: GraphQLTypes["line_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["line_max_fields"] | undefined, - min?: GraphQLTypes["line_min_fields"] | undefined, - stddev?: GraphQLTypes["line_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["line_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["line_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["line_sum_fields"] | undefined, - var_pop?: GraphQLTypes["line_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["line_var_samp_fields"] | undefined, - variance?: GraphQLTypes["line_variance_fields"] | undefined -}; - /** order by aggregate values of table "line" */ -["line_aggregate_order_by"]: GraphQLTypes["line_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["line_append_input"]: GraphQLTypes["line_append_input"]; - /** input type for inserting array relation for remote table "line" */ -["line_arr_rel_insert_input"]: GraphQLTypes["line_arr_rel_insert_input"]; - /** aggregate avg on columns */ -["line_avg_fields"]: { - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by avg() on columns of table "line" */ -["line_avg_order_by"]: GraphQLTypes["line_avg_order_by"]; - /** Boolean expression to filter rows from the table "line". All fields are combined with a logical 'AND'. */ -["line_bool_exp"]: GraphQLTypes["line_bool_exp"]; - /** unique or primary key constraints on table "line" */ -["line_constraint"]: GraphQLTypes["line_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["line_delete_at_path_input"]: GraphQLTypes["line_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["line_delete_elem_input"]: GraphQLTypes["line_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["line_delete_key_input"]: GraphQLTypes["line_delete_key_input"]; - /** input type for incrementing numeric columns in table "line" */ -["line_inc_input"]: GraphQLTypes["line_inc_input"]; - /** input type for inserting data into table "line" */ -["line_insert_input"]: GraphQLTypes["line_insert_input"]; - /** aggregate max on columns */ -["line_max_fields"]: { - bookingId?: GraphQLTypes["uuid"] | undefined, - centTotal?: number | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - enhancingLineId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - invoiceStatus?: string | undefined, - originCentTotal?: number | undefined, - originCurrency?: string | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "line" */ -["line_max_order_by"]: GraphQLTypes["line_max_order_by"]; - /** aggregate min on columns */ -["line_min_fields"]: { - bookingId?: GraphQLTypes["uuid"] | undefined, - centTotal?: number | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - enhancingLineId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - invoiceStatus?: string | undefined, - originCentTotal?: number | undefined, - originCurrency?: string | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "line" */ -["line_min_order_by"]: GraphQLTypes["line_min_order_by"]; - /** response of any mutation on the table "line" */ -["line_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "line" */ -["line_obj_rel_insert_input"]: GraphQLTypes["line_obj_rel_insert_input"]; - /** on conflict condition type for table "line" */ -["line_on_conflict"]: GraphQLTypes["line_on_conflict"]; - /** Ordering options when selecting data from "line". */ -["line_order_by"]: GraphQLTypes["line_order_by"]; - /** primary key columns input for table: line */ -["line_pk_columns_input"]: GraphQLTypes["line_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["line_prepend_input"]: GraphQLTypes["line_prepend_input"]; - /** select columns of table "line" */ -["line_select_column"]: GraphQLTypes["line_select_column"]; - /** input type for updating data in table "line" */ -["line_set_input"]: GraphQLTypes["line_set_input"]; - /** aggregate stddev on columns */ -["line_stddev_fields"]: { - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by stddev() on columns of table "line" */ -["line_stddev_order_by"]: GraphQLTypes["line_stddev_order_by"]; - /** aggregate stddev_pop on columns */ -["line_stddev_pop_fields"]: { - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by stddev_pop() on columns of table "line" */ -["line_stddev_pop_order_by"]: GraphQLTypes["line_stddev_pop_order_by"]; - /** aggregate stddev_samp on columns */ -["line_stddev_samp_fields"]: { - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by stddev_samp() on columns of table "line" */ -["line_stddev_samp_order_by"]: GraphQLTypes["line_stddev_samp_order_by"]; - /** aggregate sum on columns */ -["line_sum_fields"]: { - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined -}; - /** order by sum() on columns of table "line" */ -["line_sum_order_by"]: GraphQLTypes["line_sum_order_by"]; - /** update columns of table "line" */ -["line_update_column"]: GraphQLTypes["line_update_column"]; - /** aggregate var_pop on columns */ -["line_var_pop_fields"]: { - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by var_pop() on columns of table "line" */ -["line_var_pop_order_by"]: GraphQLTypes["line_var_pop_order_by"]; - /** aggregate var_samp on columns */ -["line_var_samp_fields"]: { - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by var_samp() on columns of table "line" */ -["line_var_samp_order_by"]: GraphQLTypes["line_var_samp_order_by"]; - /** aggregate variance on columns */ -["line_variance_fields"]: { - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by variance() on columns of table "line" */ -["line_variance_order_by"]: GraphQLTypes["line_variance_order_by"]; - /** columns and relationships of "metric" */ -["metric"]: { - /** An object relationship */ - connection: GraphQLTypes["connection"], - connectionId: GraphQLTypes["uuid"], - createdAt: GraphQLTypes["timestamptz"], - ensuedAt: GraphQLTypes["timestamptz"], - id: GraphQLTypes["uuid"], - metadata: GraphQLTypes["jsonb"], - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - text?: string | undefined, - type: string, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt: GraphQLTypes["timestamptz"], - value?: GraphQLTypes["float8"] | undefined -}; - /** aggregated selection of "metric" */ -["metric_aggregate"]: { - aggregate?: GraphQLTypes["metric_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "metric" */ -["metric_aggregate_fields"]: { - avg?: GraphQLTypes["metric_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["metric_max_fields"] | undefined, - min?: GraphQLTypes["metric_min_fields"] | undefined, - stddev?: GraphQLTypes["metric_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["metric_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["metric_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["metric_sum_fields"] | undefined, - var_pop?: GraphQLTypes["metric_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["metric_var_samp_fields"] | undefined, - variance?: GraphQLTypes["metric_variance_fields"] | undefined -}; - /** order by aggregate values of table "metric" */ -["metric_aggregate_order_by"]: GraphQLTypes["metric_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["metric_append_input"]: GraphQLTypes["metric_append_input"]; - /** input type for inserting array relation for remote table "metric" */ -["metric_arr_rel_insert_input"]: GraphQLTypes["metric_arr_rel_insert_input"]; - /** aggregate avg on columns */ -["metric_avg_fields"]: { - value?: number | undefined -}; - /** order by avg() on columns of table "metric" */ -["metric_avg_order_by"]: GraphQLTypes["metric_avg_order_by"]; - /** Boolean expression to filter rows from the table "metric". All fields are combined with a logical 'AND'. */ -["metric_bool_exp"]: GraphQLTypes["metric_bool_exp"]; - /** unique or primary key constraints on table "metric" */ -["metric_constraint"]: GraphQLTypes["metric_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["metric_delete_at_path_input"]: GraphQLTypes["metric_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["metric_delete_elem_input"]: GraphQLTypes["metric_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["metric_delete_key_input"]: GraphQLTypes["metric_delete_key_input"]; - /** input type for incrementing numeric columns in table "metric" */ -["metric_inc_input"]: GraphQLTypes["metric_inc_input"]; - /** input type for inserting data into table "metric" */ -["metric_insert_input"]: GraphQLTypes["metric_insert_input"]; - /** aggregate max on columns */ -["metric_max_fields"]: { - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - ensuedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - text?: string | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - value?: GraphQLTypes["float8"] | undefined -}; - /** order by max() on columns of table "metric" */ -["metric_max_order_by"]: GraphQLTypes["metric_max_order_by"]; - /** aggregate min on columns */ -["metric_min_fields"]: { - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - ensuedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - text?: string | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - value?: GraphQLTypes["float8"] | undefined -}; - /** order by min() on columns of table "metric" */ -["metric_min_order_by"]: GraphQLTypes["metric_min_order_by"]; - /** response of any mutation on the table "metric" */ -["metric_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "metric" */ -["metric_on_conflict"]: GraphQLTypes["metric_on_conflict"]; - /** Ordering options when selecting data from "metric". */ -["metric_order_by"]: GraphQLTypes["metric_order_by"]; - /** primary key columns input for table: metric */ -["metric_pk_columns_input"]: GraphQLTypes["metric_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["metric_prepend_input"]: GraphQLTypes["metric_prepend_input"]; - /** select columns of table "metric" */ -["metric_select_column"]: GraphQLTypes["metric_select_column"]; - /** input type for updating data in table "metric" */ -["metric_set_input"]: GraphQLTypes["metric_set_input"]; - /** aggregate stddev on columns */ -["metric_stddev_fields"]: { - value?: number | undefined -}; - /** order by stddev() on columns of table "metric" */ -["metric_stddev_order_by"]: GraphQLTypes["metric_stddev_order_by"]; - /** aggregate stddev_pop on columns */ -["metric_stddev_pop_fields"]: { - value?: number | undefined -}; - /** order by stddev_pop() on columns of table "metric" */ -["metric_stddev_pop_order_by"]: GraphQLTypes["metric_stddev_pop_order_by"]; - /** aggregate stddev_samp on columns */ -["metric_stddev_samp_fields"]: { - value?: number | undefined -}; - /** order by stddev_samp() on columns of table "metric" */ -["metric_stddev_samp_order_by"]: GraphQLTypes["metric_stddev_samp_order_by"]; - /** aggregate sum on columns */ -["metric_sum_fields"]: { - value?: GraphQLTypes["float8"] | undefined -}; - /** order by sum() on columns of table "metric" */ -["metric_sum_order_by"]: GraphQLTypes["metric_sum_order_by"]; - /** update columns of table "metric" */ -["metric_update_column"]: GraphQLTypes["metric_update_column"]; - /** aggregate var_pop on columns */ -["metric_var_pop_fields"]: { - value?: number | undefined -}; - /** order by var_pop() on columns of table "metric" */ -["metric_var_pop_order_by"]: GraphQLTypes["metric_var_pop_order_by"]; - /** aggregate var_samp on columns */ -["metric_var_samp_fields"]: { - value?: number | undefined -}; - /** order by var_samp() on columns of table "metric" */ -["metric_var_samp_order_by"]: GraphQLTypes["metric_var_samp_order_by"]; - /** aggregate variance on columns */ -["metric_variance_fields"]: { - value?: number | undefined -}; - /** order by variance() on columns of table "metric" */ -["metric_variance_order_by"]: GraphQLTypes["metric_variance_order_by"]; - /** mutation root */ -["mutation_root"]: { - /** delete single row from the table: "booking" */ - deleteBooking?: GraphQLTypes["booking"] | undefined, - /** delete single row from the table: "booking_status" */ - deleteBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** delete data from the table: "booking_status" */ - deleteBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, - /** delete data from the table: "booking" */ - deleteBookings?: GraphQLTypes["booking_mutation_response"] | undefined, - /** delete single row from the table: "classification" */ - deleteClassification?: GraphQLTypes["classification"] | undefined, - /** delete data from the table: "classification" */ - deleteClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, - /** delete single row from the table: "connection" */ - deleteConnection?: GraphQLTypes["connection"] | undefined, - /** delete data from the table: "connection" */ - deleteConnections?: GraphQLTypes["connection_mutation_response"] | undefined, - /** delete data from the table: "currency" */ - deleteCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, - /** delete single row from the table: "currency" */ - deleteCurrency?: GraphQLTypes["currency"] | undefined, - /** delete data from the table: "entity" */ - deleteEntities?: GraphQLTypes["entity_mutation_response"] | undefined, - /** delete single row from the table: "entity" */ - deleteEntity?: GraphQLTypes["entity"] | undefined, - /** delete single row from the table: "entity_status" */ - deleteEntityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** delete data from the table: "entity_status" */ - deleteEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, - /** delete single row from the table: "integration" */ - deleteIntegration?: GraphQLTypes["integration"] | undefined, - /** delete single row from the table: "integration_type" */ - deleteIntegrationType?: GraphQLTypes["integrationType"] | undefined, - /** delete data from the table: "integration_type" */ - deleteIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, - /** delete data from the table: "integration" */ - deleteIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, - /** delete single row from the table: "issue" */ - deleteIssue?: GraphQLTypes["issue"] | undefined, - /** delete data from the table: "issue" */ - deleteIssues?: GraphQLTypes["issue_mutation_response"] | undefined, - /** delete single row from the table: "job" */ - deleteJob?: GraphQLTypes["job"] | undefined, - /** delete single row from the table: "job_method" */ - deleteJobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** delete data from the table: "job_method" */ - deleteJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, - /** delete single row from the table: "job_status" */ - deleteJobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** delete data from the table: "job_status" */ - deleteJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, - /** delete data from the table: "job" */ - deleteJobs?: GraphQLTypes["job_mutation_response"] | undefined, - /** delete single row from the table: "line" */ - deleteLine?: GraphQLTypes["line"] | undefined, - /** delete data from the table: "line" */ - deleteLines?: GraphQLTypes["line_mutation_response"] | undefined, - /** delete single row from the table: "metric" */ - deleteMetric?: GraphQLTypes["metric"] | undefined, - /** delete data from the table: "metric" */ - deleteMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, - /** delete single row from the table: "normalized_type" */ - deleteNormalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** delete data from the table: "normalized_type" */ - deleteNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, - /** delete single row from the table: "payment" */ - deletePayment?: GraphQLTypes["payment"] | undefined, - /** delete single row from the table: "payment_status" */ - deletePaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** delete data from the table: "payment_status" */ - deletePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, - /** delete single row from the table: "payment_type" */ - deletePaymentType?: GraphQLTypes["paymentType"] | undefined, - /** delete data from the table: "payment_type" */ - deletePaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, - /** delete data from the table: "payment" */ - deletePayments?: GraphQLTypes["payment_mutation_response"] | undefined, - /** delete single row from the table: "subclassification" */ - deleteSubclassification?: GraphQLTypes["subclassification"] | undefined, - /** delete data from the table: "subclassification" */ - deleteSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, - /** delete single row from the table: "tag" */ - deleteTag?: GraphQLTypes["tag"] | undefined, - /** delete data from the table: "tag" */ - deleteTags?: GraphQLTypes["tag_mutation_response"] | undefined, - /** delete single row from the table: "team" */ - deleteTeam?: GraphQLTypes["team"] | undefined, - /** delete single row from the table: "team_user" */ - deleteTeamUser?: GraphQLTypes["teamUser"] | undefined, - /** delete data from the table: "team_user" */ - deleteTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, - /** delete data from the table: "team" */ - deleteTeams?: GraphQLTypes["team_mutation_response"] | undefined, - /** delete single row from the table: "unit" */ - deleteUnit?: GraphQLTypes["unit"] | undefined, - /** delete data from the table: "unit" */ - deleteUnits?: GraphQLTypes["unit_mutation_response"] | undefined, - /** delete single row from the table: "user" */ - deleteUser?: GraphQLTypes["user"] | undefined, - /** delete single row from the table: "user_status" */ - deleteUserStatus?: GraphQLTypes["userStatus"] | undefined, - /** delete data from the table: "user_status" */ - deleteUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, - /** delete data from the table: "user" */ - deleteUsers?: GraphQLTypes["user_mutation_response"] | undefined, - /** delete single row from the table: "webhook" */ - deleteWebhook?: GraphQLTypes["webhook"] | undefined, - /** delete data from the table: "webhook" */ - deleteWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, - /** delete data from the table: "booking_channel" */ - delete_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, - /** delete single row from the table: "booking_channel" */ - delete_booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, - /** insert a single row into the table: "booking" */ - insertBooking?: GraphQLTypes["booking"] | undefined, - /** insert a single row into the table: "booking_status" */ - insertBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** insert data into the table: "booking_status" */ - insertBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, - /** insert data into the table: "booking" */ - insertBookings?: GraphQLTypes["booking_mutation_response"] | undefined, - /** insert a single row into the table: "classification" */ - insertClassification?: GraphQLTypes["classification"] | undefined, - /** insert data into the table: "classification" */ - insertClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, - /** insert a single row into the table: "connection" */ - insertConnection?: GraphQLTypes["connection"] | undefined, - /** insert data into the table: "connection" */ - insertConnections?: GraphQLTypes["connection_mutation_response"] | undefined, - /** insert data into the table: "currency" */ - insertCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, - /** insert a single row into the table: "currency" */ - insertCurrency?: GraphQLTypes["currency"] | undefined, - /** insert data into the table: "entity" */ - insertEntities?: GraphQLTypes["entity_mutation_response"] | undefined, - /** insert a single row into the table: "entity" */ - insertEntity?: GraphQLTypes["entity"] | undefined, - /** insert a single row into the table: "entity_status" */ - insertEntityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** insert data into the table: "entity_status" */ - insertEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, - /** insert a single row into the table: "integration" */ - insertIntegration?: GraphQLTypes["integration"] | undefined, - /** insert a single row into the table: "integration_type" */ - insertIntegrationType?: GraphQLTypes["integrationType"] | undefined, - /** insert data into the table: "integration_type" */ - insertIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, - /** insert data into the table: "integration" */ - insertIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, - /** insert a single row into the table: "issue" */ - insertIssue?: GraphQLTypes["issue"] | undefined, - /** insert data into the table: "issue" */ - insertIssues?: GraphQLTypes["issue_mutation_response"] | undefined, - /** insert a single row into the table: "job" */ - insertJob?: GraphQLTypes["job"] | undefined, - /** insert a single row into the table: "job_method" */ - insertJobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** insert data into the table: "job_method" */ - insertJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, - /** insert a single row into the table: "job_status" */ - insertJobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** insert data into the table: "job_status" */ - insertJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, - /** insert data into the table: "job" */ - insertJobs?: GraphQLTypes["job_mutation_response"] | undefined, - /** insert a single row into the table: "line" */ - insertLine?: GraphQLTypes["line"] | undefined, - /** insert data into the table: "line" */ - insertLines?: GraphQLTypes["line_mutation_response"] | undefined, - /** insert a single row into the table: "metric" */ - insertMetric?: GraphQLTypes["metric"] | undefined, - /** insert data into the table: "metric" */ - insertMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, - /** insert a single row into the table: "normalized_type" */ - insertNormalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** insert data into the table: "normalized_type" */ - insertNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, - /** insert a single row into the table: "payment" */ - insertPayment?: GraphQLTypes["payment"] | undefined, - /** insert a single row into the table: "payment_status" */ - insertPaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** insert data into the table: "payment_status" */ - insertPaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, - /** insert a single row into the table: "payment_type" */ - insertPaymentType?: GraphQLTypes["paymentType"] | undefined, - /** insert data into the table: "payment_type" */ - insertPaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, - /** insert data into the table: "payment" */ - insertPayments?: GraphQLTypes["payment_mutation_response"] | undefined, - /** insert a single row into the table: "subclassification" */ - insertSubclassification?: GraphQLTypes["subclassification"] | undefined, - /** insert data into the table: "subclassification" */ - insertSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, - /** insert a single row into the table: "tag" */ - insertTag?: GraphQLTypes["tag"] | undefined, - /** insert data into the table: "tag" */ - insertTags?: GraphQLTypes["tag_mutation_response"] | undefined, - /** insert a single row into the table: "team" */ - insertTeam?: GraphQLTypes["team"] | undefined, - /** insert a single row into the table: "team_user" */ - insertTeamUser?: GraphQLTypes["teamUser"] | undefined, - /** insert data into the table: "team_user" */ - insertTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, - /** insert data into the table: "team" */ - insertTeams?: GraphQLTypes["team_mutation_response"] | undefined, - /** insert a single row into the table: "unit" */ - insertUnit?: GraphQLTypes["unit"] | undefined, - /** insert data into the table: "unit" */ - insertUnits?: GraphQLTypes["unit_mutation_response"] | undefined, - /** insert a single row into the table: "user" */ - insertUser?: GraphQLTypes["user"] | undefined, - /** insert a single row into the table: "user_status" */ - insertUserStatus?: GraphQLTypes["userStatus"] | undefined, - /** insert data into the table: "user_status" */ - insertUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, - /** insert data into the table: "user" */ - insertUsers?: GraphQLTypes["user_mutation_response"] | undefined, - /** insert a single row into the table: "webhook" */ - insertWebhook?: GraphQLTypes["webhook"] | undefined, - /** insert data into the table: "webhook" */ - insertWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, - /** insert data into the table: "booking_channel" */ - insert_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, - /** insert a single row into the table: "booking_channel" */ - insert_booking_channel_one?: GraphQLTypes["booking_channel"] | undefined, - /** update single row of the table: "booking" */ - updateBooking?: GraphQLTypes["booking"] | undefined, - /** update single row of the table: "booking_status" */ - updateBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** update data of the table: "booking_status" */ - updateBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, - /** update data of the table: "booking" */ - updateBookings?: GraphQLTypes["booking_mutation_response"] | undefined, - /** update single row of the table: "classification" */ - updateClassification?: GraphQLTypes["classification"] | undefined, - /** update data of the table: "classification" */ - updateClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, - /** update single row of the table: "connection" */ - updateConnection?: GraphQLTypes["connection"] | undefined, - /** update data of the table: "connection" */ - updateConnections?: GraphQLTypes["connection_mutation_response"] | undefined, - /** update data of the table: "currency" */ - updateCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, - /** update single row of the table: "currency" */ - updateCurrency?: GraphQLTypes["currency"] | undefined, - /** update data of the table: "entity" */ - updateEntities?: GraphQLTypes["entity_mutation_response"] | undefined, - /** update single row of the table: "entity" */ - updateEntity?: GraphQLTypes["entity"] | undefined, - /** update single row of the table: "entity_status" */ - updateEntityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** update data of the table: "entity_status" */ - updateEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, - /** update single row of the table: "integration" */ - updateIntegration?: GraphQLTypes["integration"] | undefined, - /** update single row of the table: "integration_type" */ - updateIntegrationType?: GraphQLTypes["integrationType"] | undefined, - /** update data of the table: "integration_type" */ - updateIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, - /** update data of the table: "integration" */ - updateIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, - /** update single row of the table: "issue" */ - updateIssue?: GraphQLTypes["issue"] | undefined, - /** update data of the table: "issue" */ - updateIssues?: GraphQLTypes["issue_mutation_response"] | undefined, - /** update single row of the table: "job" */ - updateJob?: GraphQLTypes["job"] | undefined, - /** update single row of the table: "job_method" */ - updateJobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** update data of the table: "job_method" */ - updateJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, - /** update single row of the table: "job_status" */ - updateJobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** update data of the table: "job_status" */ - updateJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, - /** update data of the table: "job" */ - updateJobs?: GraphQLTypes["job_mutation_response"] | undefined, - /** update single row of the table: "line" */ - updateLine?: GraphQLTypes["line"] | undefined, - /** update data of the table: "line" */ - updateLines?: GraphQLTypes["line_mutation_response"] | undefined, - /** update single row of the table: "metric" */ - updateMetric?: GraphQLTypes["metric"] | undefined, - /** update data of the table: "metric" */ - updateMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, - /** update single row of the table: "normalized_type" */ - updateNormalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** update data of the table: "normalized_type" */ - updateNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, - /** update single row of the table: "payment" */ - updatePayment?: GraphQLTypes["payment"] | undefined, - /** update single row of the table: "payment_status" */ - updatePaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** update data of the table: "payment_status" */ - updatePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, - /** update single row of the table: "payment_type" */ - updatePaymentType?: GraphQLTypes["paymentType"] | undefined, - /** update data of the table: "payment_type" */ - updatePaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, - /** update data of the table: "payment" */ - updatePayments?: GraphQLTypes["payment_mutation_response"] | undefined, - /** update single row of the table: "subclassification" */ - updateSubclassification?: GraphQLTypes["subclassification"] | undefined, - /** update data of the table: "subclassification" */ - updateSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, - /** update single row of the table: "tag" */ - updateTag?: GraphQLTypes["tag"] | undefined, - /** update data of the table: "tag" */ - updateTags?: GraphQLTypes["tag_mutation_response"] | undefined, - /** update single row of the table: "team" */ - updateTeam?: GraphQLTypes["team"] | undefined, - /** update single row of the table: "team_user" */ - updateTeamUser?: GraphQLTypes["teamUser"] | undefined, - /** update data of the table: "team_user" */ - updateTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, - /** update data of the table: "team" */ - updateTeams?: GraphQLTypes["team_mutation_response"] | undefined, - /** update single row of the table: "unit" */ - updateUnit?: GraphQLTypes["unit"] | undefined, - /** update data of the table: "unit" */ - updateUnits?: GraphQLTypes["unit_mutation_response"] | undefined, - /** update single row of the table: "user" */ - updateUser?: GraphQLTypes["user"] | undefined, - /** update single row of the table: "user_status" */ - updateUserStatus?: GraphQLTypes["userStatus"] | undefined, - /** update data of the table: "user_status" */ - updateUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, - /** update data of the table: "user" */ - updateUsers?: GraphQLTypes["user_mutation_response"] | undefined, - /** update single row of the table: "webhook" */ - updateWebhook?: GraphQLTypes["webhook"] | undefined, - /** update data of the table: "webhook" */ - updateWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, - /** update data of the table: "booking_channel" */ - update_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, - /** update single row of the table: "booking_channel" */ - update_booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined -}; - ["normalized_type_enum"]: GraphQLTypes["normalized_type_enum"]; - /** Boolean expression to compare columns of type "normalized_type_enum". All fields are combined with logical 'AND'. */ -["normalized_type_enum_comparison_exp"]: GraphQLTypes["normalized_type_enum_comparison_exp"]; - /** columns and relationships of "normalized_type" */ -["normalizedType"]: { - name: string -}; - /** aggregated selection of "normalized_type" */ -["normalizedType_aggregate"]: { - aggregate?: GraphQLTypes["normalizedType_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "normalized_type" */ -["normalizedType_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["normalizedType_max_fields"] | undefined, - min?: GraphQLTypes["normalizedType_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "normalized_type". All fields are combined with a logical 'AND'. */ -["normalizedType_bool_exp"]: GraphQLTypes["normalizedType_bool_exp"]; - /** unique or primary key constraints on table "normalized_type" */ -["normalizedType_constraint"]: GraphQLTypes["normalizedType_constraint"]; - /** input type for inserting data into table "normalized_type" */ -["normalizedType_insert_input"]: GraphQLTypes["normalizedType_insert_input"]; - /** aggregate max on columns */ -["normalizedType_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["normalizedType_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "normalized_type" */ -["normalizedType_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "normalized_type" */ -["normalizedType_on_conflict"]: GraphQLTypes["normalizedType_on_conflict"]; - /** Ordering options when selecting data from "normalized_type". */ -["normalizedType_order_by"]: GraphQLTypes["normalizedType_order_by"]; - /** primary key columns input for table: normalizedType */ -["normalizedType_pk_columns_input"]: GraphQLTypes["normalizedType_pk_columns_input"]; - /** select columns of table "normalized_type" */ -["normalizedType_select_column"]: GraphQLTypes["normalizedType_select_column"]; - /** input type for updating data in table "normalized_type" */ -["normalizedType_set_input"]: GraphQLTypes["normalizedType_set_input"]; - /** update columns of table "normalized_type" */ -["normalizedType_update_column"]: GraphQLTypes["normalizedType_update_column"]; - ["numeric"]:any; - /** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ -["numeric_comparison_exp"]: GraphQLTypes["numeric_comparison_exp"]; - /** column ordering options */ -["order_by"]: GraphQLTypes["order_by"]; - /** columns and relationships of "payment" */ -["payment"]: { - arrivesAt?: GraphQLTypes["timestamptz"] | undefined, - centTotal?: number | undefined, - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - currency?: GraphQLTypes["currency_enum"] | undefined, - description?: string | undefined, - /** An object relationship */ - entity?: GraphQLTypes["entity"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id: GraphQLTypes["uuid"], - /** An array relationship */ - lines: Array, - /** An aggregate relationship */ - lines_aggregate: GraphQLTypes["line_aggregate"], - metadata?: GraphQLTypes["jsonb"] | undefined, - paidAt?: GraphQLTypes["timestamptz"] | undefined, - status?: GraphQLTypes["payment_status_enum"] | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "payment" */ -["payment_aggregate"]: { - aggregate?: GraphQLTypes["payment_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "payment" */ -["payment_aggregate_fields"]: { - avg?: GraphQLTypes["payment_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["payment_max_fields"] | undefined, - min?: GraphQLTypes["payment_min_fields"] | undefined, - stddev?: GraphQLTypes["payment_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["payment_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["payment_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["payment_sum_fields"] | undefined, - var_pop?: GraphQLTypes["payment_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["payment_var_samp_fields"] | undefined, - variance?: GraphQLTypes["payment_variance_fields"] | undefined -}; - /** order by aggregate values of table "payment" */ -["payment_aggregate_order_by"]: GraphQLTypes["payment_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["payment_append_input"]: GraphQLTypes["payment_append_input"]; - /** input type for inserting array relation for remote table "payment" */ -["payment_arr_rel_insert_input"]: GraphQLTypes["payment_arr_rel_insert_input"]; - /** aggregate avg on columns */ -["payment_avg_fields"]: { - centTotal?: number | undefined -}; - /** order by avg() on columns of table "payment" */ -["payment_avg_order_by"]: GraphQLTypes["payment_avg_order_by"]; - /** Boolean expression to filter rows from the table "payment". All fields are combined with a logical 'AND'. */ -["payment_bool_exp"]: GraphQLTypes["payment_bool_exp"]; - /** unique or primary key constraints on table "payment" */ -["payment_constraint"]: GraphQLTypes["payment_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["payment_delete_at_path_input"]: GraphQLTypes["payment_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["payment_delete_elem_input"]: GraphQLTypes["payment_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["payment_delete_key_input"]: GraphQLTypes["payment_delete_key_input"]; - /** input type for incrementing numeric columns in table "payment" */ -["payment_inc_input"]: GraphQLTypes["payment_inc_input"]; - /** input type for inserting data into table "payment" */ -["payment_insert_input"]: GraphQLTypes["payment_insert_input"]; - /** aggregate max on columns */ -["payment_max_fields"]: { - arrivesAt?: GraphQLTypes["timestamptz"] | undefined, - centTotal?: number | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - paidAt?: GraphQLTypes["timestamptz"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "payment" */ -["payment_max_order_by"]: GraphQLTypes["payment_max_order_by"]; - /** aggregate min on columns */ -["payment_min_fields"]: { - arrivesAt?: GraphQLTypes["timestamptz"] | undefined, - centTotal?: number | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - paidAt?: GraphQLTypes["timestamptz"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "payment" */ -["payment_min_order_by"]: GraphQLTypes["payment_min_order_by"]; - /** response of any mutation on the table "payment" */ -["payment_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "payment" */ -["payment_obj_rel_insert_input"]: GraphQLTypes["payment_obj_rel_insert_input"]; - /** on conflict condition type for table "payment" */ -["payment_on_conflict"]: GraphQLTypes["payment_on_conflict"]; - /** Ordering options when selecting data from "payment". */ -["payment_order_by"]: GraphQLTypes["payment_order_by"]; - /** primary key columns input for table: payment */ -["payment_pk_columns_input"]: GraphQLTypes["payment_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["payment_prepend_input"]: GraphQLTypes["payment_prepend_input"]; - /** select columns of table "payment" */ -["payment_select_column"]: GraphQLTypes["payment_select_column"]; - /** input type for updating data in table "payment" */ -["payment_set_input"]: GraphQLTypes["payment_set_input"]; - ["payment_status_enum"]: GraphQLTypes["payment_status_enum"]; - /** Boolean expression to compare columns of type "payment_status_enum". All fields are combined with logical 'AND'. */ -["payment_status_enum_comparison_exp"]: GraphQLTypes["payment_status_enum_comparison_exp"]; - /** aggregate stddev on columns */ -["payment_stddev_fields"]: { - centTotal?: number | undefined -}; - /** order by stddev() on columns of table "payment" */ -["payment_stddev_order_by"]: GraphQLTypes["payment_stddev_order_by"]; - /** aggregate stddev_pop on columns */ -["payment_stddev_pop_fields"]: { - centTotal?: number | undefined -}; - /** order by stddev_pop() on columns of table "payment" */ -["payment_stddev_pop_order_by"]: GraphQLTypes["payment_stddev_pop_order_by"]; - /** aggregate stddev_samp on columns */ -["payment_stddev_samp_fields"]: { - centTotal?: number | undefined -}; - /** order by stddev_samp() on columns of table "payment" */ -["payment_stddev_samp_order_by"]: GraphQLTypes["payment_stddev_samp_order_by"]; - /** aggregate sum on columns */ -["payment_sum_fields"]: { - centTotal?: number | undefined -}; - /** order by sum() on columns of table "payment" */ -["payment_sum_order_by"]: GraphQLTypes["payment_sum_order_by"]; - /** update columns of table "payment" */ -["payment_update_column"]: GraphQLTypes["payment_update_column"]; - /** aggregate var_pop on columns */ -["payment_var_pop_fields"]: { - centTotal?: number | undefined -}; - /** order by var_pop() on columns of table "payment" */ -["payment_var_pop_order_by"]: GraphQLTypes["payment_var_pop_order_by"]; - /** aggregate var_samp on columns */ -["payment_var_samp_fields"]: { - centTotal?: number | undefined -}; - /** order by var_samp() on columns of table "payment" */ -["payment_var_samp_order_by"]: GraphQLTypes["payment_var_samp_order_by"]; - /** aggregate variance on columns */ -["payment_variance_fields"]: { - centTotal?: number | undefined -}; - /** order by variance() on columns of table "payment" */ -["payment_variance_order_by"]: GraphQLTypes["payment_variance_order_by"]; - /** columns and relationships of "payment_status" */ -["paymentStatus"]: { - name: string -}; - /** aggregated selection of "payment_status" */ -["paymentStatus_aggregate"]: { - aggregate?: GraphQLTypes["paymentStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "payment_status" */ -["paymentStatus_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["paymentStatus_max_fields"] | undefined, - min?: GraphQLTypes["paymentStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "payment_status". All fields are combined with a logical 'AND'. */ -["paymentStatus_bool_exp"]: GraphQLTypes["paymentStatus_bool_exp"]; - /** unique or primary key constraints on table "payment_status" */ -["paymentStatus_constraint"]: GraphQLTypes["paymentStatus_constraint"]; - /** input type for inserting data into table "payment_status" */ -["paymentStatus_insert_input"]: GraphQLTypes["paymentStatus_insert_input"]; - /** aggregate max on columns */ -["paymentStatus_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["paymentStatus_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "payment_status" */ -["paymentStatus_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "payment_status" */ -["paymentStatus_on_conflict"]: GraphQLTypes["paymentStatus_on_conflict"]; - /** Ordering options when selecting data from "payment_status". */ -["paymentStatus_order_by"]: GraphQLTypes["paymentStatus_order_by"]; - /** primary key columns input for table: paymentStatus */ -["paymentStatus_pk_columns_input"]: GraphQLTypes["paymentStatus_pk_columns_input"]; - /** select columns of table "payment_status" */ -["paymentStatus_select_column"]: GraphQLTypes["paymentStatus_select_column"]; - /** input type for updating data in table "payment_status" */ -["paymentStatus_set_input"]: GraphQLTypes["paymentStatus_set_input"]; - /** update columns of table "payment_status" */ -["paymentStatus_update_column"]: GraphQLTypes["paymentStatus_update_column"]; - /** columns and relationships of "payment_type" */ -["paymentType"]: { - name: string -}; - /** aggregated selection of "payment_type" */ -["paymentType_aggregate"]: { - aggregate?: GraphQLTypes["paymentType_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "payment_type" */ -["paymentType_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["paymentType_max_fields"] | undefined, - min?: GraphQLTypes["paymentType_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "payment_type". All fields are combined with a logical 'AND'. */ -["paymentType_bool_exp"]: GraphQLTypes["paymentType_bool_exp"]; - /** unique or primary key constraints on table "payment_type" */ -["paymentType_constraint"]: GraphQLTypes["paymentType_constraint"]; - /** input type for inserting data into table "payment_type" */ -["paymentType_insert_input"]: GraphQLTypes["paymentType_insert_input"]; - /** aggregate max on columns */ -["paymentType_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["paymentType_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "payment_type" */ -["paymentType_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "payment_type" */ -["paymentType_on_conflict"]: GraphQLTypes["paymentType_on_conflict"]; - /** Ordering options when selecting data from "payment_type". */ -["paymentType_order_by"]: GraphQLTypes["paymentType_order_by"]; - /** primary key columns input for table: paymentType */ -["paymentType_pk_columns_input"]: GraphQLTypes["paymentType_pk_columns_input"]; - /** select columns of table "payment_type" */ -["paymentType_select_column"]: GraphQLTypes["paymentType_select_column"]; - /** input type for updating data in table "payment_type" */ -["paymentType_set_input"]: GraphQLTypes["paymentType_set_input"]; - /** update columns of table "payment_type" */ -["paymentType_update_column"]: GraphQLTypes["paymentType_update_column"]; - ["query_root"]: { - /** fetch aggregated fields from the table: "booking_status" */ - aggregateBookingStatuses: GraphQLTypes["bookingStatus_aggregate"], - /** fetch aggregated fields from the table: "booking" */ - aggregateBookings: GraphQLTypes["booking_aggregate"], - /** fetch aggregated fields from the table: "classification" */ - aggregateClassifications: GraphQLTypes["classification_aggregate"], - /** fetch aggregated fields from the table: "connection" */ - aggregateConnections: GraphQLTypes["connection_aggregate"], - /** fetch aggregated fields from the table: "currency" */ - aggregateCurrencies: GraphQLTypes["currency_aggregate"], - /** fetch aggregated fields from the table: "entity" */ - aggregateEntities: GraphQLTypes["entity_aggregate"], - /** fetch aggregated fields from the table: "entity_status" */ - aggregateEntityStatuses: GraphQLTypes["entityStatus_aggregate"], - /** fetch aggregated fields from the table: "integration_type" */ - aggregateIntegrationTypes: GraphQLTypes["integrationType_aggregate"], - /** fetch aggregated fields from the table: "integration" */ - aggregateIntegrations: GraphQLTypes["integration_aggregate"], - /** fetch aggregated fields from the table: "issue" */ - aggregateIssues: GraphQLTypes["issue_aggregate"], - /** fetch aggregated fields from the table: "job_method" */ - aggregateJobMethods: GraphQLTypes["jobMethod_aggregate"], - /** fetch aggregated fields from the table: "job_status" */ - aggregateJobStatuses: GraphQLTypes["jobStatus_aggregate"], - /** fetch aggregated fields from the table: "job" */ - aggregateJobs: GraphQLTypes["job_aggregate"], - /** fetch aggregated fields from the table: "line" */ - aggregateLines: GraphQLTypes["line_aggregate"], - /** fetch aggregated fields from the table: "metric" */ - aggregateMetrics: GraphQLTypes["metric_aggregate"], - /** fetch aggregated fields from the table: "normalized_type" */ - aggregateNormalizedTypes: GraphQLTypes["normalizedType_aggregate"], - /** fetch aggregated fields from the table: "payment_status" */ - aggregatePaymentStatuses: GraphQLTypes["paymentStatus_aggregate"], - /** fetch aggregated fields from the table: "payment_type" */ - aggregatePaymentTypes: GraphQLTypes["paymentType_aggregate"], - /** fetch aggregated fields from the table: "payment" */ - aggregatePayments: GraphQLTypes["payment_aggregate"], - /** fetch aggregated fields from the table: "subclassification" */ - aggregateSubclassifications: GraphQLTypes["subclassification_aggregate"], - /** fetch aggregated fields from the table: "tag" */ - aggregateTags: GraphQLTypes["tag_aggregate"], - /** fetch aggregated fields from the table: "team_user" */ - aggregateTeamUsers: GraphQLTypes["teamUser_aggregate"], - /** fetch aggregated fields from the table: "team" */ - aggregateTeams: GraphQLTypes["team_aggregate"], - /** fetch aggregated fields from the table: "unit" */ - aggregateUnits: GraphQLTypes["unit_aggregate"], - /** fetch aggregated fields from the table: "user_status" */ - aggregateUserStatuses: GraphQLTypes["userStatus_aggregate"], - /** fetch aggregated fields from the table: "user" */ - aggregateUsers: GraphQLTypes["user_aggregate"], - /** fetch aggregated fields from the table: "webhook" */ - aggregateWebhooks: GraphQLTypes["webhook_aggregate"], - /** fetch data from the table: "booking" using primary key columns */ - booking?: GraphQLTypes["booking"] | undefined, - /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** fetch data from the table: "booking_status" */ - bookingStatuses: Array, - /** fetch data from the table: "booking_channel" */ - booking_channel: Array, - /** fetch aggregated fields from the table: "booking_channel" */ - booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], - /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, - /** An array relationship */ - bookings: Array, - /** fetch data from the table: "classification" using primary key columns */ - classification?: GraphQLTypes["classification"] | undefined, - /** fetch data from the table: "classification" */ - classifications: Array, - /** fetch data from the table: "connection" using primary key columns */ - connection?: GraphQLTypes["connection"] | undefined, - /** An array relationship */ - connections: Array, - /** fetch data from the table: "currency" */ - currencies: Array, - /** fetch data from the table: "currency" using primary key columns */ - currency?: GraphQLTypes["currency"] | undefined, - /** An array relationship */ - entities: Array, - /** fetch data from the table: "entity" using primary key columns */ - entity?: GraphQLTypes["entity"] | undefined, - /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** fetch data from the table: "entity_status" */ - entityStatuses: Array, - /** fetch data from the table: "integration" using primary key columns */ - integration?: GraphQLTypes["integration"] | undefined, - /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?: GraphQLTypes["integrationType"] | undefined, - /** fetch data from the table: "integration_type" */ - integrationTypes: Array, - /** An array relationship */ - integrations: Array, - /** fetch data from the table: "issue" using primary key columns */ - issue?: GraphQLTypes["issue"] | undefined, - /** An array relationship */ - issues: Array, - /** fetch data from the table: "job" using primary key columns */ - job?: GraphQLTypes["job"] | undefined, - /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** fetch data from the table: "job_method" */ - jobMethods: Array, - /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** fetch data from the table: "job_status" */ - jobStatuses: Array, - /** An array relationship */ - jobs: Array, - /** fetch data from the table: "line" using primary key columns */ - line?: GraphQLTypes["line"] | undefined, - /** An array relationship */ - lines: Array, - /** fetch data from the table: "metric" using primary key columns */ - metric?: GraphQLTypes["metric"] | undefined, - /** An array relationship */ - metrics: Array, - /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** fetch data from the table: "normalized_type" */ - normalizedTypes: Array, - /** fetch data from the table: "payment" using primary key columns */ - payment?: GraphQLTypes["payment"] | undefined, - /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** fetch data from the table: "payment_status" */ - paymentStatuses: Array, - /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?: GraphQLTypes["paymentType"] | undefined, - /** fetch data from the table: "payment_type" */ - paymentTypes: Array, - /** An array relationship */ - payments: Array, - /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?: GraphQLTypes["subclassification"] | undefined, - /** fetch data from the table: "subclassification" */ - subclassifications: Array, - /** fetch data from the table: "tag" using primary key columns */ - tag?: GraphQLTypes["tag"] | undefined, - /** An array relationship */ - tags: Array, - /** fetch data from the table: "team" using primary key columns */ - team?: GraphQLTypes["team"] | undefined, - /** fetch data from the table: "team_user" using primary key columns */ - teamUser?: GraphQLTypes["teamUser"] | undefined, - /** fetch data from the table: "team_user" */ - teamUsers: Array, - /** fetch data from the table: "team" */ - teams: Array, - /** fetch data from the table: "unit" using primary key columns */ - unit?: GraphQLTypes["unit"] | undefined, - /** An array relationship */ - units: Array, - /** fetch data from the table: "user" using primary key columns */ - user?: GraphQLTypes["user"] | undefined, - /** fetch data from the table: "user_status" using primary key columns */ - userStatus?: GraphQLTypes["userStatus"] | undefined, - /** fetch data from the table: "user_status" */ - userStatuses: Array, - /** fetch data from the table: "user" */ - users: Array, - /** fetch data from the table: "webhook" using primary key columns */ - webhook?: GraphQLTypes["webhook"] | undefined, - /** An array relationship */ - webhooks: Array -}; - /** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ -["String_comparison_exp"]: GraphQLTypes["String_comparison_exp"]; - /** columns and relationships of "subclassification" */ -["subclassification"]: { - name: string -}; - /** aggregated selection of "subclassification" */ -["subclassification_aggregate"]: { - aggregate?: GraphQLTypes["subclassification_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "subclassification" */ -["subclassification_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["subclassification_max_fields"] | undefined, - min?: GraphQLTypes["subclassification_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "subclassification". All fields are combined with a logical 'AND'. */ -["subclassification_bool_exp"]: GraphQLTypes["subclassification_bool_exp"]; - /** unique or primary key constraints on table "subclassification" */ -["subclassification_constraint"]: GraphQLTypes["subclassification_constraint"]; - ["subclassification_enum"]: GraphQLTypes["subclassification_enum"]; - /** Boolean expression to compare columns of type "subclassification_enum". All fields are combined with logical 'AND'. */ -["subclassification_enum_comparison_exp"]: GraphQLTypes["subclassification_enum_comparison_exp"]; - /** input type for inserting data into table "subclassification" */ -["subclassification_insert_input"]: GraphQLTypes["subclassification_insert_input"]; - /** aggregate max on columns */ -["subclassification_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["subclassification_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "subclassification" */ -["subclassification_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "subclassification" */ -["subclassification_on_conflict"]: GraphQLTypes["subclassification_on_conflict"]; - /** Ordering options when selecting data from "subclassification". */ -["subclassification_order_by"]: GraphQLTypes["subclassification_order_by"]; - /** primary key columns input for table: subclassification */ -["subclassification_pk_columns_input"]: GraphQLTypes["subclassification_pk_columns_input"]; - /** select columns of table "subclassification" */ -["subclassification_select_column"]: GraphQLTypes["subclassification_select_column"]; - /** input type for updating data in table "subclassification" */ -["subclassification_set_input"]: GraphQLTypes["subclassification_set_input"]; - /** update columns of table "subclassification" */ -["subclassification_update_column"]: GraphQLTypes["subclassification_update_column"]; - ["subscription_root"]: { - /** fetch aggregated fields from the table: "booking_status" */ - aggregateBookingStatuses: GraphQLTypes["bookingStatus_aggregate"], - /** fetch aggregated fields from the table: "booking" */ - aggregateBookings: GraphQLTypes["booking_aggregate"], - /** fetch aggregated fields from the table: "classification" */ - aggregateClassifications: GraphQLTypes["classification_aggregate"], - /** fetch aggregated fields from the table: "connection" */ - aggregateConnections: GraphQLTypes["connection_aggregate"], - /** fetch aggregated fields from the table: "currency" */ - aggregateCurrencies: GraphQLTypes["currency_aggregate"], - /** fetch aggregated fields from the table: "entity" */ - aggregateEntities: GraphQLTypes["entity_aggregate"], - /** fetch aggregated fields from the table: "entity_status" */ - aggregateEntityStatuses: GraphQLTypes["entityStatus_aggregate"], - /** fetch aggregated fields from the table: "integration_type" */ - aggregateIntegrationTypes: GraphQLTypes["integrationType_aggregate"], - /** fetch aggregated fields from the table: "integration" */ - aggregateIntegrations: GraphQLTypes["integration_aggregate"], - /** fetch aggregated fields from the table: "issue" */ - aggregateIssues: GraphQLTypes["issue_aggregate"], - /** fetch aggregated fields from the table: "job_method" */ - aggregateJobMethods: GraphQLTypes["jobMethod_aggregate"], - /** fetch aggregated fields from the table: "job_status" */ - aggregateJobStatuses: GraphQLTypes["jobStatus_aggregate"], - /** fetch aggregated fields from the table: "job" */ - aggregateJobs: GraphQLTypes["job_aggregate"], - /** fetch aggregated fields from the table: "line" */ - aggregateLines: GraphQLTypes["line_aggregate"], - /** fetch aggregated fields from the table: "metric" */ - aggregateMetrics: GraphQLTypes["metric_aggregate"], - /** fetch aggregated fields from the table: "normalized_type" */ - aggregateNormalizedTypes: GraphQLTypes["normalizedType_aggregate"], - /** fetch aggregated fields from the table: "payment_status" */ - aggregatePaymentStatuses: GraphQLTypes["paymentStatus_aggregate"], - /** fetch aggregated fields from the table: "payment_type" */ - aggregatePaymentTypes: GraphQLTypes["paymentType_aggregate"], - /** fetch aggregated fields from the table: "payment" */ - aggregatePayments: GraphQLTypes["payment_aggregate"], - /** fetch aggregated fields from the table: "subclassification" */ - aggregateSubclassifications: GraphQLTypes["subclassification_aggregate"], - /** fetch aggregated fields from the table: "tag" */ - aggregateTags: GraphQLTypes["tag_aggregate"], - /** fetch aggregated fields from the table: "team_user" */ - aggregateTeamUsers: GraphQLTypes["teamUser_aggregate"], - /** fetch aggregated fields from the table: "team" */ - aggregateTeams: GraphQLTypes["team_aggregate"], - /** fetch aggregated fields from the table: "unit" */ - aggregateUnits: GraphQLTypes["unit_aggregate"], - /** fetch aggregated fields from the table: "user_status" */ - aggregateUserStatuses: GraphQLTypes["userStatus_aggregate"], - /** fetch aggregated fields from the table: "user" */ - aggregateUsers: GraphQLTypes["user_aggregate"], - /** fetch aggregated fields from the table: "webhook" */ - aggregateWebhooks: GraphQLTypes["webhook_aggregate"], - /** fetch data from the table: "booking" using primary key columns */ - booking?: GraphQLTypes["booking"] | undefined, - /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** fetch data from the table: "booking_status" */ - bookingStatuses: Array, - /** fetch data from the table: "booking_channel" */ - booking_channel: Array, - /** fetch aggregated fields from the table: "booking_channel" */ - booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], - /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, - /** An array relationship */ - bookings: Array, - /** fetch data from the table: "classification" using primary key columns */ - classification?: GraphQLTypes["classification"] | undefined, - /** fetch data from the table: "classification" */ - classifications: Array, - /** fetch data from the table: "connection" using primary key columns */ - connection?: GraphQLTypes["connection"] | undefined, - /** An array relationship */ - connections: Array, - /** fetch data from the table: "currency" */ - currencies: Array, - /** fetch data from the table: "currency" using primary key columns */ - currency?: GraphQLTypes["currency"] | undefined, - /** An array relationship */ - entities: Array, - /** fetch data from the table: "entity" using primary key columns */ - entity?: GraphQLTypes["entity"] | undefined, - /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** fetch data from the table: "entity_status" */ - entityStatuses: Array, - /** fetch data from the table: "integration" using primary key columns */ - integration?: GraphQLTypes["integration"] | undefined, - /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?: GraphQLTypes["integrationType"] | undefined, - /** fetch data from the table: "integration_type" */ - integrationTypes: Array, - /** An array relationship */ - integrations: Array, - /** fetch data from the table: "issue" using primary key columns */ - issue?: GraphQLTypes["issue"] | undefined, - /** An array relationship */ - issues: Array, - /** fetch data from the table: "job" using primary key columns */ - job?: GraphQLTypes["job"] | undefined, - /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** fetch data from the table: "job_method" */ - jobMethods: Array, - /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** fetch data from the table: "job_status" */ - jobStatuses: Array, - /** An array relationship */ - jobs: Array, - /** fetch data from the table: "line" using primary key columns */ - line?: GraphQLTypes["line"] | undefined, - /** An array relationship */ - lines: Array, - /** fetch data from the table: "metric" using primary key columns */ - metric?: GraphQLTypes["metric"] | undefined, - /** An array relationship */ - metrics: Array, - /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** fetch data from the table: "normalized_type" */ - normalizedTypes: Array, - /** fetch data from the table: "payment" using primary key columns */ - payment?: GraphQLTypes["payment"] | undefined, - /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** fetch data from the table: "payment_status" */ - paymentStatuses: Array, - /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?: GraphQLTypes["paymentType"] | undefined, - /** fetch data from the table: "payment_type" */ - paymentTypes: Array, - /** An array relationship */ - payments: Array, - /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?: GraphQLTypes["subclassification"] | undefined, - /** fetch data from the table: "subclassification" */ - subclassifications: Array, - /** fetch data from the table: "tag" using primary key columns */ - tag?: GraphQLTypes["tag"] | undefined, - /** An array relationship */ - tags: Array, - /** fetch data from the table: "team" using primary key columns */ - team?: GraphQLTypes["team"] | undefined, - /** fetch data from the table: "team_user" using primary key columns */ - teamUser?: GraphQLTypes["teamUser"] | undefined, - /** fetch data from the table: "team_user" */ - teamUsers: Array, - /** fetch data from the table: "team" */ - teams: Array, - /** fetch data from the table: "unit" using primary key columns */ - unit?: GraphQLTypes["unit"] | undefined, - /** An array relationship */ - units: Array, - /** fetch data from the table: "user" using primary key columns */ - user?: GraphQLTypes["user"] | undefined, - /** fetch data from the table: "user_status" using primary key columns */ - userStatus?: GraphQLTypes["userStatus"] | undefined, - /** fetch data from the table: "user_status" */ - userStatuses: Array, - /** fetch data from the table: "user" */ - users: Array, - /** fetch data from the table: "webhook" using primary key columns */ - webhook?: GraphQLTypes["webhook"] | undefined, - /** An array relationship */ - webhooks: Array -}; - /** columns and relationships of "tag" */ -["tag"]: { - /** An object relationship */ - booking: GraphQLTypes["booking"], - bookingId: GraphQLTypes["uuid"], - /** An object relationship */ - connection: GraphQLTypes["connection"], - connectionId: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id: GraphQLTypes["uuid"], - json: GraphQLTypes["jsonb"], - /** An object relationship */ - payment: GraphQLTypes["payment"], - paymentId: GraphQLTypes["uuid"], - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - type: string, - uniqueRef: string, - /** An object relationship */ - unit: GraphQLTypes["unit"], - unitId: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "tag" */ -["tag_aggregate"]: { - aggregate?: GraphQLTypes["tag_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "tag" */ -["tag_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["tag_max_fields"] | undefined, - min?: GraphQLTypes["tag_min_fields"] | undefined -}; - /** order by aggregate values of table "tag" */ -["tag_aggregate_order_by"]: GraphQLTypes["tag_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["tag_append_input"]: GraphQLTypes["tag_append_input"]; - /** input type for inserting array relation for remote table "tag" */ -["tag_arr_rel_insert_input"]: GraphQLTypes["tag_arr_rel_insert_input"]; - /** Boolean expression to filter rows from the table "tag". All fields are combined with a logical 'AND'. */ -["tag_bool_exp"]: GraphQLTypes["tag_bool_exp"]; - /** unique or primary key constraints on table "tag" */ -["tag_constraint"]: GraphQLTypes["tag_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["tag_delete_at_path_input"]: GraphQLTypes["tag_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["tag_delete_elem_input"]: GraphQLTypes["tag_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["tag_delete_key_input"]: GraphQLTypes["tag_delete_key_input"]; - /** input type for inserting data into table "tag" */ -["tag_insert_input"]: GraphQLTypes["tag_insert_input"]; - /** aggregate max on columns */ -["tag_max_fields"]: { - bookingId?: GraphQLTypes["uuid"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "tag" */ -["tag_max_order_by"]: GraphQLTypes["tag_max_order_by"]; - /** aggregate min on columns */ -["tag_min_fields"]: { - bookingId?: GraphQLTypes["uuid"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "tag" */ -["tag_min_order_by"]: GraphQLTypes["tag_min_order_by"]; - /** response of any mutation on the table "tag" */ -["tag_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "tag" */ -["tag_on_conflict"]: GraphQLTypes["tag_on_conflict"]; - /** Ordering options when selecting data from "tag". */ -["tag_order_by"]: GraphQLTypes["tag_order_by"]; - /** primary key columns input for table: tag */ -["tag_pk_columns_input"]: GraphQLTypes["tag_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["tag_prepend_input"]: GraphQLTypes["tag_prepend_input"]; - /** select columns of table "tag" */ -["tag_select_column"]: GraphQLTypes["tag_select_column"]; - /** input type for updating data in table "tag" */ -["tag_set_input"]: GraphQLTypes["tag_set_input"]; - /** update columns of table "tag" */ -["tag_update_column"]: GraphQLTypes["tag_update_column"]; - /** columns and relationships of "team" */ -["team"]: { - address?: string | undefined, - /** An array relationship */ - bookings: Array, - /** An aggregate relationship */ - bookings_aggregate: GraphQLTypes["booking_aggregate"], - commissionPercentage?: GraphQLTypes["numeric"] | undefined, - /** An array relationship */ - connections: Array, - /** An aggregate relationship */ - connections_aggregate: GraphQLTypes["connection_aggregate"], - createdAt: GraphQLTypes["timestamptz"], - email?: string | undefined, - /** An array relationship */ - entities: Array, - /** An aggregate relationship */ - entities_aggregate: GraphQLTypes["entity_aggregate"], - id: GraphQLTypes["uuid"], - /** An array relationship */ - integrations: Array, - /** An aggregate relationship */ - integrations_aggregate: GraphQLTypes["integration_aggregate"], - isActive?: boolean | undefined, - isTest?: boolean | undefined, - /** An array relationship */ - issues: Array, - /** An aggregate relationship */ - issues_aggregate: GraphQLTypes["issue_aggregate"], - /** An array relationship */ - jobs: Array, - /** An aggregate relationship */ - jobs_aggregate: GraphQLTypes["job_aggregate"], - /** An array relationship */ - lines: Array, - /** An aggregate relationship */ - lines_aggregate: GraphQLTypes["line_aggregate"], - /** An array relationship */ - members: Array, - /** An aggregate relationship */ - members_aggregate: GraphQLTypes["teamUser_aggregate"], - /** An array relationship */ - metrics: Array, - /** An aggregate relationship */ - metrics_aggregate: GraphQLTypes["metric_aggregate"], - name: string, - /** An array relationship */ - payments: Array, - /** An aggregate relationship */ - payments_aggregate: GraphQLTypes["payment_aggregate"], - stripeId?: string | undefined, - stripeSubscriptionItemId?: string | undefined, - supportEmail?: string | undefined, - supportPhone?: string | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An array relationship */ - units: Array, - /** An aggregate relationship */ - units_aggregate: GraphQLTypes["unit_aggregate"], - /** An array relationship */ - webhooks: Array, - /** An aggregate relationship */ - webhooks_aggregate: GraphQLTypes["webhook_aggregate"], - website?: string | undefined -}; - /** aggregated selection of "team" */ -["team_aggregate"]: { - aggregate?: GraphQLTypes["team_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "team" */ -["team_aggregate_fields"]: { - avg?: GraphQLTypes["team_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["team_max_fields"] | undefined, - min?: GraphQLTypes["team_min_fields"] | undefined, - stddev?: GraphQLTypes["team_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["team_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["team_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["team_sum_fields"] | undefined, - var_pop?: GraphQLTypes["team_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["team_var_samp_fields"] | undefined, - variance?: GraphQLTypes["team_variance_fields"] | undefined -}; - /** aggregate avg on columns */ -["team_avg_fields"]: { - commissionPercentage?: number | undefined -}; - /** Boolean expression to filter rows from the table "team". All fields are combined with a logical 'AND'. */ -["team_bool_exp"]: GraphQLTypes["team_bool_exp"]; - /** unique or primary key constraints on table "team" */ -["team_constraint"]: GraphQLTypes["team_constraint"]; - /** input type for incrementing numeric columns in table "team" */ -["team_inc_input"]: GraphQLTypes["team_inc_input"]; - /** input type for inserting data into table "team" */ -["team_insert_input"]: GraphQLTypes["team_insert_input"]; - /** aggregate max on columns */ -["team_max_fields"]: { - address?: string | undefined, - commissionPercentage?: GraphQLTypes["numeric"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - stripeId?: string | undefined, - stripeSubscriptionItemId?: string | undefined, - supportEmail?: string | undefined, - supportPhone?: string | undefined, - website?: string | undefined -}; - /** aggregate min on columns */ -["team_min_fields"]: { - address?: string | undefined, - commissionPercentage?: GraphQLTypes["numeric"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - stripeId?: string | undefined, - stripeSubscriptionItemId?: string | undefined, - supportEmail?: string | undefined, - supportPhone?: string | undefined, - website?: string | undefined -}; - /** response of any mutation on the table "team" */ -["team_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "team" */ -["team_obj_rel_insert_input"]: GraphQLTypes["team_obj_rel_insert_input"]; - /** on conflict condition type for table "team" */ -["team_on_conflict"]: GraphQLTypes["team_on_conflict"]; - /** Ordering options when selecting data from "team". */ -["team_order_by"]: GraphQLTypes["team_order_by"]; - /** primary key columns input for table: team */ -["team_pk_columns_input"]: GraphQLTypes["team_pk_columns_input"]; - /** select columns of table "team" */ -["team_select_column"]: GraphQLTypes["team_select_column"]; - /** input type for updating data in table "team" */ -["team_set_input"]: GraphQLTypes["team_set_input"]; - /** aggregate stddev on columns */ -["team_stddev_fields"]: { - commissionPercentage?: number | undefined -}; - /** aggregate stddev_pop on columns */ -["team_stddev_pop_fields"]: { - commissionPercentage?: number | undefined -}; - /** aggregate stddev_samp on columns */ -["team_stddev_samp_fields"]: { - commissionPercentage?: number | undefined -}; - /** aggregate sum on columns */ -["team_sum_fields"]: { - commissionPercentage?: GraphQLTypes["numeric"] | undefined -}; - /** update columns of table "team" */ -["team_update_column"]: GraphQLTypes["team_update_column"]; - /** aggregate var_pop on columns */ -["team_var_pop_fields"]: { - commissionPercentage?: number | undefined -}; - /** aggregate var_samp on columns */ -["team_var_samp_fields"]: { - commissionPercentage?: number | undefined -}; - /** aggregate variance on columns */ -["team_variance_fields"]: { - commissionPercentage?: number | undefined -}; - /** columns and relationships of "team_user" */ -["teamUser"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id: GraphQLTypes["uuid"], - role?: string | undefined, - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - /** An object relationship */ - user: GraphQLTypes["user"], - userId: GraphQLTypes["uuid"] -}; - /** aggregated selection of "team_user" */ -["teamUser_aggregate"]: { - aggregate?: GraphQLTypes["teamUser_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "team_user" */ -["teamUser_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["teamUser_max_fields"] | undefined, - min?: GraphQLTypes["teamUser_min_fields"] | undefined -}; - /** order by aggregate values of table "team_user" */ -["teamUser_aggregate_order_by"]: GraphQLTypes["teamUser_aggregate_order_by"]; - /** input type for inserting array relation for remote table "team_user" */ -["teamUser_arr_rel_insert_input"]: GraphQLTypes["teamUser_arr_rel_insert_input"]; - /** Boolean expression to filter rows from the table "team_user". All fields are combined with a logical 'AND'. */ -["teamUser_bool_exp"]: GraphQLTypes["teamUser_bool_exp"]; - /** unique or primary key constraints on table "team_user" */ -["teamUser_constraint"]: GraphQLTypes["teamUser_constraint"]; - /** input type for inserting data into table "team_user" */ -["teamUser_insert_input"]: GraphQLTypes["teamUser_insert_input"]; - /** aggregate max on columns */ -["teamUser_max_fields"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - role?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - userId?: GraphQLTypes["uuid"] | undefined -}; - /** order by max() on columns of table "team_user" */ -["teamUser_max_order_by"]: GraphQLTypes["teamUser_max_order_by"]; - /** aggregate min on columns */ -["teamUser_min_fields"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - role?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - userId?: GraphQLTypes["uuid"] | undefined -}; - /** order by min() on columns of table "team_user" */ -["teamUser_min_order_by"]: GraphQLTypes["teamUser_min_order_by"]; - /** response of any mutation on the table "team_user" */ -["teamUser_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "team_user" */ -["teamUser_on_conflict"]: GraphQLTypes["teamUser_on_conflict"]; - /** Ordering options when selecting data from "team_user". */ -["teamUser_order_by"]: GraphQLTypes["teamUser_order_by"]; - /** primary key columns input for table: teamUser */ -["teamUser_pk_columns_input"]: GraphQLTypes["teamUser_pk_columns_input"]; - /** select columns of table "team_user" */ -["teamUser_select_column"]: GraphQLTypes["teamUser_select_column"]; - /** input type for updating data in table "team_user" */ -["teamUser_set_input"]: GraphQLTypes["teamUser_set_input"]; - /** update columns of table "team_user" */ -["teamUser_update_column"]: GraphQLTypes["teamUser_update_column"]; - ["timestamptz"]:any; - /** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ -["timestamptz_comparison_exp"]: GraphQLTypes["timestamptz_comparison_exp"]; - /** columns and relationships of "unit" */ -["unit"]: { - /** An array relationship */ - bookings: Array, - /** An aggregate relationship */ - bookings_aggregate: GraphQLTypes["booking_aggregate"], - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt: GraphQLTypes["timestamptz"], - /** An object relationship */ - entity?: GraphQLTypes["entity"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id: GraphQLTypes["uuid"], - metadata?: GraphQLTypes["jsonb"] | undefined, - name?: string | undefined, - status?: string | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - updatedAt: GraphQLTypes["timestamptz"] -}; - /** aggregated selection of "unit" */ -["unit_aggregate"]: { - aggregate?: GraphQLTypes["unit_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "unit" */ -["unit_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["unit_max_fields"] | undefined, - min?: GraphQLTypes["unit_min_fields"] | undefined -}; - /** order by aggregate values of table "unit" */ -["unit_aggregate_order_by"]: GraphQLTypes["unit_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["unit_append_input"]: GraphQLTypes["unit_append_input"]; - /** input type for inserting array relation for remote table "unit" */ -["unit_arr_rel_insert_input"]: GraphQLTypes["unit_arr_rel_insert_input"]; - /** Boolean expression to filter rows from the table "unit". All fields are combined with a logical 'AND'. */ -["unit_bool_exp"]: GraphQLTypes["unit_bool_exp"]; - /** unique or primary key constraints on table "unit" */ -["unit_constraint"]: GraphQLTypes["unit_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["unit_delete_at_path_input"]: GraphQLTypes["unit_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["unit_delete_elem_input"]: GraphQLTypes["unit_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["unit_delete_key_input"]: GraphQLTypes["unit_delete_key_input"]; - /** input type for inserting data into table "unit" */ -["unit_insert_input"]: GraphQLTypes["unit_insert_input"]; - /** aggregate max on columns */ -["unit_max_fields"]: { - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "unit" */ -["unit_max_order_by"]: GraphQLTypes["unit_max_order_by"]; - /** aggregate min on columns */ -["unit_min_fields"]: { - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "unit" */ -["unit_min_order_by"]: GraphQLTypes["unit_min_order_by"]; - /** response of any mutation on the table "unit" */ -["unit_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "unit" */ -["unit_obj_rel_insert_input"]: GraphQLTypes["unit_obj_rel_insert_input"]; - /** on conflict condition type for table "unit" */ -["unit_on_conflict"]: GraphQLTypes["unit_on_conflict"]; - /** Ordering options when selecting data from "unit". */ -["unit_order_by"]: GraphQLTypes["unit_order_by"]; - /** primary key columns input for table: unit */ -["unit_pk_columns_input"]: GraphQLTypes["unit_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["unit_prepend_input"]: GraphQLTypes["unit_prepend_input"]; - /** select columns of table "unit" */ -["unit_select_column"]: GraphQLTypes["unit_select_column"]; - /** input type for updating data in table "unit" */ -["unit_set_input"]: GraphQLTypes["unit_set_input"]; - /** update columns of table "unit" */ -["unit_update_column"]: GraphQLTypes["unit_update_column"]; - /** columns and relationships of "user" */ -["user"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email: string, - id: GraphQLTypes["uuid"], - isAdmin: boolean, - /** An array relationship */ - memberships: Array, - /** An aggregate relationship */ - memberships_aggregate: GraphQLTypes["teamUser_aggregate"], - name?: string | undefined, - status?: GraphQLTypes["user_status_enum"] | undefined, - sub?: string | undefined, - trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "user" */ -["user_aggregate"]: { - aggregate?: GraphQLTypes["user_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "user" */ -["user_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["user_max_fields"] | undefined, - min?: GraphQLTypes["user_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "user". All fields are combined with a logical 'AND'. */ -["user_bool_exp"]: GraphQLTypes["user_bool_exp"]; - /** unique or primary key constraints on table "user" */ -["user_constraint"]: GraphQLTypes["user_constraint"]; - /** input type for inserting data into table "user" */ -["user_insert_input"]: GraphQLTypes["user_insert_input"]; - /** aggregate max on columns */ -["user_max_fields"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - sub?: string | undefined, - trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate min on columns */ -["user_min_fields"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - sub?: string | undefined, - trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** response of any mutation on the table "user" */ -["user_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "user" */ -["user_obj_rel_insert_input"]: GraphQLTypes["user_obj_rel_insert_input"]; - /** on conflict condition type for table "user" */ -["user_on_conflict"]: GraphQLTypes["user_on_conflict"]; - /** Ordering options when selecting data from "user". */ -["user_order_by"]: GraphQLTypes["user_order_by"]; - /** primary key columns input for table: user */ -["user_pk_columns_input"]: GraphQLTypes["user_pk_columns_input"]; - /** select columns of table "user" */ -["user_select_column"]: GraphQLTypes["user_select_column"]; - /** input type for updating data in table "user" */ -["user_set_input"]: GraphQLTypes["user_set_input"]; - ["user_status_enum"]: GraphQLTypes["user_status_enum"]; - /** Boolean expression to compare columns of type "user_status_enum". All fields are combined with logical 'AND'. */ -["user_status_enum_comparison_exp"]: GraphQLTypes["user_status_enum_comparison_exp"]; - /** update columns of table "user" */ -["user_update_column"]: GraphQLTypes["user_update_column"]; - /** columns and relationships of "user_status" */ -["userStatus"]: { - name: string -}; - /** aggregated selection of "user_status" */ -["userStatus_aggregate"]: { - aggregate?: GraphQLTypes["userStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "user_status" */ -["userStatus_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["userStatus_max_fields"] | undefined, - min?: GraphQLTypes["userStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "user_status". All fields are combined with a logical 'AND'. */ -["userStatus_bool_exp"]: GraphQLTypes["userStatus_bool_exp"]; - /** unique or primary key constraints on table "user_status" */ -["userStatus_constraint"]: GraphQLTypes["userStatus_constraint"]; - /** input type for inserting data into table "user_status" */ -["userStatus_insert_input"]: GraphQLTypes["userStatus_insert_input"]; - /** aggregate max on columns */ -["userStatus_max_fields"]: { - name?: string | undefined -}; - /** aggregate min on columns */ -["userStatus_min_fields"]: { - name?: string | undefined -}; - /** response of any mutation on the table "user_status" */ -["userStatus_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "user_status" */ -["userStatus_on_conflict"]: GraphQLTypes["userStatus_on_conflict"]; - /** Ordering options when selecting data from "user_status". */ -["userStatus_order_by"]: GraphQLTypes["userStatus_order_by"]; - /** primary key columns input for table: userStatus */ -["userStatus_pk_columns_input"]: GraphQLTypes["userStatus_pk_columns_input"]; - /** select columns of table "user_status" */ -["userStatus_select_column"]: GraphQLTypes["userStatus_select_column"]; - /** input type for updating data in table "user_status" */ -["userStatus_set_input"]: GraphQLTypes["userStatus_set_input"]; - /** update columns of table "user_status" */ -["userStatus_update_column"]: GraphQLTypes["userStatus_update_column"]; - ["uuid"]:any; - /** Boolean expression to compare columns of type "uuid". All fields are combined with logical 'AND'. */ -["uuid_comparison_exp"]: GraphQLTypes["uuid_comparison_exp"]; - /** columns and relationships of "webhook" */ -["webhook"]: { - createdAt: GraphQLTypes["timestamptz"], - headers?: GraphQLTypes["jsonb"] | undefined, - id: GraphQLTypes["uuid"], - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - types: GraphQLTypes["jsonb"], - types2?: GraphQLTypes["_text"] | undefined, - url: string -}; - /** aggregated selection of "webhook" */ -["webhook_aggregate"]: { - aggregate?: GraphQLTypes["webhook_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "webhook" */ -["webhook_aggregate_fields"]: { - count: number, - max?: GraphQLTypes["webhook_max_fields"] | undefined, - min?: GraphQLTypes["webhook_min_fields"] | undefined -}; - /** order by aggregate values of table "webhook" */ -["webhook_aggregate_order_by"]: GraphQLTypes["webhook_aggregate_order_by"]; - /** append existing jsonb value of filtered columns with new jsonb value */ -["webhook_append_input"]: GraphQLTypes["webhook_append_input"]; - /** input type for inserting array relation for remote table "webhook" */ -["webhook_arr_rel_insert_input"]: GraphQLTypes["webhook_arr_rel_insert_input"]; - /** Boolean expression to filter rows from the table "webhook". All fields are combined with a logical 'AND'. */ -["webhook_bool_exp"]: GraphQLTypes["webhook_bool_exp"]; - /** unique or primary key constraints on table "webhook" */ -["webhook_constraint"]: GraphQLTypes["webhook_constraint"]; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["webhook_delete_at_path_input"]: GraphQLTypes["webhook_delete_at_path_input"]; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["webhook_delete_elem_input"]: GraphQLTypes["webhook_delete_elem_input"]; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["webhook_delete_key_input"]: GraphQLTypes["webhook_delete_key_input"]; - /** input type for inserting data into table "webhook" */ -["webhook_insert_input"]: GraphQLTypes["webhook_insert_input"]; - /** aggregate max on columns */ -["webhook_max_fields"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - url?: string | undefined -}; - /** order by max() on columns of table "webhook" */ -["webhook_max_order_by"]: GraphQLTypes["webhook_max_order_by"]; - /** aggregate min on columns */ -["webhook_min_fields"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - url?: string | undefined -}; - /** order by min() on columns of table "webhook" */ -["webhook_min_order_by"]: GraphQLTypes["webhook_min_order_by"]; - /** response of any mutation on the table "webhook" */ -["webhook_mutation_response"]: { - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "webhook" */ -["webhook_on_conflict"]: GraphQLTypes["webhook_on_conflict"]; - /** Ordering options when selecting data from "webhook". */ -["webhook_order_by"]: GraphQLTypes["webhook_order_by"]; - /** primary key columns input for table: webhook */ -["webhook_pk_columns_input"]: GraphQLTypes["webhook_pk_columns_input"]; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["webhook_prepend_input"]: GraphQLTypes["webhook_prepend_input"]; - /** select columns of table "webhook" */ -["webhook_select_column"]: GraphQLTypes["webhook_select_column"]; - /** input type for updating data in table "webhook" */ -["webhook_set_input"]: GraphQLTypes["webhook_set_input"]; - /** update columns of table "webhook" */ -["webhook_update_column"]: GraphQLTypes["webhook_update_column"] - } - -export type GraphQLTypes = { - ["_text"]: any; - /** Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. */ -["_text_comparison_exp"]: { - _eq?: GraphQLTypes["_text"] | undefined, - _gt?: GraphQLTypes["_text"] | undefined, - _gte?: GraphQLTypes["_text"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _lt?: GraphQLTypes["_text"] | undefined, - _lte?: GraphQLTypes["_text"] | undefined, - _neq?: GraphQLTypes["_text"] | undefined, - _nin?: Array | undefined -}; - /** columns and relationships of "booking" */ -["booking"]: { - __typename: "booking", - bookedAt?: GraphQLTypes["timestamptz"] | undefined, - bookerName?: string | undefined, - bookingChannel?: GraphQLTypes["booking_channel_enum"] | undefined, - checkIn?: GraphQLTypes["timestamptz"] | undefined, - checkOut?: GraphQLTypes["timestamptz"] | undefined, - confirmationCode?: string | undefined, - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - currency?: GraphQLTypes["currency_enum"] | undefined, - /** An object relationship */ - entity?: GraphQLTypes["entity"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - guestName?: string | undefined, - guests?: number | undefined, - id: GraphQLTypes["uuid"], - isOTA?: boolean | undefined, - /** An array relationship */ - lines: Array, - /** An aggregate relationship */ - lines_aggregate: GraphQLTypes["line_aggregate"], - metadata?: GraphQLTypes["jsonb"] | undefined, - nights?: number | undefined, - /** An object relationship */ - otaBooking?: GraphQLTypes["booking"] | undefined, - otaBookingId?: GraphQLTypes["uuid"] | undefined, - /** An array relationship */ - relatedBookings: Array, - /** An aggregate relationship */ - relatedBookings_aggregate: GraphQLTypes["booking_aggregate"], - status?: GraphQLTypes["booking_status_enum"] | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - /** An object relationship */ - unit?: GraphQLTypes["unit"] | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "booking" */ -["booking_aggregate"]: { - __typename: "booking_aggregate", - aggregate?: GraphQLTypes["booking_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "booking" */ -["booking_aggregate_fields"]: { - __typename: "booking_aggregate_fields", - avg?: GraphQLTypes["booking_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["booking_max_fields"] | undefined, - min?: GraphQLTypes["booking_min_fields"] | undefined, - stddev?: GraphQLTypes["booking_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["booking_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["booking_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["booking_sum_fields"] | undefined, - var_pop?: GraphQLTypes["booking_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["booking_var_samp_fields"] | undefined, - variance?: GraphQLTypes["booking_variance_fields"] | undefined -}; - /** order by aggregate values of table "booking" */ -["booking_aggregate_order_by"]: { - avg?: GraphQLTypes["booking_avg_order_by"] | undefined, - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["booking_max_order_by"] | undefined, - min?: GraphQLTypes["booking_min_order_by"] | undefined, - stddev?: GraphQLTypes["booking_stddev_order_by"] | undefined, - stddev_pop?: GraphQLTypes["booking_stddev_pop_order_by"] | undefined, - stddev_samp?: GraphQLTypes["booking_stddev_samp_order_by"] | undefined, - sum?: GraphQLTypes["booking_sum_order_by"] | undefined, - var_pop?: GraphQLTypes["booking_var_pop_order_by"] | undefined, - var_samp?: GraphQLTypes["booking_var_samp_order_by"] | undefined, - variance?: GraphQLTypes["booking_variance_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["booking_append_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "booking" */ -["booking_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["booking_on_conflict"] | undefined -}; - /** aggregate avg on columns */ -["booking_avg_fields"]: { - __typename: "booking_avg_fields", - guests?: number | undefined, - nights?: number | undefined -}; - /** order by avg() on columns of table "booking" */ -["booking_avg_order_by"]: { - guests?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined -}; - /** Boolean expression to filter rows from the table "booking". All fields are combined with a logical 'AND'. */ -["booking_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["booking_bool_exp"] | undefined, - _or?: Array | undefined, - bookedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - bookerName?: GraphQLTypes["String_comparison_exp"] | undefined, - bookingChannel?: GraphQLTypes["booking_channel_enum_comparison_exp"] | undefined, - checkIn?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - checkOut?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - confirmationCode?: GraphQLTypes["String_comparison_exp"] | undefined, - connection?: GraphQLTypes["connection_bool_exp"] | undefined, - connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - currency?: GraphQLTypes["currency_enum_comparison_exp"] | undefined, - entity?: GraphQLTypes["entity_bool_exp"] | undefined, - entityId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - guestName?: GraphQLTypes["String_comparison_exp"] | undefined, - guests?: GraphQLTypes["Int_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - isOTA?: GraphQLTypes["Boolean_comparison_exp"] | undefined, - lines?: GraphQLTypes["line_bool_exp"] | undefined, - metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - nights?: GraphQLTypes["Int_comparison_exp"] | undefined, - otaBooking?: GraphQLTypes["booking_bool_exp"] | undefined, - otaBookingId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - relatedBookings?: GraphQLTypes["booking_bool_exp"] | undefined, - status?: GraphQLTypes["booking_status_enum_comparison_exp"] | undefined, - tags?: GraphQLTypes["tag_bool_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, - unit?: GraphQLTypes["unit_bool_exp"] | undefined, - unitId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined -}; - /** columns and relationships of "booking_channel" */ -["booking_channel"]: { - __typename: "booking_channel", - name: string -}; - /** aggregated selection of "booking_channel" */ -["booking_channel_aggregate"]: { - __typename: "booking_channel_aggregate", - aggregate?: GraphQLTypes["booking_channel_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "booking_channel" */ -["booking_channel_aggregate_fields"]: { - __typename: "booking_channel_aggregate_fields", - count: number, - max?: GraphQLTypes["booking_channel_max_fields"] | undefined, - min?: GraphQLTypes["booking_channel_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "booking_channel". All fields are combined with a logical 'AND'. */ -["booking_channel_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["booking_channel_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "booking_channel" */ -["booking_channel_constraint"]: booking_channel_constraint; - ["booking_channel_enum"]: booking_channel_enum; - /** Boolean expression to compare columns of type "booking_channel_enum". All fields are combined with logical 'AND'. */ -["booking_channel_enum_comparison_exp"]: { - _eq?: GraphQLTypes["booking_channel_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["booking_channel_enum"] | undefined, - _nin?: Array | undefined -}; - /** input type for inserting data into table "booking_channel" */ -["booking_channel_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["booking_channel_max_fields"]: { - __typename: "booking_channel_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["booking_channel_min_fields"]: { - __typename: "booking_channel_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "booking_channel" */ -["booking_channel_mutation_response"]: { - __typename: "booking_channel_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "booking_channel" */ -["booking_channel_on_conflict"]: { - constraint: GraphQLTypes["booking_channel_constraint"], - update_columns: Array, - where?: GraphQLTypes["booking_channel_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "booking_channel". */ -["booking_channel_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: booking_channel */ -["booking_channel_pk_columns_input"]: { - name: string -}; - /** select columns of table "booking_channel" */ -["booking_channel_select_column"]: booking_channel_select_column; - /** input type for updating data in table "booking_channel" */ -["booking_channel_set_input"]: { - name?: string | undefined -}; - /** update columns of table "booking_channel" */ -["booking_channel_update_column"]: booking_channel_update_column; - /** unique or primary key constraints on table "booking" */ -["booking_constraint"]: booking_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["booking_delete_at_path_input"]: { - metadata?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["booking_delete_elem_input"]: { - metadata?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["booking_delete_key_input"]: { - metadata?: string | undefined -}; - /** input type for incrementing numeric columns in table "booking" */ -["booking_inc_input"]: { - guests?: number | undefined, - nights?: number | undefined -}; - /** input type for inserting data into table "booking" */ -["booking_insert_input"]: { - bookedAt?: GraphQLTypes["timestamptz"] | undefined, - bookerName?: string | undefined, - bookingChannel?: GraphQLTypes["booking_channel_enum"] | undefined, - checkIn?: GraphQLTypes["timestamptz"] | undefined, - checkOut?: GraphQLTypes["timestamptz"] | undefined, - confirmationCode?: string | undefined, - connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - currency?: GraphQLTypes["currency_enum"] | undefined, - entity?: GraphQLTypes["entity_obj_rel_insert_input"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - guestName?: string | undefined, - guests?: number | undefined, - id?: GraphQLTypes["uuid"] | undefined, - isOTA?: boolean | undefined, - lines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - nights?: number | undefined, - otaBooking?: GraphQLTypes["booking_obj_rel_insert_input"] | undefined, - otaBookingId?: GraphQLTypes["uuid"] | undefined, - relatedBookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, - status?: GraphQLTypes["booking_status_enum"] | undefined, - tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - unit?: GraphQLTypes["unit_obj_rel_insert_input"] | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate max on columns */ -["booking_max_fields"]: { - __typename: "booking_max_fields", - bookedAt?: GraphQLTypes["timestamptz"] | undefined, - bookerName?: string | undefined, - checkIn?: GraphQLTypes["timestamptz"] | undefined, - checkOut?: GraphQLTypes["timestamptz"] | undefined, - confirmationCode?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - guestName?: string | undefined, - guests?: number | undefined, - id?: GraphQLTypes["uuid"] | undefined, - nights?: number | undefined, - otaBookingId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "booking" */ -["booking_max_order_by"]: { - bookedAt?: GraphQLTypes["order_by"] | undefined, - bookerName?: GraphQLTypes["order_by"] | undefined, - checkIn?: GraphQLTypes["order_by"] | undefined, - checkOut?: GraphQLTypes["order_by"] | undefined, - confirmationCode?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - entityId?: GraphQLTypes["order_by"] | undefined, - guestName?: GraphQLTypes["order_by"] | undefined, - guests?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined, - otaBookingId?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["booking_min_fields"]: { - __typename: "booking_min_fields", - bookedAt?: GraphQLTypes["timestamptz"] | undefined, - bookerName?: string | undefined, - checkIn?: GraphQLTypes["timestamptz"] | undefined, - checkOut?: GraphQLTypes["timestamptz"] | undefined, - confirmationCode?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - guestName?: string | undefined, - guests?: number | undefined, - id?: GraphQLTypes["uuid"] | undefined, - nights?: number | undefined, - otaBookingId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "booking" */ -["booking_min_order_by"]: { - bookedAt?: GraphQLTypes["order_by"] | undefined, - bookerName?: GraphQLTypes["order_by"] | undefined, - checkIn?: GraphQLTypes["order_by"] | undefined, - checkOut?: GraphQLTypes["order_by"] | undefined, - confirmationCode?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - entityId?: GraphQLTypes["order_by"] | undefined, - guestName?: GraphQLTypes["order_by"] | undefined, - guests?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined, - otaBookingId?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "booking" */ -["booking_mutation_response"]: { - __typename: "booking_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "booking" */ -["booking_obj_rel_insert_input"]: { - data: GraphQLTypes["booking_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["booking_on_conflict"] | undefined -}; - /** on conflict condition type for table "booking" */ -["booking_on_conflict"]: { - constraint: GraphQLTypes["booking_constraint"], - update_columns: Array, - where?: GraphQLTypes["booking_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "booking". */ -["booking_order_by"]: { - bookedAt?: GraphQLTypes["order_by"] | undefined, - bookerName?: GraphQLTypes["order_by"] | undefined, - bookingChannel?: GraphQLTypes["order_by"] | undefined, - checkIn?: GraphQLTypes["order_by"] | undefined, - checkOut?: GraphQLTypes["order_by"] | undefined, - confirmationCode?: GraphQLTypes["order_by"] | undefined, - connection?: GraphQLTypes["connection_order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - currency?: GraphQLTypes["order_by"] | undefined, - entity?: GraphQLTypes["entity_order_by"] | undefined, - entityId?: GraphQLTypes["order_by"] | undefined, - guestName?: GraphQLTypes["order_by"] | undefined, - guests?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - isOTA?: GraphQLTypes["order_by"] | undefined, - lines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, - metadata?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined, - otaBooking?: GraphQLTypes["booking_order_by"] | undefined, - otaBookingId?: GraphQLTypes["order_by"] | undefined, - relatedBookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unit?: GraphQLTypes["unit_order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: booking */ -["booking_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["booking_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "booking" */ -["booking_select_column"]: booking_select_column; - /** input type for updating data in table "booking" */ -["booking_set_input"]: { - bookedAt?: GraphQLTypes["timestamptz"] | undefined, - bookerName?: string | undefined, - bookingChannel?: GraphQLTypes["booking_channel_enum"] | undefined, - checkIn?: GraphQLTypes["timestamptz"] | undefined, - checkOut?: GraphQLTypes["timestamptz"] | undefined, - confirmationCode?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - currency?: GraphQLTypes["currency_enum"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - guestName?: string | undefined, - guests?: number | undefined, - id?: GraphQLTypes["uuid"] | undefined, - isOTA?: boolean | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - nights?: number | undefined, - otaBookingId?: GraphQLTypes["uuid"] | undefined, - status?: GraphQLTypes["booking_status_enum"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - ["booking_status_enum"]: booking_status_enum; - /** Boolean expression to compare columns of type "booking_status_enum". All fields are combined with logical 'AND'. */ -["booking_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["booking_status_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["booking_status_enum"] | undefined, - _nin?: Array | undefined -}; - /** aggregate stddev on columns */ -["booking_stddev_fields"]: { - __typename: "booking_stddev_fields", - guests?: number | undefined, - nights?: number | undefined -}; - /** order by stddev() on columns of table "booking" */ -["booking_stddev_order_by"]: { - guests?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate stddev_pop on columns */ -["booking_stddev_pop_fields"]: { - __typename: "booking_stddev_pop_fields", - guests?: number | undefined, - nights?: number | undefined -}; - /** order by stddev_pop() on columns of table "booking" */ -["booking_stddev_pop_order_by"]: { - guests?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate stddev_samp on columns */ -["booking_stddev_samp_fields"]: { - __typename: "booking_stddev_samp_fields", - guests?: number | undefined, - nights?: number | undefined -}; - /** order by stddev_samp() on columns of table "booking" */ -["booking_stddev_samp_order_by"]: { - guests?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate sum on columns */ -["booking_sum_fields"]: { - __typename: "booking_sum_fields", - guests?: number | undefined, - nights?: number | undefined -}; - /** order by sum() on columns of table "booking" */ -["booking_sum_order_by"]: { - guests?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined -}; - /** update columns of table "booking" */ -["booking_update_column"]: booking_update_column; - /** aggregate var_pop on columns */ -["booking_var_pop_fields"]: { - __typename: "booking_var_pop_fields", - guests?: number | undefined, - nights?: number | undefined -}; - /** order by var_pop() on columns of table "booking" */ -["booking_var_pop_order_by"]: { - guests?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate var_samp on columns */ -["booking_var_samp_fields"]: { - __typename: "booking_var_samp_fields", - guests?: number | undefined, - nights?: number | undefined -}; - /** order by var_samp() on columns of table "booking" */ -["booking_var_samp_order_by"]: { - guests?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate variance on columns */ -["booking_variance_fields"]: { - __typename: "booking_variance_fields", - guests?: number | undefined, - nights?: number | undefined -}; - /** order by variance() on columns of table "booking" */ -["booking_variance_order_by"]: { - guests?: GraphQLTypes["order_by"] | undefined, - nights?: GraphQLTypes["order_by"] | undefined -}; - /** columns and relationships of "booking_status" */ -["bookingStatus"]: { - __typename: "bookingStatus", - name: string -}; - /** aggregated selection of "booking_status" */ -["bookingStatus_aggregate"]: { - __typename: "bookingStatus_aggregate", - aggregate?: GraphQLTypes["bookingStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "booking_status" */ -["bookingStatus_aggregate_fields"]: { - __typename: "bookingStatus_aggregate_fields", - count: number, - max?: GraphQLTypes["bookingStatus_max_fields"] | undefined, - min?: GraphQLTypes["bookingStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "booking_status". All fields are combined with a logical 'AND'. */ -["bookingStatus_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["bookingStatus_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "booking_status" */ -["bookingStatus_constraint"]: bookingStatus_constraint; - /** input type for inserting data into table "booking_status" */ -["bookingStatus_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["bookingStatus_max_fields"]: { - __typename: "bookingStatus_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["bookingStatus_min_fields"]: { - __typename: "bookingStatus_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "booking_status" */ -["bookingStatus_mutation_response"]: { - __typename: "bookingStatus_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "booking_status" */ -["bookingStatus_on_conflict"]: { - constraint: GraphQLTypes["bookingStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["bookingStatus_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "booking_status". */ -["bookingStatus_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: bookingStatus */ -["bookingStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "booking_status" */ -["bookingStatus_select_column"]: bookingStatus_select_column; - /** input type for updating data in table "booking_status" */ -["bookingStatus_set_input"]: { - name?: string | undefined -}; - /** update columns of table "booking_status" */ -["bookingStatus_update_column"]: bookingStatus_update_column; - /** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */ -["Boolean_comparison_exp"]: { - _eq?: boolean | undefined, - _gt?: boolean | undefined, - _gte?: boolean | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _lt?: boolean | undefined, - _lte?: boolean | undefined, - _neq?: boolean | undefined, - _nin?: Array | undefined -}; - /** columns and relationships of "classification" */ -["classification"]: { - __typename: "classification", - name: string -}; - /** aggregated selection of "classification" */ -["classification_aggregate"]: { - __typename: "classification_aggregate", - aggregate?: GraphQLTypes["classification_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "classification" */ -["classification_aggregate_fields"]: { - __typename: "classification_aggregate_fields", - count: number, - max?: GraphQLTypes["classification_max_fields"] | undefined, - min?: GraphQLTypes["classification_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "classification". All fields are combined with a logical 'AND'. */ -["classification_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["classification_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "classification" */ -["classification_constraint"]: classification_constraint; - ["classification_enum"]: classification_enum; - /** Boolean expression to compare columns of type "classification_enum". All fields are combined with logical 'AND'. */ -["classification_enum_comparison_exp"]: { - _eq?: GraphQLTypes["classification_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["classification_enum"] | undefined, - _nin?: Array | undefined -}; - /** input type for inserting data into table "classification" */ -["classification_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["classification_max_fields"]: { - __typename: "classification_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["classification_min_fields"]: { - __typename: "classification_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "classification" */ -["classification_mutation_response"]: { - __typename: "classification_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "classification" */ -["classification_on_conflict"]: { - constraint: GraphQLTypes["classification_constraint"], - update_columns: Array, - where?: GraphQLTypes["classification_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "classification". */ -["classification_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: classification */ -["classification_pk_columns_input"]: { - name: string -}; - /** select columns of table "classification" */ -["classification_select_column"]: classification_select_column; - /** input type for updating data in table "classification" */ -["classification_set_input"]: { - name?: string | undefined -}; - /** update columns of table "classification" */ -["classification_update_column"]: classification_update_column; - /** columns and relationships of "connection" */ -["connection"]: { - __typename: "connection", - /** An array relationship */ - bookings: Array, - /** An aggregate relationship */ - bookings_aggregate: GraphQLTypes["booking_aggregate"], - createdAt: GraphQLTypes["timestamptz"], - credentials?: GraphQLTypes["jsonb"] | undefined, - /** An array relationship */ - entities: Array, - /** An aggregate relationship */ - entities_aggregate: GraphQLTypes["entity_aggregate"], - id: GraphQLTypes["uuid"], - /** An object relationship */ - integration: GraphQLTypes["integration"], - integrationId: GraphQLTypes["uuid"], - /** An array relationship */ - jobs: Array, - /** An aggregate relationship */ - jobs_aggregate: GraphQLTypes["job_aggregate"], - /** An array relationship */ - lines: Array, - /** An aggregate relationship */ - lines_aggregate: GraphQLTypes["line_aggregate"], - /** An array relationship */ - metrics: Array, - /** An aggregate relationship */ - metrics_aggregate: GraphQLTypes["metric_aggregate"], - name: string, - /** An array relationship */ - payments: Array, - /** An aggregate relationship */ - payments_aggregate: GraphQLTypes["payment_aggregate"], - persistentState?: GraphQLTypes["jsonb"] | undefined, - status?: string | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - /** An array relationship */ - units: Array, - /** An aggregate relationship */ - units_aggregate: GraphQLTypes["unit_aggregate"], - webhookKey?: string | undefined -}; - /** aggregated selection of "connection" */ -["connection_aggregate"]: { - __typename: "connection_aggregate", - aggregate?: GraphQLTypes["connection_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "connection" */ -["connection_aggregate_fields"]: { - __typename: "connection_aggregate_fields", - count: number, - max?: GraphQLTypes["connection_max_fields"] | undefined, - min?: GraphQLTypes["connection_min_fields"] | undefined -}; - /** order by aggregate values of table "connection" */ -["connection_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["connection_max_order_by"] | undefined, - min?: GraphQLTypes["connection_min_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["connection_append_input"]: { - credentials?: GraphQLTypes["jsonb"] | undefined, - persistentState?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "connection" */ -["connection_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["connection_on_conflict"] | undefined -}; - /** Boolean expression to filter rows from the table "connection". All fields are combined with a logical 'AND'. */ -["connection_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["connection_bool_exp"] | undefined, - _or?: Array | undefined, - bookings?: GraphQLTypes["booking_bool_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - credentials?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - entities?: GraphQLTypes["entity_bool_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - integration?: GraphQLTypes["integration_bool_exp"] | undefined, - integrationId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - jobs?: GraphQLTypes["job_bool_exp"] | undefined, - lines?: GraphQLTypes["line_bool_exp"] | undefined, - metrics?: GraphQLTypes["metric_bool_exp"] | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined, - payments?: GraphQLTypes["payment_bool_exp"] | undefined, - persistentState?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - status?: GraphQLTypes["String_comparison_exp"] | undefined, - tags?: GraphQLTypes["tag_bool_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - units?: GraphQLTypes["unit_bool_exp"] | undefined, - webhookKey?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "connection" */ -["connection_constraint"]: connection_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["connection_delete_at_path_input"]: { - credentials?: Array | undefined, - persistentState?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["connection_delete_elem_input"]: { - credentials?: number | undefined, - persistentState?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["connection_delete_key_input"]: { - credentials?: string | undefined, - persistentState?: string | undefined -}; - /** input type for inserting data into table "connection" */ -["connection_insert_input"]: { - bookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - credentials?: GraphQLTypes["jsonb"] | undefined, - entities?: GraphQLTypes["entity_arr_rel_insert_input"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integration?: GraphQLTypes["integration_obj_rel_insert_input"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - jobs?: GraphQLTypes["job_arr_rel_insert_input"] | undefined, - lines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, - metrics?: GraphQLTypes["metric_arr_rel_insert_input"] | undefined, - name?: string | undefined, - payments?: GraphQLTypes["payment_arr_rel_insert_input"] | undefined, - persistentState?: GraphQLTypes["jsonb"] | undefined, - status?: string | undefined, - tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - units?: GraphQLTypes["unit_arr_rel_insert_input"] | undefined, - webhookKey?: string | undefined -}; - /** aggregate max on columns */ -["connection_max_fields"]: { - __typename: "connection_max_fields", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - webhookKey?: string | undefined -}; - /** order by max() on columns of table "connection" */ -["connection_max_order_by"]: { - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - integrationId?: GraphQLTypes["order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - webhookKey?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["connection_min_fields"]: { - __typename: "connection_min_fields", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - webhookKey?: string | undefined -}; - /** order by min() on columns of table "connection" */ -["connection_min_order_by"]: { - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - integrationId?: GraphQLTypes["order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - webhookKey?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "connection" */ -["connection_mutation_response"]: { - __typename: "connection_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "connection" */ -["connection_obj_rel_insert_input"]: { - data: GraphQLTypes["connection_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["connection_on_conflict"] | undefined -}; - /** on conflict condition type for table "connection" */ -["connection_on_conflict"]: { - constraint: GraphQLTypes["connection_constraint"], - update_columns: Array, - where?: GraphQLTypes["connection_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "connection". */ -["connection_order_by"]: { - bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - credentials?: GraphQLTypes["order_by"] | undefined, - entities_aggregate?: GraphQLTypes["entity_aggregate_order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - integration?: GraphQLTypes["integration_order_by"] | undefined, - integrationId?: GraphQLTypes["order_by"] | undefined, - jobs_aggregate?: GraphQLTypes["job_aggregate_order_by"] | undefined, - lines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, - metrics_aggregate?: GraphQLTypes["metric_aggregate_order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - payments_aggregate?: GraphQLTypes["payment_aggregate_order_by"] | undefined, - persistentState?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - units_aggregate?: GraphQLTypes["unit_aggregate_order_by"] | undefined, - webhookKey?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: connection */ -["connection_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["connection_prepend_input"]: { - credentials?: GraphQLTypes["jsonb"] | undefined, - persistentState?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "connection" */ -["connection_select_column"]: connection_select_column; - /** input type for updating data in table "connection" */ -["connection_set_input"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - credentials?: GraphQLTypes["jsonb"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - persistentState?: GraphQLTypes["jsonb"] | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - webhookKey?: string | undefined -}; - /** update columns of table "connection" */ -["connection_update_column"]: connection_update_column; - /** columns and relationships of "currency" */ -["currency"]: { - __typename: "currency", - name: string -}; - /** aggregated selection of "currency" */ -["currency_aggregate"]: { - __typename: "currency_aggregate", - aggregate?: GraphQLTypes["currency_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "currency" */ -["currency_aggregate_fields"]: { - __typename: "currency_aggregate_fields", - count: number, - max?: GraphQLTypes["currency_max_fields"] | undefined, - min?: GraphQLTypes["currency_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "currency". All fields are combined with a logical 'AND'. */ -["currency_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["currency_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "currency" */ -["currency_constraint"]: currency_constraint; - ["currency_enum"]: currency_enum; - /** Boolean expression to compare columns of type "currency_enum". All fields are combined with logical 'AND'. */ -["currency_enum_comparison_exp"]: { - _eq?: GraphQLTypes["currency_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["currency_enum"] | undefined, - _nin?: Array | undefined -}; - /** input type for inserting data into table "currency" */ -["currency_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["currency_max_fields"]: { - __typename: "currency_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["currency_min_fields"]: { - __typename: "currency_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "currency" */ -["currency_mutation_response"]: { - __typename: "currency_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "currency" */ -["currency_on_conflict"]: { - constraint: GraphQLTypes["currency_constraint"], - update_columns: Array, - where?: GraphQLTypes["currency_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "currency". */ -["currency_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: currency */ -["currency_pk_columns_input"]: { - name: string -}; - /** select columns of table "currency" */ -["currency_select_column"]: currency_select_column; - /** input type for updating data in table "currency" */ -["currency_set_input"]: { - name?: string | undefined -}; - /** update columns of table "currency" */ -["currency_update_column"]: currency_update_column; - /** columns and relationships of "entity" */ -["entity"]: { - __typename: "entity", - /** An array relationship */ - bookings: Array, - /** An aggregate relationship */ - bookings_aggregate: GraphQLTypes["booking_aggregate"], - /** An object relationship */ - connection: GraphQLTypes["connection"], - connectionId: GraphQLTypes["uuid"], - createdAt: GraphQLTypes["timestamptz"], - description: string, - diffJson?: GraphQLTypes["jsonb"] | undefined, - hash?: string | undefined, - id: GraphQLTypes["uuid"], - /** An object relationship */ - job?: GraphQLTypes["job"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - json?: GraphQLTypes["jsonb"] | undefined, - normalizedJson?: GraphQLTypes["jsonb"] | undefined, - normalizedType?: GraphQLTypes["normalized_type_enum"] | undefined, - parsedAt?: GraphQLTypes["timestamptz"] | undefined, - /** An array relationship */ - payments: Array, - /** An aggregate relationship */ - payments_aggregate: GraphQLTypes["payment_aggregate"], - /** An object relationship */ - predecessorEntity?: GraphQLTypes["entity"] | undefined, - predecessorEntityId?: GraphQLTypes["uuid"] | undefined, - status: GraphQLTypes["entity_status_enum"], - statusText?: string | undefined, - /** An array relationship */ - successorEntities: Array, - /** An aggregate relationship */ - successorEntities_aggregate: GraphQLTypes["entity_aggregate"], - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type: string, - uniqueRef?: string | undefined, - /** An array relationship */ - units: Array, - /** An aggregate relationship */ - units_aggregate: GraphQLTypes["unit_aggregate"], - updatedAt: GraphQLTypes["timestamptz"] -}; - /** aggregated selection of "entity" */ -["entity_aggregate"]: { - __typename: "entity_aggregate", - aggregate?: GraphQLTypes["entity_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "entity" */ -["entity_aggregate_fields"]: { - __typename: "entity_aggregate_fields", - count: number, - max?: GraphQLTypes["entity_max_fields"] | undefined, - min?: GraphQLTypes["entity_min_fields"] | undefined -}; - /** order by aggregate values of table "entity" */ -["entity_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["entity_max_order_by"] | undefined, - min?: GraphQLTypes["entity_min_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["entity_append_input"]: { - diffJson?: GraphQLTypes["jsonb"] | undefined, - json?: GraphQLTypes["jsonb"] | undefined, - normalizedJson?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "entity" */ -["entity_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["entity_on_conflict"] | undefined -}; - /** Boolean expression to filter rows from the table "entity". All fields are combined with a logical 'AND'. */ -["entity_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["entity_bool_exp"] | undefined, - _or?: Array | undefined, - bookings?: GraphQLTypes["booking_bool_exp"] | undefined, - connection?: GraphQLTypes["connection_bool_exp"] | undefined, - connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - description?: GraphQLTypes["String_comparison_exp"] | undefined, - diffJson?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - hash?: GraphQLTypes["String_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - job?: GraphQLTypes["job_bool_exp"] | undefined, - jobId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - json?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - normalizedJson?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - normalizedType?: GraphQLTypes["normalized_type_enum_comparison_exp"] | undefined, - parsedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - payments?: GraphQLTypes["payment_bool_exp"] | undefined, - predecessorEntity?: GraphQLTypes["entity_bool_exp"] | undefined, - predecessorEntityId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - status?: GraphQLTypes["entity_status_enum_comparison_exp"] | undefined, - statusText?: GraphQLTypes["String_comparison_exp"] | undefined, - successorEntities?: GraphQLTypes["entity_bool_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - type?: GraphQLTypes["String_comparison_exp"] | undefined, - uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, - units?: GraphQLTypes["unit_bool_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "entity" */ -["entity_constraint"]: entity_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["entity_delete_at_path_input"]: { - diffJson?: Array | undefined, - json?: Array | undefined, - normalizedJson?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["entity_delete_elem_input"]: { - diffJson?: number | undefined, - json?: number | undefined, - normalizedJson?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["entity_delete_key_input"]: { - diffJson?: string | undefined, - json?: string | undefined, - normalizedJson?: string | undefined -}; - /** input type for inserting data into table "entity" */ -["entity_insert_input"]: { - bookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, - connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - diffJson?: GraphQLTypes["jsonb"] | undefined, - hash?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - job?: GraphQLTypes["job_obj_rel_insert_input"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - json?: GraphQLTypes["jsonb"] | undefined, - normalizedJson?: GraphQLTypes["jsonb"] | undefined, - normalizedType?: GraphQLTypes["normalized_type_enum"] | undefined, - parsedAt?: GraphQLTypes["timestamptz"] | undefined, - payments?: GraphQLTypes["payment_arr_rel_insert_input"] | undefined, - predecessorEntity?: GraphQLTypes["entity_obj_rel_insert_input"] | undefined, - predecessorEntityId?: GraphQLTypes["uuid"] | undefined, - status?: GraphQLTypes["entity_status_enum"] | undefined, - statusText?: string | undefined, - successorEntities?: GraphQLTypes["entity_arr_rel_insert_input"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - units?: GraphQLTypes["unit_arr_rel_insert_input"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate max on columns */ -["entity_max_fields"]: { - __typename: "entity_max_fields", - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - hash?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - parsedAt?: GraphQLTypes["timestamptz"] | undefined, - predecessorEntityId?: GraphQLTypes["uuid"] | undefined, - statusText?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "entity" */ -["entity_max_order_by"]: { - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - description?: GraphQLTypes["order_by"] | undefined, - hash?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - jobId?: GraphQLTypes["order_by"] | undefined, - parsedAt?: GraphQLTypes["order_by"] | undefined, - predecessorEntityId?: GraphQLTypes["order_by"] | undefined, - statusText?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["entity_min_fields"]: { - __typename: "entity_min_fields", - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - hash?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - parsedAt?: GraphQLTypes["timestamptz"] | undefined, - predecessorEntityId?: GraphQLTypes["uuid"] | undefined, - statusText?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "entity" */ -["entity_min_order_by"]: { - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - description?: GraphQLTypes["order_by"] | undefined, - hash?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - jobId?: GraphQLTypes["order_by"] | undefined, - parsedAt?: GraphQLTypes["order_by"] | undefined, - predecessorEntityId?: GraphQLTypes["order_by"] | undefined, - statusText?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "entity" */ -["entity_mutation_response"]: { - __typename: "entity_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "entity" */ -["entity_obj_rel_insert_input"]: { - data: GraphQLTypes["entity_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["entity_on_conflict"] | undefined -}; - /** on conflict condition type for table "entity" */ -["entity_on_conflict"]: { - constraint: GraphQLTypes["entity_constraint"], - update_columns: Array, - where?: GraphQLTypes["entity_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "entity". */ -["entity_order_by"]: { - bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, - connection?: GraphQLTypes["connection_order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - description?: GraphQLTypes["order_by"] | undefined, - diffJson?: GraphQLTypes["order_by"] | undefined, - hash?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - job?: GraphQLTypes["job_order_by"] | undefined, - jobId?: GraphQLTypes["order_by"] | undefined, - json?: GraphQLTypes["order_by"] | undefined, - normalizedJson?: GraphQLTypes["order_by"] | undefined, - normalizedType?: GraphQLTypes["order_by"] | undefined, - parsedAt?: GraphQLTypes["order_by"] | undefined, - payments_aggregate?: GraphQLTypes["payment_aggregate_order_by"] | undefined, - predecessorEntity?: GraphQLTypes["entity_order_by"] | undefined, - predecessorEntityId?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - statusText?: GraphQLTypes["order_by"] | undefined, - successorEntities_aggregate?: GraphQLTypes["entity_aggregate_order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - units_aggregate?: GraphQLTypes["unit_aggregate_order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: entity */ -["entity_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["entity_prepend_input"]: { - diffJson?: GraphQLTypes["jsonb"] | undefined, - json?: GraphQLTypes["jsonb"] | undefined, - normalizedJson?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "entity" */ -["entity_select_column"]: entity_select_column; - /** input type for updating data in table "entity" */ -["entity_set_input"]: { - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - diffJson?: GraphQLTypes["jsonb"] | undefined, - hash?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - json?: GraphQLTypes["jsonb"] | undefined, - normalizedJson?: GraphQLTypes["jsonb"] | undefined, - normalizedType?: GraphQLTypes["normalized_type_enum"] | undefined, - parsedAt?: GraphQLTypes["timestamptz"] | undefined, - predecessorEntityId?: GraphQLTypes["uuid"] | undefined, - status?: GraphQLTypes["entity_status_enum"] | undefined, - statusText?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - ["entity_status_enum"]: entity_status_enum; - /** Boolean expression to compare columns of type "entity_status_enum". All fields are combined with logical 'AND'. */ -["entity_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["entity_status_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["entity_status_enum"] | undefined, - _nin?: Array | undefined -}; - /** update columns of table "entity" */ -["entity_update_column"]: entity_update_column; - /** columns and relationships of "entity_status" */ -["entityStatus"]: { - __typename: "entityStatus", - name: string -}; - /** aggregated selection of "entity_status" */ -["entityStatus_aggregate"]: { - __typename: "entityStatus_aggregate", - aggregate?: GraphQLTypes["entityStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "entity_status" */ -["entityStatus_aggregate_fields"]: { - __typename: "entityStatus_aggregate_fields", - count: number, - max?: GraphQLTypes["entityStatus_max_fields"] | undefined, - min?: GraphQLTypes["entityStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "entity_status". All fields are combined with a logical 'AND'. */ -["entityStatus_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["entityStatus_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "entity_status" */ -["entityStatus_constraint"]: entityStatus_constraint; - /** input type for inserting data into table "entity_status" */ -["entityStatus_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["entityStatus_max_fields"]: { - __typename: "entityStatus_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["entityStatus_min_fields"]: { - __typename: "entityStatus_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "entity_status" */ -["entityStatus_mutation_response"]: { - __typename: "entityStatus_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "entity_status" */ -["entityStatus_on_conflict"]: { - constraint: GraphQLTypes["entityStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["entityStatus_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "entity_status". */ -["entityStatus_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: entityStatus */ -["entityStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "entity_status" */ -["entityStatus_select_column"]: entityStatus_select_column; - /** input type for updating data in table "entity_status" */ -["entityStatus_set_input"]: { - name?: string | undefined -}; - /** update columns of table "entity_status" */ -["entityStatus_update_column"]: entityStatus_update_column; - ["float8"]: any; - /** Boolean expression to compare columns of type "float8". All fields are combined with logical 'AND'. */ -["float8_comparison_exp"]: { - _eq?: GraphQLTypes["float8"] | undefined, - _gt?: GraphQLTypes["float8"] | undefined, - _gte?: GraphQLTypes["float8"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _lt?: GraphQLTypes["float8"] | undefined, - _lte?: GraphQLTypes["float8"] | undefined, - _neq?: GraphQLTypes["float8"] | undefined, - _nin?: Array | undefined -}; - /** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ -["Int_comparison_exp"]: { - _eq?: number | undefined, - _gt?: number | undefined, - _gte?: number | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _lt?: number | undefined, - _lte?: number | undefined, - _neq?: number | undefined, - _nin?: Array | undefined -}; - /** columns and relationships of "integration" */ -["integration"]: { - __typename: "integration", - apiDevUrl?: string | undefined, - apiUrl: string, - /** An array relationship */ - connections: Array, - /** An aggregate relationship */ - connections_aggregate: GraphQLTypes["connection_aggregate"], - icon?: string | undefined, - id: GraphQLTypes["uuid"], - isApproved?: boolean | undefined, - isPrivate: boolean, - /** An array relationship */ - jobs: Array, - /** An aggregate relationship */ - jobs_aggregate: GraphQLTypes["job_aggregate"], - name: string, - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type: GraphQLTypes["integration_type_enum"], - uniqueRef: string -}; - /** aggregated selection of "integration" */ -["integration_aggregate"]: { - __typename: "integration_aggregate", - aggregate?: GraphQLTypes["integration_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "integration" */ -["integration_aggregate_fields"]: { - __typename: "integration_aggregate_fields", - count: number, - max?: GraphQLTypes["integration_max_fields"] | undefined, - min?: GraphQLTypes["integration_min_fields"] | undefined -}; - /** order by aggregate values of table "integration" */ -["integration_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["integration_max_order_by"] | undefined, - min?: GraphQLTypes["integration_min_order_by"] | undefined -}; - /** input type for inserting array relation for remote table "integration" */ -["integration_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["integration_on_conflict"] | undefined -}; - /** Boolean expression to filter rows from the table "integration". All fields are combined with a logical 'AND'. */ -["integration_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["integration_bool_exp"] | undefined, - _or?: Array | undefined, - apiDevUrl?: GraphQLTypes["String_comparison_exp"] | undefined, - apiUrl?: GraphQLTypes["String_comparison_exp"] | undefined, - connections?: GraphQLTypes["connection_bool_exp"] | undefined, - icon?: GraphQLTypes["String_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - isApproved?: GraphQLTypes["Boolean_comparison_exp"] | undefined, - isPrivate?: GraphQLTypes["Boolean_comparison_exp"] | undefined, - jobs?: GraphQLTypes["job_bool_exp"] | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - type?: GraphQLTypes["integration_type_enum_comparison_exp"] | undefined, - uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "integration" */ -["integration_constraint"]: integration_constraint; - /** input type for inserting data into table "integration" */ -["integration_insert_input"]: { - apiDevUrl?: string | undefined, - apiUrl?: string | undefined, - connections?: GraphQLTypes["connection_arr_rel_insert_input"] | undefined, - icon?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - isApproved?: boolean | undefined, - isPrivate?: boolean | undefined, - jobs?: GraphQLTypes["job_arr_rel_insert_input"] | undefined, - name?: string | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: GraphQLTypes["integration_type_enum"] | undefined, - uniqueRef?: string | undefined -}; - /** aggregate max on columns */ -["integration_max_fields"]: { - __typename: "integration_max_fields", - apiDevUrl?: string | undefined, - apiUrl?: string | undefined, - icon?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined -}; - /** order by max() on columns of table "integration" */ -["integration_max_order_by"]: { - apiDevUrl?: GraphQLTypes["order_by"] | undefined, - apiUrl?: GraphQLTypes["order_by"] | undefined, - icon?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["integration_min_fields"]: { - __typename: "integration_min_fields", - apiDevUrl?: string | undefined, - apiUrl?: string | undefined, - icon?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined -}; - /** order by min() on columns of table "integration" */ -["integration_min_order_by"]: { - apiDevUrl?: GraphQLTypes["order_by"] | undefined, - apiUrl?: GraphQLTypes["order_by"] | undefined, - icon?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "integration" */ -["integration_mutation_response"]: { - __typename: "integration_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "integration" */ -["integration_obj_rel_insert_input"]: { - data: GraphQLTypes["integration_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["integration_on_conflict"] | undefined -}; - /** on conflict condition type for table "integration" */ -["integration_on_conflict"]: { - constraint: GraphQLTypes["integration_constraint"], - update_columns: Array, - where?: GraphQLTypes["integration_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "integration". */ -["integration_order_by"]: { - apiDevUrl?: GraphQLTypes["order_by"] | undefined, - apiUrl?: GraphQLTypes["order_by"] | undefined, - connections_aggregate?: GraphQLTypes["connection_aggregate_order_by"] | undefined, - icon?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - isApproved?: GraphQLTypes["order_by"] | undefined, - isPrivate?: GraphQLTypes["order_by"] | undefined, - jobs_aggregate?: GraphQLTypes["job_aggregate_order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: integration */ -["integration_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** select columns of table "integration" */ -["integration_select_column"]: integration_select_column; - /** input type for updating data in table "integration" */ -["integration_set_input"]: { - apiDevUrl?: string | undefined, - apiUrl?: string | undefined, - icon?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - isApproved?: boolean | undefined, - isPrivate?: boolean | undefined, - name?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: GraphQLTypes["integration_type_enum"] | undefined, - uniqueRef?: string | undefined -}; - ["integration_type_enum"]: integration_type_enum; - /** Boolean expression to compare columns of type "integration_type_enum". All fields are combined with logical 'AND'. */ -["integration_type_enum_comparison_exp"]: { - _eq?: GraphQLTypes["integration_type_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["integration_type_enum"] | undefined, - _nin?: Array | undefined -}; - /** update columns of table "integration" */ -["integration_update_column"]: integration_update_column; - /** columns and relationships of "integration_type" */ -["integrationType"]: { - __typename: "integrationType", - name: string -}; - /** aggregated selection of "integration_type" */ -["integrationType_aggregate"]: { - __typename: "integrationType_aggregate", - aggregate?: GraphQLTypes["integrationType_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "integration_type" */ -["integrationType_aggregate_fields"]: { - __typename: "integrationType_aggregate_fields", - count: number, - max?: GraphQLTypes["integrationType_max_fields"] | undefined, - min?: GraphQLTypes["integrationType_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "integration_type". All fields are combined with a logical 'AND'. */ -["integrationType_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["integrationType_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "integration_type" */ -["integrationType_constraint"]: integrationType_constraint; - /** input type for inserting data into table "integration_type" */ -["integrationType_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["integrationType_max_fields"]: { - __typename: "integrationType_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["integrationType_min_fields"]: { - __typename: "integrationType_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "integration_type" */ -["integrationType_mutation_response"]: { - __typename: "integrationType_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "integration_type" */ -["integrationType_on_conflict"]: { - constraint: GraphQLTypes["integrationType_constraint"], - update_columns: Array, - where?: GraphQLTypes["integrationType_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "integration_type". */ -["integrationType_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: integrationType */ -["integrationType_pk_columns_input"]: { - name: string -}; - /** select columns of table "integration_type" */ -["integrationType_select_column"]: integrationType_select_column; - /** input type for updating data in table "integration_type" */ -["integrationType_set_input"]: { - name?: string | undefined -}; - /** update columns of table "integration_type" */ -["integrationType_update_column"]: integrationType_update_column; - /** columns and relationships of "issue" */ -["issue"]: { - __typename: "issue", - code?: string | undefined, - createdAt: GraphQLTypes["timestamptz"], - id: GraphQLTypes["uuid"], - isPublic?: boolean | undefined, - isResolved?: boolean | undefined, - /** An object relationship */ - job: GraphQLTypes["job"], - jobId: GraphQLTypes["uuid"], - message?: string | undefined, - requestParams?: GraphQLTypes["jsonb"] | undefined, - resolveParams?: GraphQLTypes["jsonb"] | undefined, - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - type?: string | undefined, - updatedAt: GraphQLTypes["timestamptz"] -}; - /** aggregated selection of "issue" */ -["issue_aggregate"]: { - __typename: "issue_aggregate", - aggregate?: GraphQLTypes["issue_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "issue" */ -["issue_aggregate_fields"]: { - __typename: "issue_aggregate_fields", - count: number, - max?: GraphQLTypes["issue_max_fields"] | undefined, - min?: GraphQLTypes["issue_min_fields"] | undefined -}; - /** order by aggregate values of table "issue" */ -["issue_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["issue_max_order_by"] | undefined, - min?: GraphQLTypes["issue_min_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["issue_append_input"]: { - requestParams?: GraphQLTypes["jsonb"] | undefined, - resolveParams?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "issue" */ -["issue_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["issue_on_conflict"] | undefined -}; - /** Boolean expression to filter rows from the table "issue". All fields are combined with a logical 'AND'. */ -["issue_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["issue_bool_exp"] | undefined, - _or?: Array | undefined, - code?: GraphQLTypes["String_comparison_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - isPublic?: GraphQLTypes["Boolean_comparison_exp"] | undefined, - isResolved?: GraphQLTypes["Boolean_comparison_exp"] | undefined, - job?: GraphQLTypes["job_bool_exp"] | undefined, - jobId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - message?: GraphQLTypes["String_comparison_exp"] | undefined, - requestParams?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - resolveParams?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - type?: GraphQLTypes["String_comparison_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "issue" */ -["issue_constraint"]: issue_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["issue_delete_at_path_input"]: { - requestParams?: Array | undefined, - resolveParams?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["issue_delete_elem_input"]: { - requestParams?: number | undefined, - resolveParams?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["issue_delete_key_input"]: { - requestParams?: string | undefined, - resolveParams?: string | undefined -}; - /** input type for inserting data into table "issue" */ -["issue_insert_input"]: { - code?: string | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - isPublic?: boolean | undefined, - isResolved?: boolean | undefined, - job?: GraphQLTypes["job_obj_rel_insert_input"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - message?: string | undefined, - requestParams?: GraphQLTypes["jsonb"] | undefined, - resolveParams?: GraphQLTypes["jsonb"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate max on columns */ -["issue_max_fields"]: { - __typename: "issue_max_fields", - code?: string | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - message?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "issue" */ -["issue_max_order_by"]: { - code?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - jobId?: GraphQLTypes["order_by"] | undefined, - message?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["issue_min_fields"]: { - __typename: "issue_min_fields", - code?: string | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - message?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "issue" */ -["issue_min_order_by"]: { - code?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - jobId?: GraphQLTypes["order_by"] | undefined, - message?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "issue" */ -["issue_mutation_response"]: { - __typename: "issue_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "issue" */ -["issue_on_conflict"]: { - constraint: GraphQLTypes["issue_constraint"], - update_columns: Array, - where?: GraphQLTypes["issue_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "issue". */ -["issue_order_by"]: { - code?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - isPublic?: GraphQLTypes["order_by"] | undefined, - isResolved?: GraphQLTypes["order_by"] | undefined, - job?: GraphQLTypes["job_order_by"] | undefined, - jobId?: GraphQLTypes["order_by"] | undefined, - message?: GraphQLTypes["order_by"] | undefined, - requestParams?: GraphQLTypes["order_by"] | undefined, - resolveParams?: GraphQLTypes["order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: issue */ -["issue_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["issue_prepend_input"]: { - requestParams?: GraphQLTypes["jsonb"] | undefined, - resolveParams?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "issue" */ -["issue_select_column"]: issue_select_column; - /** input type for updating data in table "issue" */ -["issue_set_input"]: { - code?: string | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - isPublic?: boolean | undefined, - isResolved?: boolean | undefined, - jobId?: GraphQLTypes["uuid"] | undefined, - message?: string | undefined, - requestParams?: GraphQLTypes["jsonb"] | undefined, - resolveParams?: GraphQLTypes["jsonb"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** update columns of table "issue" */ -["issue_update_column"]: issue_update_column; - /** columns and relationships of "job" */ -["job"]: { - __typename: "job", - apiVersion?: string | undefined, - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt: GraphQLTypes["timestamptz"], - endedAt?: GraphQLTypes["timestamptz"] | undefined, - /** An array relationship */ - entities: Array, - /** An aggregate relationship */ - entities_aggregate: GraphQLTypes["entity_aggregate"], - id: GraphQLTypes["uuid"], - /** An object relationship */ - integration?: GraphQLTypes["integration"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - integrationSdkVersion?: string | undefined, - integrationVersion?: string | undefined, - /** An array relationship */ - issues: Array, - /** An aggregate relationship */ - issues_aggregate: GraphQLTypes["issue_aggregate"], - logFile?: string | undefined, - logLink?: string | undefined, - logs?: GraphQLTypes["jsonb"] | undefined, - method?: GraphQLTypes["job_method_enum"] | undefined, - params?: GraphQLTypes["jsonb"] | undefined, - requestId?: string | undefined, - response?: GraphQLTypes["jsonb"] | undefined, - sdkVersion?: string | undefined, - startedAt?: GraphQLTypes["timestamptz"] | undefined, - status?: GraphQLTypes["job_status_enum"] | undefined, - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt: GraphQLTypes["timestamptz"] -}; - /** aggregated selection of "job" */ -["job_aggregate"]: { - __typename: "job_aggregate", - aggregate?: GraphQLTypes["job_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "job" */ -["job_aggregate_fields"]: { - __typename: "job_aggregate_fields", - count: number, - max?: GraphQLTypes["job_max_fields"] | undefined, - min?: GraphQLTypes["job_min_fields"] | undefined -}; - /** order by aggregate values of table "job" */ -["job_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["job_max_order_by"] | undefined, - min?: GraphQLTypes["job_min_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["job_append_input"]: { - logs?: GraphQLTypes["jsonb"] | undefined, - params?: GraphQLTypes["jsonb"] | undefined, - response?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "job" */ -["job_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["job_on_conflict"] | undefined -}; - /** Boolean expression to filter rows from the table "job". All fields are combined with a logical 'AND'. */ -["job_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["job_bool_exp"] | undefined, - _or?: Array | undefined, - apiVersion?: GraphQLTypes["String_comparison_exp"] | undefined, - connection?: GraphQLTypes["connection_bool_exp"] | undefined, - connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - endedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - entities?: GraphQLTypes["entity_bool_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - integration?: GraphQLTypes["integration_bool_exp"] | undefined, - integrationId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - integrationSdkVersion?: GraphQLTypes["String_comparison_exp"] | undefined, - integrationVersion?: GraphQLTypes["String_comparison_exp"] | undefined, - issues?: GraphQLTypes["issue_bool_exp"] | undefined, - logFile?: GraphQLTypes["String_comparison_exp"] | undefined, - logLink?: GraphQLTypes["String_comparison_exp"] | undefined, - logs?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - method?: GraphQLTypes["job_method_enum_comparison_exp"] | undefined, - params?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - requestId?: GraphQLTypes["String_comparison_exp"] | undefined, - response?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - sdkVersion?: GraphQLTypes["String_comparison_exp"] | undefined, - startedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - status?: GraphQLTypes["job_status_enum_comparison_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "job" */ -["job_constraint"]: job_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["job_delete_at_path_input"]: { - logs?: Array | undefined, - params?: Array | undefined, - response?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["job_delete_elem_input"]: { - logs?: number | undefined, - params?: number | undefined, - response?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["job_delete_key_input"]: { - logs?: string | undefined, - params?: string | undefined, - response?: string | undefined -}; - /** input type for inserting data into table "job" */ -["job_insert_input"]: { - apiVersion?: string | undefined, - connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - endedAt?: GraphQLTypes["timestamptz"] | undefined, - entities?: GraphQLTypes["entity_arr_rel_insert_input"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integration?: GraphQLTypes["integration_obj_rel_insert_input"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - integrationSdkVersion?: string | undefined, - integrationVersion?: string | undefined, - issues?: GraphQLTypes["issue_arr_rel_insert_input"] | undefined, - logFile?: string | undefined, - logLink?: string | undefined, - logs?: GraphQLTypes["jsonb"] | undefined, - method?: GraphQLTypes["job_method_enum"] | undefined, - params?: GraphQLTypes["jsonb"] | undefined, - requestId?: string | undefined, - response?: GraphQLTypes["jsonb"] | undefined, - sdkVersion?: string | undefined, - startedAt?: GraphQLTypes["timestamptz"] | undefined, - status?: GraphQLTypes["job_status_enum"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate max on columns */ -["job_max_fields"]: { - __typename: "job_max_fields", - apiVersion?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - endedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - integrationSdkVersion?: string | undefined, - integrationVersion?: string | undefined, - logFile?: string | undefined, - logLink?: string | undefined, - requestId?: string | undefined, - sdkVersion?: string | undefined, - startedAt?: GraphQLTypes["timestamptz"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "job" */ -["job_max_order_by"]: { - apiVersion?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - endedAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - integrationId?: GraphQLTypes["order_by"] | undefined, - integrationSdkVersion?: GraphQLTypes["order_by"] | undefined, - integrationVersion?: GraphQLTypes["order_by"] | undefined, - logFile?: GraphQLTypes["order_by"] | undefined, - logLink?: GraphQLTypes["order_by"] | undefined, - requestId?: GraphQLTypes["order_by"] | undefined, - sdkVersion?: GraphQLTypes["order_by"] | undefined, - startedAt?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - ["job_method_enum"]: job_method_enum; - /** Boolean expression to compare columns of type "job_method_enum". All fields are combined with logical 'AND'. */ -["job_method_enum_comparison_exp"]: { - _eq?: GraphQLTypes["job_method_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["job_method_enum"] | undefined, - _nin?: Array | undefined -}; - /** aggregate min on columns */ -["job_min_fields"]: { - __typename: "job_min_fields", - apiVersion?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - endedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - integrationSdkVersion?: string | undefined, - integrationVersion?: string | undefined, - logFile?: string | undefined, - logLink?: string | undefined, - requestId?: string | undefined, - sdkVersion?: string | undefined, - startedAt?: GraphQLTypes["timestamptz"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "job" */ -["job_min_order_by"]: { - apiVersion?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - endedAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - integrationId?: GraphQLTypes["order_by"] | undefined, - integrationSdkVersion?: GraphQLTypes["order_by"] | undefined, - integrationVersion?: GraphQLTypes["order_by"] | undefined, - logFile?: GraphQLTypes["order_by"] | undefined, - logLink?: GraphQLTypes["order_by"] | undefined, - requestId?: GraphQLTypes["order_by"] | undefined, - sdkVersion?: GraphQLTypes["order_by"] | undefined, - startedAt?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "job" */ -["job_mutation_response"]: { - __typename: "job_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "job" */ -["job_obj_rel_insert_input"]: { - data: GraphQLTypes["job_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["job_on_conflict"] | undefined -}; - /** on conflict condition type for table "job" */ -["job_on_conflict"]: { - constraint: GraphQLTypes["job_constraint"], - update_columns: Array, - where?: GraphQLTypes["job_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "job". */ -["job_order_by"]: { - apiVersion?: GraphQLTypes["order_by"] | undefined, - connection?: GraphQLTypes["connection_order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - endedAt?: GraphQLTypes["order_by"] | undefined, - entities_aggregate?: GraphQLTypes["entity_aggregate_order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - integration?: GraphQLTypes["integration_order_by"] | undefined, - integrationId?: GraphQLTypes["order_by"] | undefined, - integrationSdkVersion?: GraphQLTypes["order_by"] | undefined, - integrationVersion?: GraphQLTypes["order_by"] | undefined, - issues_aggregate?: GraphQLTypes["issue_aggregate_order_by"] | undefined, - logFile?: GraphQLTypes["order_by"] | undefined, - logLink?: GraphQLTypes["order_by"] | undefined, - logs?: GraphQLTypes["order_by"] | undefined, - method?: GraphQLTypes["order_by"] | undefined, - params?: GraphQLTypes["order_by"] | undefined, - requestId?: GraphQLTypes["order_by"] | undefined, - response?: GraphQLTypes["order_by"] | undefined, - sdkVersion?: GraphQLTypes["order_by"] | undefined, - startedAt?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: job */ -["job_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["job_prepend_input"]: { - logs?: GraphQLTypes["jsonb"] | undefined, - params?: GraphQLTypes["jsonb"] | undefined, - response?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "job" */ -["job_select_column"]: job_select_column; - /** input type for updating data in table "job" */ -["job_set_input"]: { - apiVersion?: string | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - endedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrationId?: GraphQLTypes["uuid"] | undefined, - integrationSdkVersion?: string | undefined, - integrationVersion?: string | undefined, - logFile?: string | undefined, - logLink?: string | undefined, - logs?: GraphQLTypes["jsonb"] | undefined, - method?: GraphQLTypes["job_method_enum"] | undefined, - params?: GraphQLTypes["jsonb"] | undefined, - requestId?: string | undefined, - response?: GraphQLTypes["jsonb"] | undefined, - sdkVersion?: string | undefined, - startedAt?: GraphQLTypes["timestamptz"] | undefined, - status?: GraphQLTypes["job_status_enum"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - ["job_status_enum"]: job_status_enum; - /** Boolean expression to compare columns of type "job_status_enum". All fields are combined with logical 'AND'. */ -["job_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["job_status_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["job_status_enum"] | undefined, - _nin?: Array | undefined -}; - /** update columns of table "job" */ -["job_update_column"]: job_update_column; - /** columns and relationships of "job_method" */ -["jobMethod"]: { - __typename: "jobMethod", - name: string -}; - /** aggregated selection of "job_method" */ -["jobMethod_aggregate"]: { - __typename: "jobMethod_aggregate", - aggregate?: GraphQLTypes["jobMethod_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "job_method" */ -["jobMethod_aggregate_fields"]: { - __typename: "jobMethod_aggregate_fields", - count: number, - max?: GraphQLTypes["jobMethod_max_fields"] | undefined, - min?: GraphQLTypes["jobMethod_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "job_method". All fields are combined with a logical 'AND'. */ -["jobMethod_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["jobMethod_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "job_method" */ -["jobMethod_constraint"]: jobMethod_constraint; - /** input type for inserting data into table "job_method" */ -["jobMethod_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["jobMethod_max_fields"]: { - __typename: "jobMethod_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["jobMethod_min_fields"]: { - __typename: "jobMethod_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "job_method" */ -["jobMethod_mutation_response"]: { - __typename: "jobMethod_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "job_method" */ -["jobMethod_on_conflict"]: { - constraint: GraphQLTypes["jobMethod_constraint"], - update_columns: Array, - where?: GraphQLTypes["jobMethod_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "job_method". */ -["jobMethod_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: jobMethod */ -["jobMethod_pk_columns_input"]: { - name: string -}; - /** select columns of table "job_method" */ -["jobMethod_select_column"]: jobMethod_select_column; - /** input type for updating data in table "job_method" */ -["jobMethod_set_input"]: { - name?: string | undefined -}; - /** update columns of table "job_method" */ -["jobMethod_update_column"]: jobMethod_update_column; - /** columns and relationships of "job_status" */ -["jobStatus"]: { - __typename: "jobStatus", - name: string -}; - /** aggregated selection of "job_status" */ -["jobStatus_aggregate"]: { - __typename: "jobStatus_aggregate", - aggregate?: GraphQLTypes["jobStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "job_status" */ -["jobStatus_aggregate_fields"]: { - __typename: "jobStatus_aggregate_fields", - count: number, - max?: GraphQLTypes["jobStatus_max_fields"] | undefined, - min?: GraphQLTypes["jobStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "job_status". All fields are combined with a logical 'AND'. */ -["jobStatus_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["jobStatus_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "job_status" */ -["jobStatus_constraint"]: jobStatus_constraint; - /** input type for inserting data into table "job_status" */ -["jobStatus_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["jobStatus_max_fields"]: { - __typename: "jobStatus_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["jobStatus_min_fields"]: { - __typename: "jobStatus_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "job_status" */ -["jobStatus_mutation_response"]: { - __typename: "jobStatus_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "job_status" */ -["jobStatus_on_conflict"]: { - constraint: GraphQLTypes["jobStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["jobStatus_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "job_status". */ -["jobStatus_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: jobStatus */ -["jobStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "job_status" */ -["jobStatus_select_column"]: jobStatus_select_column; - /** input type for updating data in table "job_status" */ -["jobStatus_set_input"]: { - name?: string | undefined -}; - /** update columns of table "job_status" */ -["jobStatus_update_column"]: jobStatus_update_column; - ["jsonb"]: any; - /** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ -["jsonb_comparison_exp"]: { - /** is the column contained in the given json value */ - _contained_in?: GraphQLTypes["jsonb"] | undefined, - /** does the column contain the given json value at the top level */ - _contains?: GraphQLTypes["jsonb"] | undefined, - _eq?: GraphQLTypes["jsonb"] | undefined, - _gt?: GraphQLTypes["jsonb"] | undefined, - _gte?: GraphQLTypes["jsonb"] | undefined, - /** does the string exist as a top-level key in the column */ - _has_key?: string | undefined, - /** do all of these strings exist as top-level keys in the column */ - _has_keys_all?: Array | undefined, - /** do any of these strings exist as top-level keys in the column */ - _has_keys_any?: Array | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _lt?: GraphQLTypes["jsonb"] | undefined, - _lte?: GraphQLTypes["jsonb"] | undefined, - _neq?: GraphQLTypes["jsonb"] | undefined, - _nin?: Array | undefined -}; - /** columns and relationships of "line" */ -["line"]: { - __typename: "line", - /** An object relationship */ - booking?: GraphQLTypes["booking"] | undefined, - bookingId?: GraphQLTypes["uuid"] | undefined, - centTotal?: number | undefined, - classification?: GraphQLTypes["classification_enum"] | undefined, - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt: GraphQLTypes["timestamptz"], - description?: string | undefined, - /** An array relationship */ - enhancementLines: Array, - /** An aggregate relationship */ - enhancementLines_aggregate: GraphQLTypes["line_aggregate"], - /** An object relationship */ - enhancingLine?: GraphQLTypes["line"] | undefined, - enhancingLineId?: GraphQLTypes["uuid"] | undefined, - id: GraphQLTypes["uuid"], - invoiceStatus?: string | undefined, - isEnhanced?: boolean | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - originCentTotal?: number | undefined, - originCurrency?: string | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined, - /** An object relationship */ - payment?: GraphQLTypes["payment"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - subclassification?: GraphQLTypes["subclassification_enum"] | undefined, - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "line" */ -["line_aggregate"]: { - __typename: "line_aggregate", - aggregate?: GraphQLTypes["line_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "line" */ -["line_aggregate_fields"]: { - __typename: "line_aggregate_fields", - avg?: GraphQLTypes["line_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["line_max_fields"] | undefined, - min?: GraphQLTypes["line_min_fields"] | undefined, - stddev?: GraphQLTypes["line_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["line_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["line_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["line_sum_fields"] | undefined, - var_pop?: GraphQLTypes["line_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["line_var_samp_fields"] | undefined, - variance?: GraphQLTypes["line_variance_fields"] | undefined -}; - /** order by aggregate values of table "line" */ -["line_aggregate_order_by"]: { - avg?: GraphQLTypes["line_avg_order_by"] | undefined, - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["line_max_order_by"] | undefined, - min?: GraphQLTypes["line_min_order_by"] | undefined, - stddev?: GraphQLTypes["line_stddev_order_by"] | undefined, - stddev_pop?: GraphQLTypes["line_stddev_pop_order_by"] | undefined, - stddev_samp?: GraphQLTypes["line_stddev_samp_order_by"] | undefined, - sum?: GraphQLTypes["line_sum_order_by"] | undefined, - var_pop?: GraphQLTypes["line_var_pop_order_by"] | undefined, - var_samp?: GraphQLTypes["line_var_samp_order_by"] | undefined, - variance?: GraphQLTypes["line_variance_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["line_append_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "line" */ -["line_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["line_on_conflict"] | undefined -}; - /** aggregate avg on columns */ -["line_avg_fields"]: { - __typename: "line_avg_fields", - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by avg() on columns of table "line" */ -["line_avg_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined -}; - /** Boolean expression to filter rows from the table "line". All fields are combined with a logical 'AND'. */ -["line_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["line_bool_exp"] | undefined, - _or?: Array | undefined, - booking?: GraphQLTypes["booking_bool_exp"] | undefined, - bookingId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - centTotal?: GraphQLTypes["Int_comparison_exp"] | undefined, - classification?: GraphQLTypes["classification_enum_comparison_exp"] | undefined, - connection?: GraphQLTypes["connection_bool_exp"] | undefined, - connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - description?: GraphQLTypes["String_comparison_exp"] | undefined, - enhancementLines?: GraphQLTypes["line_bool_exp"] | undefined, - enhancingLine?: GraphQLTypes["line_bool_exp"] | undefined, - enhancingLineId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - invoiceStatus?: GraphQLTypes["String_comparison_exp"] | undefined, - isEnhanced?: GraphQLTypes["Boolean_comparison_exp"] | undefined, - metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - originCentTotal?: GraphQLTypes["Int_comparison_exp"] | undefined, - originCurrency?: GraphQLTypes["String_comparison_exp"] | undefined, - originExchangeRate?: GraphQLTypes["numeric_comparison_exp"] | undefined, - payment?: GraphQLTypes["payment_bool_exp"] | undefined, - paymentId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - subclassification?: GraphQLTypes["subclassification_enum_comparison_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - type?: GraphQLTypes["String_comparison_exp"] | undefined, - uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, - unitId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "line" */ -["line_constraint"]: line_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["line_delete_at_path_input"]: { - metadata?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["line_delete_elem_input"]: { - metadata?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["line_delete_key_input"]: { - metadata?: string | undefined -}; - /** input type for incrementing numeric columns in table "line" */ -["line_inc_input"]: { - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined -}; - /** input type for inserting data into table "line" */ -["line_insert_input"]: { - booking?: GraphQLTypes["booking_obj_rel_insert_input"] | undefined, - bookingId?: GraphQLTypes["uuid"] | undefined, - centTotal?: number | undefined, - classification?: GraphQLTypes["classification_enum"] | undefined, - connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - enhancementLines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, - enhancingLine?: GraphQLTypes["line_obj_rel_insert_input"] | undefined, - enhancingLineId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - invoiceStatus?: string | undefined, - isEnhanced?: boolean | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - originCentTotal?: number | undefined, - originCurrency?: string | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined, - payment?: GraphQLTypes["payment_obj_rel_insert_input"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - subclassification?: GraphQLTypes["subclassification_enum"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate max on columns */ -["line_max_fields"]: { - __typename: "line_max_fields", - bookingId?: GraphQLTypes["uuid"] | undefined, - centTotal?: number | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - enhancingLineId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - invoiceStatus?: string | undefined, - originCentTotal?: number | undefined, - originCurrency?: string | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "line" */ -["line_max_order_by"]: { - bookingId?: GraphQLTypes["order_by"] | undefined, - centTotal?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - description?: GraphQLTypes["order_by"] | undefined, - enhancingLineId?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - invoiceStatus?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originCurrency?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined, - paymentId?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["line_min_fields"]: { - __typename: "line_min_fields", - bookingId?: GraphQLTypes["uuid"] | undefined, - centTotal?: number | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - enhancingLineId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - invoiceStatus?: string | undefined, - originCentTotal?: number | undefined, - originCurrency?: string | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "line" */ -["line_min_order_by"]: { - bookingId?: GraphQLTypes["order_by"] | undefined, - centTotal?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - description?: GraphQLTypes["order_by"] | undefined, - enhancingLineId?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - invoiceStatus?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originCurrency?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined, - paymentId?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "line" */ -["line_mutation_response"]: { - __typename: "line_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "line" */ -["line_obj_rel_insert_input"]: { - data: GraphQLTypes["line_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["line_on_conflict"] | undefined -}; - /** on conflict condition type for table "line" */ -["line_on_conflict"]: { - constraint: GraphQLTypes["line_constraint"], - update_columns: Array, - where?: GraphQLTypes["line_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "line". */ -["line_order_by"]: { - booking?: GraphQLTypes["booking_order_by"] | undefined, - bookingId?: GraphQLTypes["order_by"] | undefined, - centTotal?: GraphQLTypes["order_by"] | undefined, - classification?: GraphQLTypes["order_by"] | undefined, - connection?: GraphQLTypes["connection_order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - description?: GraphQLTypes["order_by"] | undefined, - enhancementLines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, - enhancingLine?: GraphQLTypes["line_order_by"] | undefined, - enhancingLineId?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - invoiceStatus?: GraphQLTypes["order_by"] | undefined, - isEnhanced?: GraphQLTypes["order_by"] | undefined, - metadata?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originCurrency?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined, - payment?: GraphQLTypes["payment_order_by"] | undefined, - paymentId?: GraphQLTypes["order_by"] | undefined, - subclassification?: GraphQLTypes["order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: line */ -["line_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["line_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "line" */ -["line_select_column"]: line_select_column; - /** input type for updating data in table "line" */ -["line_set_input"]: { - bookingId?: GraphQLTypes["uuid"] | undefined, - centTotal?: number | undefined, - classification?: GraphQLTypes["classification_enum"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - enhancingLineId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - invoiceStatus?: string | undefined, - isEnhanced?: boolean | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - originCentTotal?: number | undefined, - originCurrency?: string | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - subclassification?: GraphQLTypes["subclassification_enum"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate stddev on columns */ -["line_stddev_fields"]: { - __typename: "line_stddev_fields", - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by stddev() on columns of table "line" */ -["line_stddev_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate stddev_pop on columns */ -["line_stddev_pop_fields"]: { - __typename: "line_stddev_pop_fields", - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by stddev_pop() on columns of table "line" */ -["line_stddev_pop_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate stddev_samp on columns */ -["line_stddev_samp_fields"]: { - __typename: "line_stddev_samp_fields", - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by stddev_samp() on columns of table "line" */ -["line_stddev_samp_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate sum on columns */ -["line_sum_fields"]: { - __typename: "line_sum_fields", - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: GraphQLTypes["numeric"] | undefined -}; - /** order by sum() on columns of table "line" */ -["line_sum_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined -}; - /** update columns of table "line" */ -["line_update_column"]: line_update_column; - /** aggregate var_pop on columns */ -["line_var_pop_fields"]: { - __typename: "line_var_pop_fields", - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by var_pop() on columns of table "line" */ -["line_var_pop_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate var_samp on columns */ -["line_var_samp_fields"]: { - __typename: "line_var_samp_fields", - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by var_samp() on columns of table "line" */ -["line_var_samp_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate variance on columns */ -["line_variance_fields"]: { - __typename: "line_variance_fields", - centTotal?: number | undefined, - originCentTotal?: number | undefined, - originExchangeRate?: number | undefined -}; - /** order by variance() on columns of table "line" */ -["line_variance_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined, - originCentTotal?: GraphQLTypes["order_by"] | undefined, - originExchangeRate?: GraphQLTypes["order_by"] | undefined -}; - /** columns and relationships of "metric" */ -["metric"]: { - __typename: "metric", - /** An object relationship */ - connection: GraphQLTypes["connection"], - connectionId: GraphQLTypes["uuid"], - createdAt: GraphQLTypes["timestamptz"], - ensuedAt: GraphQLTypes["timestamptz"], - id: GraphQLTypes["uuid"], - metadata: GraphQLTypes["jsonb"], - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - text?: string | undefined, - type: string, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt: GraphQLTypes["timestamptz"], - value?: GraphQLTypes["float8"] | undefined -}; - /** aggregated selection of "metric" */ -["metric_aggregate"]: { - __typename: "metric_aggregate", - aggregate?: GraphQLTypes["metric_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "metric" */ -["metric_aggregate_fields"]: { - __typename: "metric_aggregate_fields", - avg?: GraphQLTypes["metric_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["metric_max_fields"] | undefined, - min?: GraphQLTypes["metric_min_fields"] | undefined, - stddev?: GraphQLTypes["metric_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["metric_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["metric_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["metric_sum_fields"] | undefined, - var_pop?: GraphQLTypes["metric_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["metric_var_samp_fields"] | undefined, - variance?: GraphQLTypes["metric_variance_fields"] | undefined -}; - /** order by aggregate values of table "metric" */ -["metric_aggregate_order_by"]: { - avg?: GraphQLTypes["metric_avg_order_by"] | undefined, - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["metric_max_order_by"] | undefined, - min?: GraphQLTypes["metric_min_order_by"] | undefined, - stddev?: GraphQLTypes["metric_stddev_order_by"] | undefined, - stddev_pop?: GraphQLTypes["metric_stddev_pop_order_by"] | undefined, - stddev_samp?: GraphQLTypes["metric_stddev_samp_order_by"] | undefined, - sum?: GraphQLTypes["metric_sum_order_by"] | undefined, - var_pop?: GraphQLTypes["metric_var_pop_order_by"] | undefined, - var_samp?: GraphQLTypes["metric_var_samp_order_by"] | undefined, - variance?: GraphQLTypes["metric_variance_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["metric_append_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "metric" */ -["metric_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["metric_on_conflict"] | undefined -}; - /** aggregate avg on columns */ -["metric_avg_fields"]: { - __typename: "metric_avg_fields", - value?: number | undefined -}; - /** order by avg() on columns of table "metric" */ -["metric_avg_order_by"]: { - value?: GraphQLTypes["order_by"] | undefined -}; - /** Boolean expression to filter rows from the table "metric". All fields are combined with a logical 'AND'. */ -["metric_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["metric_bool_exp"] | undefined, - _or?: Array | undefined, - connection?: GraphQLTypes["connection_bool_exp"] | undefined, - connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - ensuedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - text?: GraphQLTypes["String_comparison_exp"] | undefined, - type?: GraphQLTypes["String_comparison_exp"] | undefined, - uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, - unitId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - value?: GraphQLTypes["float8_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "metric" */ -["metric_constraint"]: metric_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["metric_delete_at_path_input"]: { - metadata?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["metric_delete_elem_input"]: { - metadata?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["metric_delete_key_input"]: { - metadata?: string | undefined -}; - /** input type for incrementing numeric columns in table "metric" */ -["metric_inc_input"]: { - value?: GraphQLTypes["float8"] | undefined -}; - /** input type for inserting data into table "metric" */ -["metric_insert_input"]: { - connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - ensuedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - text?: string | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - value?: GraphQLTypes["float8"] | undefined -}; - /** aggregate max on columns */ -["metric_max_fields"]: { - __typename: "metric_max_fields", - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - ensuedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - text?: string | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - value?: GraphQLTypes["float8"] | undefined -}; - /** order by max() on columns of table "metric" */ -["metric_max_order_by"]: { - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - ensuedAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - text?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined, - value?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["metric_min_fields"]: { - __typename: "metric_min_fields", - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - ensuedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - text?: string | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - value?: GraphQLTypes["float8"] | undefined -}; - /** order by min() on columns of table "metric" */ -["metric_min_order_by"]: { - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - ensuedAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - text?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined, - value?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "metric" */ -["metric_mutation_response"]: { - __typename: "metric_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "metric" */ -["metric_on_conflict"]: { - constraint: GraphQLTypes["metric_constraint"], - update_columns: Array, - where?: GraphQLTypes["metric_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "metric". */ -["metric_order_by"]: { - connection?: GraphQLTypes["connection_order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - ensuedAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - metadata?: GraphQLTypes["order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - text?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined, - value?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: metric */ -["metric_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["metric_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "metric" */ -["metric_select_column"]: metric_select_column; - /** input type for updating data in table "metric" */ -["metric_set_input"]: { - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - ensuedAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - text?: string | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - value?: GraphQLTypes["float8"] | undefined -}; - /** aggregate stddev on columns */ -["metric_stddev_fields"]: { - __typename: "metric_stddev_fields", - value?: number | undefined -}; - /** order by stddev() on columns of table "metric" */ -["metric_stddev_order_by"]: { - value?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate stddev_pop on columns */ -["metric_stddev_pop_fields"]: { - __typename: "metric_stddev_pop_fields", - value?: number | undefined -}; - /** order by stddev_pop() on columns of table "metric" */ -["metric_stddev_pop_order_by"]: { - value?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate stddev_samp on columns */ -["metric_stddev_samp_fields"]: { - __typename: "metric_stddev_samp_fields", - value?: number | undefined -}; - /** order by stddev_samp() on columns of table "metric" */ -["metric_stddev_samp_order_by"]: { - value?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate sum on columns */ -["metric_sum_fields"]: { - __typename: "metric_sum_fields", - value?: GraphQLTypes["float8"] | undefined -}; - /** order by sum() on columns of table "metric" */ -["metric_sum_order_by"]: { - value?: GraphQLTypes["order_by"] | undefined -}; - /** update columns of table "metric" */ -["metric_update_column"]: metric_update_column; - /** aggregate var_pop on columns */ -["metric_var_pop_fields"]: { - __typename: "metric_var_pop_fields", - value?: number | undefined -}; - /** order by var_pop() on columns of table "metric" */ -["metric_var_pop_order_by"]: { - value?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate var_samp on columns */ -["metric_var_samp_fields"]: { - __typename: "metric_var_samp_fields", - value?: number | undefined -}; - /** order by var_samp() on columns of table "metric" */ -["metric_var_samp_order_by"]: { - value?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate variance on columns */ -["metric_variance_fields"]: { - __typename: "metric_variance_fields", - value?: number | undefined -}; - /** order by variance() on columns of table "metric" */ -["metric_variance_order_by"]: { - value?: GraphQLTypes["order_by"] | undefined -}; - /** mutation root */ -["mutation_root"]: { - __typename: "mutation_root", - /** delete single row from the table: "booking" */ - deleteBooking?: GraphQLTypes["booking"] | undefined, - /** delete single row from the table: "booking_status" */ - deleteBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** delete data from the table: "booking_status" */ - deleteBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, - /** delete data from the table: "booking" */ - deleteBookings?: GraphQLTypes["booking_mutation_response"] | undefined, - /** delete single row from the table: "classification" */ - deleteClassification?: GraphQLTypes["classification"] | undefined, - /** delete data from the table: "classification" */ - deleteClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, - /** delete single row from the table: "connection" */ - deleteConnection?: GraphQLTypes["connection"] | undefined, - /** delete data from the table: "connection" */ - deleteConnections?: GraphQLTypes["connection_mutation_response"] | undefined, - /** delete data from the table: "currency" */ - deleteCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, - /** delete single row from the table: "currency" */ - deleteCurrency?: GraphQLTypes["currency"] | undefined, - /** delete data from the table: "entity" */ - deleteEntities?: GraphQLTypes["entity_mutation_response"] | undefined, - /** delete single row from the table: "entity" */ - deleteEntity?: GraphQLTypes["entity"] | undefined, - /** delete single row from the table: "entity_status" */ - deleteEntityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** delete data from the table: "entity_status" */ - deleteEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, - /** delete single row from the table: "integration" */ - deleteIntegration?: GraphQLTypes["integration"] | undefined, - /** delete single row from the table: "integration_type" */ - deleteIntegrationType?: GraphQLTypes["integrationType"] | undefined, - /** delete data from the table: "integration_type" */ - deleteIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, - /** delete data from the table: "integration" */ - deleteIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, - /** delete single row from the table: "issue" */ - deleteIssue?: GraphQLTypes["issue"] | undefined, - /** delete data from the table: "issue" */ - deleteIssues?: GraphQLTypes["issue_mutation_response"] | undefined, - /** delete single row from the table: "job" */ - deleteJob?: GraphQLTypes["job"] | undefined, - /** delete single row from the table: "job_method" */ - deleteJobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** delete data from the table: "job_method" */ - deleteJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, - /** delete single row from the table: "job_status" */ - deleteJobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** delete data from the table: "job_status" */ - deleteJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, - /** delete data from the table: "job" */ - deleteJobs?: GraphQLTypes["job_mutation_response"] | undefined, - /** delete single row from the table: "line" */ - deleteLine?: GraphQLTypes["line"] | undefined, - /** delete data from the table: "line" */ - deleteLines?: GraphQLTypes["line_mutation_response"] | undefined, - /** delete single row from the table: "metric" */ - deleteMetric?: GraphQLTypes["metric"] | undefined, - /** delete data from the table: "metric" */ - deleteMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, - /** delete single row from the table: "normalized_type" */ - deleteNormalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** delete data from the table: "normalized_type" */ - deleteNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, - /** delete single row from the table: "payment" */ - deletePayment?: GraphQLTypes["payment"] | undefined, - /** delete single row from the table: "payment_status" */ - deletePaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** delete data from the table: "payment_status" */ - deletePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, - /** delete single row from the table: "payment_type" */ - deletePaymentType?: GraphQLTypes["paymentType"] | undefined, - /** delete data from the table: "payment_type" */ - deletePaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, - /** delete data from the table: "payment" */ - deletePayments?: GraphQLTypes["payment_mutation_response"] | undefined, - /** delete single row from the table: "subclassification" */ - deleteSubclassification?: GraphQLTypes["subclassification"] | undefined, - /** delete data from the table: "subclassification" */ - deleteSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, - /** delete single row from the table: "tag" */ - deleteTag?: GraphQLTypes["tag"] | undefined, - /** delete data from the table: "tag" */ - deleteTags?: GraphQLTypes["tag_mutation_response"] | undefined, - /** delete single row from the table: "team" */ - deleteTeam?: GraphQLTypes["team"] | undefined, - /** delete single row from the table: "team_user" */ - deleteTeamUser?: GraphQLTypes["teamUser"] | undefined, - /** delete data from the table: "team_user" */ - deleteTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, - /** delete data from the table: "team" */ - deleteTeams?: GraphQLTypes["team_mutation_response"] | undefined, - /** delete single row from the table: "unit" */ - deleteUnit?: GraphQLTypes["unit"] | undefined, - /** delete data from the table: "unit" */ - deleteUnits?: GraphQLTypes["unit_mutation_response"] | undefined, - /** delete single row from the table: "user" */ - deleteUser?: GraphQLTypes["user"] | undefined, - /** delete single row from the table: "user_status" */ - deleteUserStatus?: GraphQLTypes["userStatus"] | undefined, - /** delete data from the table: "user_status" */ - deleteUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, - /** delete data from the table: "user" */ - deleteUsers?: GraphQLTypes["user_mutation_response"] | undefined, - /** delete single row from the table: "webhook" */ - deleteWebhook?: GraphQLTypes["webhook"] | undefined, - /** delete data from the table: "webhook" */ - deleteWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, - /** delete data from the table: "booking_channel" */ - delete_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, - /** delete single row from the table: "booking_channel" */ - delete_booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, - /** insert a single row into the table: "booking" */ - insertBooking?: GraphQLTypes["booking"] | undefined, - /** insert a single row into the table: "booking_status" */ - insertBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** insert data into the table: "booking_status" */ - insertBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, - /** insert data into the table: "booking" */ - insertBookings?: GraphQLTypes["booking_mutation_response"] | undefined, - /** insert a single row into the table: "classification" */ - insertClassification?: GraphQLTypes["classification"] | undefined, - /** insert data into the table: "classification" */ - insertClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, - /** insert a single row into the table: "connection" */ - insertConnection?: GraphQLTypes["connection"] | undefined, - /** insert data into the table: "connection" */ - insertConnections?: GraphQLTypes["connection_mutation_response"] | undefined, - /** insert data into the table: "currency" */ - insertCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, - /** insert a single row into the table: "currency" */ - insertCurrency?: GraphQLTypes["currency"] | undefined, - /** insert data into the table: "entity" */ - insertEntities?: GraphQLTypes["entity_mutation_response"] | undefined, - /** insert a single row into the table: "entity" */ - insertEntity?: GraphQLTypes["entity"] | undefined, - /** insert a single row into the table: "entity_status" */ - insertEntityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** insert data into the table: "entity_status" */ - insertEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, - /** insert a single row into the table: "integration" */ - insertIntegration?: GraphQLTypes["integration"] | undefined, - /** insert a single row into the table: "integration_type" */ - insertIntegrationType?: GraphQLTypes["integrationType"] | undefined, - /** insert data into the table: "integration_type" */ - insertIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, - /** insert data into the table: "integration" */ - insertIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, - /** insert a single row into the table: "issue" */ - insertIssue?: GraphQLTypes["issue"] | undefined, - /** insert data into the table: "issue" */ - insertIssues?: GraphQLTypes["issue_mutation_response"] | undefined, - /** insert a single row into the table: "job" */ - insertJob?: GraphQLTypes["job"] | undefined, - /** insert a single row into the table: "job_method" */ - insertJobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** insert data into the table: "job_method" */ - insertJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, - /** insert a single row into the table: "job_status" */ - insertJobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** insert data into the table: "job_status" */ - insertJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, - /** insert data into the table: "job" */ - insertJobs?: GraphQLTypes["job_mutation_response"] | undefined, - /** insert a single row into the table: "line" */ - insertLine?: GraphQLTypes["line"] | undefined, - /** insert data into the table: "line" */ - insertLines?: GraphQLTypes["line_mutation_response"] | undefined, - /** insert a single row into the table: "metric" */ - insertMetric?: GraphQLTypes["metric"] | undefined, - /** insert data into the table: "metric" */ - insertMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, - /** insert a single row into the table: "normalized_type" */ - insertNormalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** insert data into the table: "normalized_type" */ - insertNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, - /** insert a single row into the table: "payment" */ - insertPayment?: GraphQLTypes["payment"] | undefined, - /** insert a single row into the table: "payment_status" */ - insertPaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** insert data into the table: "payment_status" */ - insertPaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, - /** insert a single row into the table: "payment_type" */ - insertPaymentType?: GraphQLTypes["paymentType"] | undefined, - /** insert data into the table: "payment_type" */ - insertPaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, - /** insert data into the table: "payment" */ - insertPayments?: GraphQLTypes["payment_mutation_response"] | undefined, - /** insert a single row into the table: "subclassification" */ - insertSubclassification?: GraphQLTypes["subclassification"] | undefined, - /** insert data into the table: "subclassification" */ - insertSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, - /** insert a single row into the table: "tag" */ - insertTag?: GraphQLTypes["tag"] | undefined, - /** insert data into the table: "tag" */ - insertTags?: GraphQLTypes["tag_mutation_response"] | undefined, - /** insert a single row into the table: "team" */ - insertTeam?: GraphQLTypes["team"] | undefined, - /** insert a single row into the table: "team_user" */ - insertTeamUser?: GraphQLTypes["teamUser"] | undefined, - /** insert data into the table: "team_user" */ - insertTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, - /** insert data into the table: "team" */ - insertTeams?: GraphQLTypes["team_mutation_response"] | undefined, - /** insert a single row into the table: "unit" */ - insertUnit?: GraphQLTypes["unit"] | undefined, - /** insert data into the table: "unit" */ - insertUnits?: GraphQLTypes["unit_mutation_response"] | undefined, - /** insert a single row into the table: "user" */ - insertUser?: GraphQLTypes["user"] | undefined, - /** insert a single row into the table: "user_status" */ - insertUserStatus?: GraphQLTypes["userStatus"] | undefined, - /** insert data into the table: "user_status" */ - insertUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, - /** insert data into the table: "user" */ - insertUsers?: GraphQLTypes["user_mutation_response"] | undefined, - /** insert a single row into the table: "webhook" */ - insertWebhook?: GraphQLTypes["webhook"] | undefined, - /** insert data into the table: "webhook" */ - insertWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, - /** insert data into the table: "booking_channel" */ - insert_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, - /** insert a single row into the table: "booking_channel" */ - insert_booking_channel_one?: GraphQLTypes["booking_channel"] | undefined, - /** update single row of the table: "booking" */ - updateBooking?: GraphQLTypes["booking"] | undefined, - /** update single row of the table: "booking_status" */ - updateBookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** update data of the table: "booking_status" */ - updateBookingStatuses?: GraphQLTypes["bookingStatus_mutation_response"] | undefined, - /** update data of the table: "booking" */ - updateBookings?: GraphQLTypes["booking_mutation_response"] | undefined, - /** update single row of the table: "classification" */ - updateClassification?: GraphQLTypes["classification"] | undefined, - /** update data of the table: "classification" */ - updateClassifications?: GraphQLTypes["classification_mutation_response"] | undefined, - /** update single row of the table: "connection" */ - updateConnection?: GraphQLTypes["connection"] | undefined, - /** update data of the table: "connection" */ - updateConnections?: GraphQLTypes["connection_mutation_response"] | undefined, - /** update data of the table: "currency" */ - updateCurrencies?: GraphQLTypes["currency_mutation_response"] | undefined, - /** update single row of the table: "currency" */ - updateCurrency?: GraphQLTypes["currency"] | undefined, - /** update data of the table: "entity" */ - updateEntities?: GraphQLTypes["entity_mutation_response"] | undefined, - /** update single row of the table: "entity" */ - updateEntity?: GraphQLTypes["entity"] | undefined, - /** update single row of the table: "entity_status" */ - updateEntityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** update data of the table: "entity_status" */ - updateEntityStatuses?: GraphQLTypes["entityStatus_mutation_response"] | undefined, - /** update single row of the table: "integration" */ - updateIntegration?: GraphQLTypes["integration"] | undefined, - /** update single row of the table: "integration_type" */ - updateIntegrationType?: GraphQLTypes["integrationType"] | undefined, - /** update data of the table: "integration_type" */ - updateIntegrationTypes?: GraphQLTypes["integrationType_mutation_response"] | undefined, - /** update data of the table: "integration" */ - updateIntegrations?: GraphQLTypes["integration_mutation_response"] | undefined, - /** update single row of the table: "issue" */ - updateIssue?: GraphQLTypes["issue"] | undefined, - /** update data of the table: "issue" */ - updateIssues?: GraphQLTypes["issue_mutation_response"] | undefined, - /** update single row of the table: "job" */ - updateJob?: GraphQLTypes["job"] | undefined, - /** update single row of the table: "job_method" */ - updateJobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** update data of the table: "job_method" */ - updateJobMethods?: GraphQLTypes["jobMethod_mutation_response"] | undefined, - /** update single row of the table: "job_status" */ - updateJobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** update data of the table: "job_status" */ - updateJobStatuses?: GraphQLTypes["jobStatus_mutation_response"] | undefined, - /** update data of the table: "job" */ - updateJobs?: GraphQLTypes["job_mutation_response"] | undefined, - /** update single row of the table: "line" */ - updateLine?: GraphQLTypes["line"] | undefined, - /** update data of the table: "line" */ - updateLines?: GraphQLTypes["line_mutation_response"] | undefined, - /** update single row of the table: "metric" */ - updateMetric?: GraphQLTypes["metric"] | undefined, - /** update data of the table: "metric" */ - updateMetrics?: GraphQLTypes["metric_mutation_response"] | undefined, - /** update single row of the table: "normalized_type" */ - updateNormalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** update data of the table: "normalized_type" */ - updateNormalizedTypes?: GraphQLTypes["normalizedType_mutation_response"] | undefined, - /** update single row of the table: "payment" */ - updatePayment?: GraphQLTypes["payment"] | undefined, - /** update single row of the table: "payment_status" */ - updatePaymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** update data of the table: "payment_status" */ - updatePaymentStatuses?: GraphQLTypes["paymentStatus_mutation_response"] | undefined, - /** update single row of the table: "payment_type" */ - updatePaymentType?: GraphQLTypes["paymentType"] | undefined, - /** update data of the table: "payment_type" */ - updatePaymentTypes?: GraphQLTypes["paymentType_mutation_response"] | undefined, - /** update data of the table: "payment" */ - updatePayments?: GraphQLTypes["payment_mutation_response"] | undefined, - /** update single row of the table: "subclassification" */ - updateSubclassification?: GraphQLTypes["subclassification"] | undefined, - /** update data of the table: "subclassification" */ - updateSubclassifications?: GraphQLTypes["subclassification_mutation_response"] | undefined, - /** update single row of the table: "tag" */ - updateTag?: GraphQLTypes["tag"] | undefined, - /** update data of the table: "tag" */ - updateTags?: GraphQLTypes["tag_mutation_response"] | undefined, - /** update single row of the table: "team" */ - updateTeam?: GraphQLTypes["team"] | undefined, - /** update single row of the table: "team_user" */ - updateTeamUser?: GraphQLTypes["teamUser"] | undefined, - /** update data of the table: "team_user" */ - updateTeamUsers?: GraphQLTypes["teamUser_mutation_response"] | undefined, - /** update data of the table: "team" */ - updateTeams?: GraphQLTypes["team_mutation_response"] | undefined, - /** update single row of the table: "unit" */ - updateUnit?: GraphQLTypes["unit"] | undefined, - /** update data of the table: "unit" */ - updateUnits?: GraphQLTypes["unit_mutation_response"] | undefined, - /** update single row of the table: "user" */ - updateUser?: GraphQLTypes["user"] | undefined, - /** update single row of the table: "user_status" */ - updateUserStatus?: GraphQLTypes["userStatus"] | undefined, - /** update data of the table: "user_status" */ - updateUserStatuses?: GraphQLTypes["userStatus_mutation_response"] | undefined, - /** update data of the table: "user" */ - updateUsers?: GraphQLTypes["user_mutation_response"] | undefined, - /** update single row of the table: "webhook" */ - updateWebhook?: GraphQLTypes["webhook"] | undefined, - /** update data of the table: "webhook" */ - updateWebhooks?: GraphQLTypes["webhook_mutation_response"] | undefined, - /** update data of the table: "booking_channel" */ - update_booking_channel?: GraphQLTypes["booking_channel_mutation_response"] | undefined, - /** update single row of the table: "booking_channel" */ - update_booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined -}; - ["normalized_type_enum"]: normalized_type_enum; - /** Boolean expression to compare columns of type "normalized_type_enum". All fields are combined with logical 'AND'. */ -["normalized_type_enum_comparison_exp"]: { - _eq?: GraphQLTypes["normalized_type_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["normalized_type_enum"] | undefined, - _nin?: Array | undefined -}; - /** columns and relationships of "normalized_type" */ -["normalizedType"]: { - __typename: "normalizedType", - name: string -}; - /** aggregated selection of "normalized_type" */ -["normalizedType_aggregate"]: { - __typename: "normalizedType_aggregate", - aggregate?: GraphQLTypes["normalizedType_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "normalized_type" */ -["normalizedType_aggregate_fields"]: { - __typename: "normalizedType_aggregate_fields", - count: number, - max?: GraphQLTypes["normalizedType_max_fields"] | undefined, - min?: GraphQLTypes["normalizedType_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "normalized_type". All fields are combined with a logical 'AND'. */ -["normalizedType_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["normalizedType_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "normalized_type" */ -["normalizedType_constraint"]: normalizedType_constraint; - /** input type for inserting data into table "normalized_type" */ -["normalizedType_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["normalizedType_max_fields"]: { - __typename: "normalizedType_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["normalizedType_min_fields"]: { - __typename: "normalizedType_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "normalized_type" */ -["normalizedType_mutation_response"]: { - __typename: "normalizedType_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "normalized_type" */ -["normalizedType_on_conflict"]: { - constraint: GraphQLTypes["normalizedType_constraint"], - update_columns: Array, - where?: GraphQLTypes["normalizedType_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "normalized_type". */ -["normalizedType_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: normalizedType */ -["normalizedType_pk_columns_input"]: { - name: string -}; - /** select columns of table "normalized_type" */ -["normalizedType_select_column"]: normalizedType_select_column; - /** input type for updating data in table "normalized_type" */ -["normalizedType_set_input"]: { - name?: string | undefined -}; - /** update columns of table "normalized_type" */ -["normalizedType_update_column"]: normalizedType_update_column; - ["numeric"]: any; - /** Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. */ -["numeric_comparison_exp"]: { - _eq?: GraphQLTypes["numeric"] | undefined, - _gt?: GraphQLTypes["numeric"] | undefined, - _gte?: GraphQLTypes["numeric"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _lt?: GraphQLTypes["numeric"] | undefined, - _lte?: GraphQLTypes["numeric"] | undefined, - _neq?: GraphQLTypes["numeric"] | undefined, - _nin?: Array | undefined -}; - /** column ordering options */ -["order_by"]: order_by; - /** columns and relationships of "payment" */ -["payment"]: { - __typename: "payment", - arrivesAt?: GraphQLTypes["timestamptz"] | undefined, - centTotal?: number | undefined, - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - currency?: GraphQLTypes["currency_enum"] | undefined, - description?: string | undefined, - /** An object relationship */ - entity?: GraphQLTypes["entity"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id: GraphQLTypes["uuid"], - /** An array relationship */ - lines: Array, - /** An aggregate relationship */ - lines_aggregate: GraphQLTypes["line_aggregate"], - metadata?: GraphQLTypes["jsonb"] | undefined, - paidAt?: GraphQLTypes["timestamptz"] | undefined, - status?: GraphQLTypes["payment_status_enum"] | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "payment" */ -["payment_aggregate"]: { - __typename: "payment_aggregate", - aggregate?: GraphQLTypes["payment_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "payment" */ -["payment_aggregate_fields"]: { - __typename: "payment_aggregate_fields", - avg?: GraphQLTypes["payment_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["payment_max_fields"] | undefined, - min?: GraphQLTypes["payment_min_fields"] | undefined, - stddev?: GraphQLTypes["payment_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["payment_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["payment_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["payment_sum_fields"] | undefined, - var_pop?: GraphQLTypes["payment_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["payment_var_samp_fields"] | undefined, - variance?: GraphQLTypes["payment_variance_fields"] | undefined -}; - /** order by aggregate values of table "payment" */ -["payment_aggregate_order_by"]: { - avg?: GraphQLTypes["payment_avg_order_by"] | undefined, - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["payment_max_order_by"] | undefined, - min?: GraphQLTypes["payment_min_order_by"] | undefined, - stddev?: GraphQLTypes["payment_stddev_order_by"] | undefined, - stddev_pop?: GraphQLTypes["payment_stddev_pop_order_by"] | undefined, - stddev_samp?: GraphQLTypes["payment_stddev_samp_order_by"] | undefined, - sum?: GraphQLTypes["payment_sum_order_by"] | undefined, - var_pop?: GraphQLTypes["payment_var_pop_order_by"] | undefined, - var_samp?: GraphQLTypes["payment_var_samp_order_by"] | undefined, - variance?: GraphQLTypes["payment_variance_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["payment_append_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "payment" */ -["payment_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["payment_on_conflict"] | undefined -}; - /** aggregate avg on columns */ -["payment_avg_fields"]: { - __typename: "payment_avg_fields", - centTotal?: number | undefined -}; - /** order by avg() on columns of table "payment" */ -["payment_avg_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined -}; - /** Boolean expression to filter rows from the table "payment". All fields are combined with a logical 'AND'. */ -["payment_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["payment_bool_exp"] | undefined, - _or?: Array | undefined, - arrivesAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - centTotal?: GraphQLTypes["Int_comparison_exp"] | undefined, - connection?: GraphQLTypes["connection_bool_exp"] | undefined, - connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - currency?: GraphQLTypes["currency_enum_comparison_exp"] | undefined, - description?: GraphQLTypes["String_comparison_exp"] | undefined, - entity?: GraphQLTypes["entity_bool_exp"] | undefined, - entityId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - lines?: GraphQLTypes["line_bool_exp"] | undefined, - metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - paidAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - status?: GraphQLTypes["payment_status_enum_comparison_exp"] | undefined, - tags?: GraphQLTypes["tag_bool_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - type?: GraphQLTypes["String_comparison_exp"] | undefined, - uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "payment" */ -["payment_constraint"]: payment_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["payment_delete_at_path_input"]: { - metadata?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["payment_delete_elem_input"]: { - metadata?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["payment_delete_key_input"]: { - metadata?: string | undefined -}; - /** input type for incrementing numeric columns in table "payment" */ -["payment_inc_input"]: { - centTotal?: number | undefined -}; - /** input type for inserting data into table "payment" */ -["payment_insert_input"]: { - arrivesAt?: GraphQLTypes["timestamptz"] | undefined, - centTotal?: number | undefined, - connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - currency?: GraphQLTypes["currency_enum"] | undefined, - description?: string | undefined, - entity?: GraphQLTypes["entity_obj_rel_insert_input"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - lines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - paidAt?: GraphQLTypes["timestamptz"] | undefined, - status?: GraphQLTypes["payment_status_enum"] | undefined, - tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate max on columns */ -["payment_max_fields"]: { - __typename: "payment_max_fields", - arrivesAt?: GraphQLTypes["timestamptz"] | undefined, - centTotal?: number | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - paidAt?: GraphQLTypes["timestamptz"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "payment" */ -["payment_max_order_by"]: { - arrivesAt?: GraphQLTypes["order_by"] | undefined, - centTotal?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - description?: GraphQLTypes["order_by"] | undefined, - entityId?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - paidAt?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["payment_min_fields"]: { - __typename: "payment_min_fields", - arrivesAt?: GraphQLTypes["timestamptz"] | undefined, - centTotal?: number | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - description?: string | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - paidAt?: GraphQLTypes["timestamptz"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "payment" */ -["payment_min_order_by"]: { - arrivesAt?: GraphQLTypes["order_by"] | undefined, - centTotal?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - description?: GraphQLTypes["order_by"] | undefined, - entityId?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - paidAt?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "payment" */ -["payment_mutation_response"]: { - __typename: "payment_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "payment" */ -["payment_obj_rel_insert_input"]: { - data: GraphQLTypes["payment_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["payment_on_conflict"] | undefined -}; - /** on conflict condition type for table "payment" */ -["payment_on_conflict"]: { - constraint: GraphQLTypes["payment_constraint"], - update_columns: Array, - where?: GraphQLTypes["payment_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "payment". */ -["payment_order_by"]: { - arrivesAt?: GraphQLTypes["order_by"] | undefined, - centTotal?: GraphQLTypes["order_by"] | undefined, - connection?: GraphQLTypes["connection_order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - currency?: GraphQLTypes["order_by"] | undefined, - description?: GraphQLTypes["order_by"] | undefined, - entity?: GraphQLTypes["entity_order_by"] | undefined, - entityId?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - lines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, - metadata?: GraphQLTypes["order_by"] | undefined, - paidAt?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: payment */ -["payment_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["payment_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "payment" */ -["payment_select_column"]: payment_select_column; - /** input type for updating data in table "payment" */ -["payment_set_input"]: { - arrivesAt?: GraphQLTypes["timestamptz"] | undefined, - centTotal?: number | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - currency?: GraphQLTypes["currency_enum"] | undefined, - description?: string | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - paidAt?: GraphQLTypes["timestamptz"] | undefined, - status?: GraphQLTypes["payment_status_enum"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - ["payment_status_enum"]: payment_status_enum; - /** Boolean expression to compare columns of type "payment_status_enum". All fields are combined with logical 'AND'. */ -["payment_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["payment_status_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["payment_status_enum"] | undefined, - _nin?: Array | undefined -}; - /** aggregate stddev on columns */ -["payment_stddev_fields"]: { - __typename: "payment_stddev_fields", - centTotal?: number | undefined -}; - /** order by stddev() on columns of table "payment" */ -["payment_stddev_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate stddev_pop on columns */ -["payment_stddev_pop_fields"]: { - __typename: "payment_stddev_pop_fields", - centTotal?: number | undefined -}; - /** order by stddev_pop() on columns of table "payment" */ -["payment_stddev_pop_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate stddev_samp on columns */ -["payment_stddev_samp_fields"]: { - __typename: "payment_stddev_samp_fields", - centTotal?: number | undefined -}; - /** order by stddev_samp() on columns of table "payment" */ -["payment_stddev_samp_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate sum on columns */ -["payment_sum_fields"]: { - __typename: "payment_sum_fields", - centTotal?: number | undefined -}; - /** order by sum() on columns of table "payment" */ -["payment_sum_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined -}; - /** update columns of table "payment" */ -["payment_update_column"]: payment_update_column; - /** aggregate var_pop on columns */ -["payment_var_pop_fields"]: { - __typename: "payment_var_pop_fields", - centTotal?: number | undefined -}; - /** order by var_pop() on columns of table "payment" */ -["payment_var_pop_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate var_samp on columns */ -["payment_var_samp_fields"]: { - __typename: "payment_var_samp_fields", - centTotal?: number | undefined -}; - /** order by var_samp() on columns of table "payment" */ -["payment_var_samp_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate variance on columns */ -["payment_variance_fields"]: { - __typename: "payment_variance_fields", - centTotal?: number | undefined -}; - /** order by variance() on columns of table "payment" */ -["payment_variance_order_by"]: { - centTotal?: GraphQLTypes["order_by"] | undefined -}; - /** columns and relationships of "payment_status" */ -["paymentStatus"]: { - __typename: "paymentStatus", - name: string -}; - /** aggregated selection of "payment_status" */ -["paymentStatus_aggregate"]: { - __typename: "paymentStatus_aggregate", - aggregate?: GraphQLTypes["paymentStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "payment_status" */ -["paymentStatus_aggregate_fields"]: { - __typename: "paymentStatus_aggregate_fields", - count: number, - max?: GraphQLTypes["paymentStatus_max_fields"] | undefined, - min?: GraphQLTypes["paymentStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "payment_status". All fields are combined with a logical 'AND'. */ -["paymentStatus_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["paymentStatus_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "payment_status" */ -["paymentStatus_constraint"]: paymentStatus_constraint; - /** input type for inserting data into table "payment_status" */ -["paymentStatus_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["paymentStatus_max_fields"]: { - __typename: "paymentStatus_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["paymentStatus_min_fields"]: { - __typename: "paymentStatus_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "payment_status" */ -["paymentStatus_mutation_response"]: { - __typename: "paymentStatus_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "payment_status" */ -["paymentStatus_on_conflict"]: { - constraint: GraphQLTypes["paymentStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["paymentStatus_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "payment_status". */ -["paymentStatus_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: paymentStatus */ -["paymentStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "payment_status" */ -["paymentStatus_select_column"]: paymentStatus_select_column; - /** input type for updating data in table "payment_status" */ -["paymentStatus_set_input"]: { - name?: string | undefined -}; - /** update columns of table "payment_status" */ -["paymentStatus_update_column"]: paymentStatus_update_column; - /** columns and relationships of "payment_type" */ -["paymentType"]: { - __typename: "paymentType", - name: string -}; - /** aggregated selection of "payment_type" */ -["paymentType_aggregate"]: { - __typename: "paymentType_aggregate", - aggregate?: GraphQLTypes["paymentType_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "payment_type" */ -["paymentType_aggregate_fields"]: { - __typename: "paymentType_aggregate_fields", - count: number, - max?: GraphQLTypes["paymentType_max_fields"] | undefined, - min?: GraphQLTypes["paymentType_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "payment_type". All fields are combined with a logical 'AND'. */ -["paymentType_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["paymentType_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "payment_type" */ -["paymentType_constraint"]: paymentType_constraint; - /** input type for inserting data into table "payment_type" */ -["paymentType_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["paymentType_max_fields"]: { - __typename: "paymentType_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["paymentType_min_fields"]: { - __typename: "paymentType_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "payment_type" */ -["paymentType_mutation_response"]: { - __typename: "paymentType_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "payment_type" */ -["paymentType_on_conflict"]: { - constraint: GraphQLTypes["paymentType_constraint"], - update_columns: Array, - where?: GraphQLTypes["paymentType_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "payment_type". */ -["paymentType_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: paymentType */ -["paymentType_pk_columns_input"]: { - name: string -}; - /** select columns of table "payment_type" */ -["paymentType_select_column"]: paymentType_select_column; - /** input type for updating data in table "payment_type" */ -["paymentType_set_input"]: { - name?: string | undefined -}; - /** update columns of table "payment_type" */ -["paymentType_update_column"]: paymentType_update_column; - ["query_root"]: { - __typename: "query_root", - /** fetch aggregated fields from the table: "booking_status" */ - aggregateBookingStatuses: GraphQLTypes["bookingStatus_aggregate"], - /** fetch aggregated fields from the table: "booking" */ - aggregateBookings: GraphQLTypes["booking_aggregate"], - /** fetch aggregated fields from the table: "classification" */ - aggregateClassifications: GraphQLTypes["classification_aggregate"], - /** fetch aggregated fields from the table: "connection" */ - aggregateConnections: GraphQLTypes["connection_aggregate"], - /** fetch aggregated fields from the table: "currency" */ - aggregateCurrencies: GraphQLTypes["currency_aggregate"], - /** fetch aggregated fields from the table: "entity" */ - aggregateEntities: GraphQLTypes["entity_aggregate"], - /** fetch aggregated fields from the table: "entity_status" */ - aggregateEntityStatuses: GraphQLTypes["entityStatus_aggregate"], - /** fetch aggregated fields from the table: "integration_type" */ - aggregateIntegrationTypes: GraphQLTypes["integrationType_aggregate"], - /** fetch aggregated fields from the table: "integration" */ - aggregateIntegrations: GraphQLTypes["integration_aggregate"], - /** fetch aggregated fields from the table: "issue" */ - aggregateIssues: GraphQLTypes["issue_aggregate"], - /** fetch aggregated fields from the table: "job_method" */ - aggregateJobMethods: GraphQLTypes["jobMethod_aggregate"], - /** fetch aggregated fields from the table: "job_status" */ - aggregateJobStatuses: GraphQLTypes["jobStatus_aggregate"], - /** fetch aggregated fields from the table: "job" */ - aggregateJobs: GraphQLTypes["job_aggregate"], - /** fetch aggregated fields from the table: "line" */ - aggregateLines: GraphQLTypes["line_aggregate"], - /** fetch aggregated fields from the table: "metric" */ - aggregateMetrics: GraphQLTypes["metric_aggregate"], - /** fetch aggregated fields from the table: "normalized_type" */ - aggregateNormalizedTypes: GraphQLTypes["normalizedType_aggregate"], - /** fetch aggregated fields from the table: "payment_status" */ - aggregatePaymentStatuses: GraphQLTypes["paymentStatus_aggregate"], - /** fetch aggregated fields from the table: "payment_type" */ - aggregatePaymentTypes: GraphQLTypes["paymentType_aggregate"], - /** fetch aggregated fields from the table: "payment" */ - aggregatePayments: GraphQLTypes["payment_aggregate"], - /** fetch aggregated fields from the table: "subclassification" */ - aggregateSubclassifications: GraphQLTypes["subclassification_aggregate"], - /** fetch aggregated fields from the table: "tag" */ - aggregateTags: GraphQLTypes["tag_aggregate"], - /** fetch aggregated fields from the table: "team_user" */ - aggregateTeamUsers: GraphQLTypes["teamUser_aggregate"], - /** fetch aggregated fields from the table: "team" */ - aggregateTeams: GraphQLTypes["team_aggregate"], - /** fetch aggregated fields from the table: "unit" */ - aggregateUnits: GraphQLTypes["unit_aggregate"], - /** fetch aggregated fields from the table: "user_status" */ - aggregateUserStatuses: GraphQLTypes["userStatus_aggregate"], - /** fetch aggregated fields from the table: "user" */ - aggregateUsers: GraphQLTypes["user_aggregate"], - /** fetch aggregated fields from the table: "webhook" */ - aggregateWebhooks: GraphQLTypes["webhook_aggregate"], - /** fetch data from the table: "booking" using primary key columns */ - booking?: GraphQLTypes["booking"] | undefined, - /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** fetch data from the table: "booking_status" */ - bookingStatuses: Array, - /** fetch data from the table: "booking_channel" */ - booking_channel: Array, - /** fetch aggregated fields from the table: "booking_channel" */ - booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], - /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, - /** An array relationship */ - bookings: Array, - /** fetch data from the table: "classification" using primary key columns */ - classification?: GraphQLTypes["classification"] | undefined, - /** fetch data from the table: "classification" */ - classifications: Array, - /** fetch data from the table: "connection" using primary key columns */ - connection?: GraphQLTypes["connection"] | undefined, - /** An array relationship */ - connections: Array, - /** fetch data from the table: "currency" */ - currencies: Array, - /** fetch data from the table: "currency" using primary key columns */ - currency?: GraphQLTypes["currency"] | undefined, - /** An array relationship */ - entities: Array, - /** fetch data from the table: "entity" using primary key columns */ - entity?: GraphQLTypes["entity"] | undefined, - /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** fetch data from the table: "entity_status" */ - entityStatuses: Array, - /** fetch data from the table: "integration" using primary key columns */ - integration?: GraphQLTypes["integration"] | undefined, - /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?: GraphQLTypes["integrationType"] | undefined, - /** fetch data from the table: "integration_type" */ - integrationTypes: Array, - /** An array relationship */ - integrations: Array, - /** fetch data from the table: "issue" using primary key columns */ - issue?: GraphQLTypes["issue"] | undefined, - /** An array relationship */ - issues: Array, - /** fetch data from the table: "job" using primary key columns */ - job?: GraphQLTypes["job"] | undefined, - /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** fetch data from the table: "job_method" */ - jobMethods: Array, - /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** fetch data from the table: "job_status" */ - jobStatuses: Array, - /** An array relationship */ - jobs: Array, - /** fetch data from the table: "line" using primary key columns */ - line?: GraphQLTypes["line"] | undefined, - /** An array relationship */ - lines: Array, - /** fetch data from the table: "metric" using primary key columns */ - metric?: GraphQLTypes["metric"] | undefined, - /** An array relationship */ - metrics: Array, - /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** fetch data from the table: "normalized_type" */ - normalizedTypes: Array, - /** fetch data from the table: "payment" using primary key columns */ - payment?: GraphQLTypes["payment"] | undefined, - /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** fetch data from the table: "payment_status" */ - paymentStatuses: Array, - /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?: GraphQLTypes["paymentType"] | undefined, - /** fetch data from the table: "payment_type" */ - paymentTypes: Array, - /** An array relationship */ - payments: Array, - /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?: GraphQLTypes["subclassification"] | undefined, - /** fetch data from the table: "subclassification" */ - subclassifications: Array, - /** fetch data from the table: "tag" using primary key columns */ - tag?: GraphQLTypes["tag"] | undefined, - /** An array relationship */ - tags: Array, - /** fetch data from the table: "team" using primary key columns */ - team?: GraphQLTypes["team"] | undefined, - /** fetch data from the table: "team_user" using primary key columns */ - teamUser?: GraphQLTypes["teamUser"] | undefined, - /** fetch data from the table: "team_user" */ - teamUsers: Array, - /** fetch data from the table: "team" */ - teams: Array, - /** fetch data from the table: "unit" using primary key columns */ - unit?: GraphQLTypes["unit"] | undefined, - /** An array relationship */ - units: Array, - /** fetch data from the table: "user" using primary key columns */ - user?: GraphQLTypes["user"] | undefined, - /** fetch data from the table: "user_status" using primary key columns */ - userStatus?: GraphQLTypes["userStatus"] | undefined, - /** fetch data from the table: "user_status" */ - userStatuses: Array, - /** fetch data from the table: "user" */ - users: Array, - /** fetch data from the table: "webhook" using primary key columns */ - webhook?: GraphQLTypes["webhook"] | undefined, - /** An array relationship */ - webhooks: Array -}; - /** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ -["String_comparison_exp"]: { - _eq?: string | undefined, - _gt?: string | undefined, - _gte?: string | undefined, - /** does the column match the given case-insensitive pattern */ - _ilike?: string | undefined, - _in?: Array | undefined, - /** does the column match the given POSIX regular expression, case insensitive */ - _iregex?: string | undefined, - _is_null?: boolean | undefined, - /** does the column match the given pattern */ - _like?: string | undefined, - _lt?: string | undefined, - _lte?: string | undefined, - _neq?: string | undefined, - /** does the column NOT match the given case-insensitive pattern */ - _nilike?: string | undefined, - _nin?: Array | undefined, - /** does the column NOT match the given POSIX regular expression, case insensitive */ - _niregex?: string | undefined, - /** does the column NOT match the given pattern */ - _nlike?: string | undefined, - /** does the column NOT match the given POSIX regular expression, case sensitive */ - _nregex?: string | undefined, - /** does the column NOT match the given SQL regular expression */ - _nsimilar?: string | undefined, - /** does the column match the given POSIX regular expression, case sensitive */ - _regex?: string | undefined, - /** does the column match the given SQL regular expression */ - _similar?: string | undefined -}; - /** columns and relationships of "subclassification" */ -["subclassification"]: { - __typename: "subclassification", - name: string -}; - /** aggregated selection of "subclassification" */ -["subclassification_aggregate"]: { - __typename: "subclassification_aggregate", - aggregate?: GraphQLTypes["subclassification_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "subclassification" */ -["subclassification_aggregate_fields"]: { - __typename: "subclassification_aggregate_fields", - count: number, - max?: GraphQLTypes["subclassification_max_fields"] | undefined, - min?: GraphQLTypes["subclassification_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "subclassification". All fields are combined with a logical 'AND'. */ -["subclassification_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["subclassification_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "subclassification" */ -["subclassification_constraint"]: subclassification_constraint; - ["subclassification_enum"]: subclassification_enum; - /** Boolean expression to compare columns of type "subclassification_enum". All fields are combined with logical 'AND'. */ -["subclassification_enum_comparison_exp"]: { - _eq?: GraphQLTypes["subclassification_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["subclassification_enum"] | undefined, - _nin?: Array | undefined -}; - /** input type for inserting data into table "subclassification" */ -["subclassification_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["subclassification_max_fields"]: { - __typename: "subclassification_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["subclassification_min_fields"]: { - __typename: "subclassification_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "subclassification" */ -["subclassification_mutation_response"]: { - __typename: "subclassification_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "subclassification" */ -["subclassification_on_conflict"]: { - constraint: GraphQLTypes["subclassification_constraint"], - update_columns: Array, - where?: GraphQLTypes["subclassification_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "subclassification". */ -["subclassification_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: subclassification */ -["subclassification_pk_columns_input"]: { - name: string -}; - /** select columns of table "subclassification" */ -["subclassification_select_column"]: subclassification_select_column; - /** input type for updating data in table "subclassification" */ -["subclassification_set_input"]: { - name?: string | undefined -}; - /** update columns of table "subclassification" */ -["subclassification_update_column"]: subclassification_update_column; - ["subscription_root"]: { - __typename: "subscription_root", - /** fetch aggregated fields from the table: "booking_status" */ - aggregateBookingStatuses: GraphQLTypes["bookingStatus_aggregate"], - /** fetch aggregated fields from the table: "booking" */ - aggregateBookings: GraphQLTypes["booking_aggregate"], - /** fetch aggregated fields from the table: "classification" */ - aggregateClassifications: GraphQLTypes["classification_aggregate"], - /** fetch aggregated fields from the table: "connection" */ - aggregateConnections: GraphQLTypes["connection_aggregate"], - /** fetch aggregated fields from the table: "currency" */ - aggregateCurrencies: GraphQLTypes["currency_aggregate"], - /** fetch aggregated fields from the table: "entity" */ - aggregateEntities: GraphQLTypes["entity_aggregate"], - /** fetch aggregated fields from the table: "entity_status" */ - aggregateEntityStatuses: GraphQLTypes["entityStatus_aggregate"], - /** fetch aggregated fields from the table: "integration_type" */ - aggregateIntegrationTypes: GraphQLTypes["integrationType_aggregate"], - /** fetch aggregated fields from the table: "integration" */ - aggregateIntegrations: GraphQLTypes["integration_aggregate"], - /** fetch aggregated fields from the table: "issue" */ - aggregateIssues: GraphQLTypes["issue_aggregate"], - /** fetch aggregated fields from the table: "job_method" */ - aggregateJobMethods: GraphQLTypes["jobMethod_aggregate"], - /** fetch aggregated fields from the table: "job_status" */ - aggregateJobStatuses: GraphQLTypes["jobStatus_aggregate"], - /** fetch aggregated fields from the table: "job" */ - aggregateJobs: GraphQLTypes["job_aggregate"], - /** fetch aggregated fields from the table: "line" */ - aggregateLines: GraphQLTypes["line_aggregate"], - /** fetch aggregated fields from the table: "metric" */ - aggregateMetrics: GraphQLTypes["metric_aggregate"], - /** fetch aggregated fields from the table: "normalized_type" */ - aggregateNormalizedTypes: GraphQLTypes["normalizedType_aggregate"], - /** fetch aggregated fields from the table: "payment_status" */ - aggregatePaymentStatuses: GraphQLTypes["paymentStatus_aggregate"], - /** fetch aggregated fields from the table: "payment_type" */ - aggregatePaymentTypes: GraphQLTypes["paymentType_aggregate"], - /** fetch aggregated fields from the table: "payment" */ - aggregatePayments: GraphQLTypes["payment_aggregate"], - /** fetch aggregated fields from the table: "subclassification" */ - aggregateSubclassifications: GraphQLTypes["subclassification_aggregate"], - /** fetch aggregated fields from the table: "tag" */ - aggregateTags: GraphQLTypes["tag_aggregate"], - /** fetch aggregated fields from the table: "team_user" */ - aggregateTeamUsers: GraphQLTypes["teamUser_aggregate"], - /** fetch aggregated fields from the table: "team" */ - aggregateTeams: GraphQLTypes["team_aggregate"], - /** fetch aggregated fields from the table: "unit" */ - aggregateUnits: GraphQLTypes["unit_aggregate"], - /** fetch aggregated fields from the table: "user_status" */ - aggregateUserStatuses: GraphQLTypes["userStatus_aggregate"], - /** fetch aggregated fields from the table: "user" */ - aggregateUsers: GraphQLTypes["user_aggregate"], - /** fetch aggregated fields from the table: "webhook" */ - aggregateWebhooks: GraphQLTypes["webhook_aggregate"], - /** fetch data from the table: "booking" using primary key columns */ - booking?: GraphQLTypes["booking"] | undefined, - /** fetch data from the table: "booking_status" using primary key columns */ - bookingStatus?: GraphQLTypes["bookingStatus"] | undefined, - /** fetch data from the table: "booking_status" */ - bookingStatuses: Array, - /** fetch data from the table: "booking_channel" */ - booking_channel: Array, - /** fetch aggregated fields from the table: "booking_channel" */ - booking_channel_aggregate: GraphQLTypes["booking_channel_aggregate"], - /** fetch data from the table: "booking_channel" using primary key columns */ - booking_channel_by_pk?: GraphQLTypes["booking_channel"] | undefined, - /** An array relationship */ - bookings: Array, - /** fetch data from the table: "classification" using primary key columns */ - classification?: GraphQLTypes["classification"] | undefined, - /** fetch data from the table: "classification" */ - classifications: Array, - /** fetch data from the table: "connection" using primary key columns */ - connection?: GraphQLTypes["connection"] | undefined, - /** An array relationship */ - connections: Array, - /** fetch data from the table: "currency" */ - currencies: Array, - /** fetch data from the table: "currency" using primary key columns */ - currency?: GraphQLTypes["currency"] | undefined, - /** An array relationship */ - entities: Array, - /** fetch data from the table: "entity" using primary key columns */ - entity?: GraphQLTypes["entity"] | undefined, - /** fetch data from the table: "entity_status" using primary key columns */ - entityStatus?: GraphQLTypes["entityStatus"] | undefined, - /** fetch data from the table: "entity_status" */ - entityStatuses: Array, - /** fetch data from the table: "integration" using primary key columns */ - integration?: GraphQLTypes["integration"] | undefined, - /** fetch data from the table: "integration_type" using primary key columns */ - integrationType?: GraphQLTypes["integrationType"] | undefined, - /** fetch data from the table: "integration_type" */ - integrationTypes: Array, - /** An array relationship */ - integrations: Array, - /** fetch data from the table: "issue" using primary key columns */ - issue?: GraphQLTypes["issue"] | undefined, - /** An array relationship */ - issues: Array, - /** fetch data from the table: "job" using primary key columns */ - job?: GraphQLTypes["job"] | undefined, - /** fetch data from the table: "job_method" using primary key columns */ - jobMethod?: GraphQLTypes["jobMethod"] | undefined, - /** fetch data from the table: "job_method" */ - jobMethods: Array, - /** fetch data from the table: "job_status" using primary key columns */ - jobStatus?: GraphQLTypes["jobStatus"] | undefined, - /** fetch data from the table: "job_status" */ - jobStatuses: Array, - /** An array relationship */ - jobs: Array, - /** fetch data from the table: "line" using primary key columns */ - line?: GraphQLTypes["line"] | undefined, - /** An array relationship */ - lines: Array, - /** fetch data from the table: "metric" using primary key columns */ - metric?: GraphQLTypes["metric"] | undefined, - /** An array relationship */ - metrics: Array, - /** fetch data from the table: "normalized_type" using primary key columns */ - normalizedType?: GraphQLTypes["normalizedType"] | undefined, - /** fetch data from the table: "normalized_type" */ - normalizedTypes: Array, - /** fetch data from the table: "payment" using primary key columns */ - payment?: GraphQLTypes["payment"] | undefined, - /** fetch data from the table: "payment_status" using primary key columns */ - paymentStatus?: GraphQLTypes["paymentStatus"] | undefined, - /** fetch data from the table: "payment_status" */ - paymentStatuses: Array, - /** fetch data from the table: "payment_type" using primary key columns */ - paymentType?: GraphQLTypes["paymentType"] | undefined, - /** fetch data from the table: "payment_type" */ - paymentTypes: Array, - /** An array relationship */ - payments: Array, - /** fetch data from the table: "subclassification" using primary key columns */ - subclassification?: GraphQLTypes["subclassification"] | undefined, - /** fetch data from the table: "subclassification" */ - subclassifications: Array, - /** fetch data from the table: "tag" using primary key columns */ - tag?: GraphQLTypes["tag"] | undefined, - /** An array relationship */ - tags: Array, - /** fetch data from the table: "team" using primary key columns */ - team?: GraphQLTypes["team"] | undefined, - /** fetch data from the table: "team_user" using primary key columns */ - teamUser?: GraphQLTypes["teamUser"] | undefined, - /** fetch data from the table: "team_user" */ - teamUsers: Array, - /** fetch data from the table: "team" */ - teams: Array, - /** fetch data from the table: "unit" using primary key columns */ - unit?: GraphQLTypes["unit"] | undefined, - /** An array relationship */ - units: Array, - /** fetch data from the table: "user" using primary key columns */ - user?: GraphQLTypes["user"] | undefined, - /** fetch data from the table: "user_status" using primary key columns */ - userStatus?: GraphQLTypes["userStatus"] | undefined, - /** fetch data from the table: "user_status" */ - userStatuses: Array, - /** fetch data from the table: "user" */ - users: Array, - /** fetch data from the table: "webhook" using primary key columns */ - webhook?: GraphQLTypes["webhook"] | undefined, - /** An array relationship */ - webhooks: Array -}; - /** columns and relationships of "tag" */ -["tag"]: { - __typename: "tag", - /** An object relationship */ - booking: GraphQLTypes["booking"], - bookingId: GraphQLTypes["uuid"], - /** An object relationship */ - connection: GraphQLTypes["connection"], - connectionId: GraphQLTypes["uuid"], - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id: GraphQLTypes["uuid"], - json: GraphQLTypes["jsonb"], - /** An object relationship */ - payment: GraphQLTypes["payment"], - paymentId: GraphQLTypes["uuid"], - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - type: string, - uniqueRef: string, - /** An object relationship */ - unit: GraphQLTypes["unit"], - unitId: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "tag" */ -["tag_aggregate"]: { - __typename: "tag_aggregate", - aggregate?: GraphQLTypes["tag_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "tag" */ -["tag_aggregate_fields"]: { - __typename: "tag_aggregate_fields", - count: number, - max?: GraphQLTypes["tag_max_fields"] | undefined, - min?: GraphQLTypes["tag_min_fields"] | undefined -}; - /** order by aggregate values of table "tag" */ -["tag_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["tag_max_order_by"] | undefined, - min?: GraphQLTypes["tag_min_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["tag_append_input"]: { - json?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "tag" */ -["tag_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["tag_on_conflict"] | undefined -}; - /** Boolean expression to filter rows from the table "tag". All fields are combined with a logical 'AND'. */ -["tag_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["tag_bool_exp"] | undefined, - _or?: Array | undefined, - booking?: GraphQLTypes["booking_bool_exp"] | undefined, - bookingId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - connection?: GraphQLTypes["connection_bool_exp"] | undefined, - connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - json?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - payment?: GraphQLTypes["payment_bool_exp"] | undefined, - paymentId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - type?: GraphQLTypes["String_comparison_exp"] | undefined, - uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, - unit?: GraphQLTypes["unit_bool_exp"] | undefined, - unitId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "tag" */ -["tag_constraint"]: tag_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["tag_delete_at_path_input"]: { - json?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["tag_delete_elem_input"]: { - json?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["tag_delete_key_input"]: { - json?: string | undefined -}; - /** input type for inserting data into table "tag" */ -["tag_insert_input"]: { - booking?: GraphQLTypes["booking_obj_rel_insert_input"] | undefined, - bookingId?: GraphQLTypes["uuid"] | undefined, - connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - json?: GraphQLTypes["jsonb"] | undefined, - payment?: GraphQLTypes["payment_obj_rel_insert_input"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unit?: GraphQLTypes["unit_obj_rel_insert_input"] | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate max on columns */ -["tag_max_fields"]: { - __typename: "tag_max_fields", - bookingId?: GraphQLTypes["uuid"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "tag" */ -["tag_max_order_by"]: { - bookingId?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - paymentId?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["tag_min_fields"]: { - __typename: "tag_min_fields", - bookingId?: GraphQLTypes["uuid"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "tag" */ -["tag_min_order_by"]: { - bookingId?: GraphQLTypes["order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - paymentId?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "tag" */ -["tag_mutation_response"]: { - __typename: "tag_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "tag" */ -["tag_on_conflict"]: { - constraint: GraphQLTypes["tag_constraint"], - update_columns: Array, - where?: GraphQLTypes["tag_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "tag". */ -["tag_order_by"]: { - booking?: GraphQLTypes["booking_order_by"] | undefined, - bookingId?: GraphQLTypes["order_by"] | undefined, - connection?: GraphQLTypes["connection_order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - json?: GraphQLTypes["order_by"] | undefined, - payment?: GraphQLTypes["payment_order_by"] | undefined, - paymentId?: GraphQLTypes["order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - type?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - unit?: GraphQLTypes["unit_order_by"] | undefined, - unitId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: tag */ -["tag_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["tag_prepend_input"]: { - json?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "tag" */ -["tag_select_column"]: tag_select_column; - /** input type for updating data in table "tag" */ -["tag_set_input"]: { - bookingId?: GraphQLTypes["uuid"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - json?: GraphQLTypes["jsonb"] | undefined, - paymentId?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - type?: string | undefined, - uniqueRef?: string | undefined, - unitId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** update columns of table "tag" */ -["tag_update_column"]: tag_update_column; - /** columns and relationships of "team" */ -["team"]: { - __typename: "team", - address?: string | undefined, - /** An array relationship */ - bookings: Array, - /** An aggregate relationship */ - bookings_aggregate: GraphQLTypes["booking_aggregate"], - commissionPercentage?: GraphQLTypes["numeric"] | undefined, - /** An array relationship */ - connections: Array, - /** An aggregate relationship */ - connections_aggregate: GraphQLTypes["connection_aggregate"], - createdAt: GraphQLTypes["timestamptz"], - email?: string | undefined, - /** An array relationship */ - entities: Array, - /** An aggregate relationship */ - entities_aggregate: GraphQLTypes["entity_aggregate"], - id: GraphQLTypes["uuid"], - /** An array relationship */ - integrations: Array, - /** An aggregate relationship */ - integrations_aggregate: GraphQLTypes["integration_aggregate"], - isActive?: boolean | undefined, - isTest?: boolean | undefined, - /** An array relationship */ - issues: Array, - /** An aggregate relationship */ - issues_aggregate: GraphQLTypes["issue_aggregate"], - /** An array relationship */ - jobs: Array, - /** An aggregate relationship */ - jobs_aggregate: GraphQLTypes["job_aggregate"], - /** An array relationship */ - lines: Array, - /** An aggregate relationship */ - lines_aggregate: GraphQLTypes["line_aggregate"], - /** An array relationship */ - members: Array, - /** An aggregate relationship */ - members_aggregate: GraphQLTypes["teamUser_aggregate"], - /** An array relationship */ - metrics: Array, - /** An aggregate relationship */ - metrics_aggregate: GraphQLTypes["metric_aggregate"], - name: string, - /** An array relationship */ - payments: Array, - /** An aggregate relationship */ - payments_aggregate: GraphQLTypes["payment_aggregate"], - stripeId?: string | undefined, - stripeSubscriptionItemId?: string | undefined, - supportEmail?: string | undefined, - supportPhone?: string | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An array relationship */ - units: Array, - /** An aggregate relationship */ - units_aggregate: GraphQLTypes["unit_aggregate"], - /** An array relationship */ - webhooks: Array, - /** An aggregate relationship */ - webhooks_aggregate: GraphQLTypes["webhook_aggregate"], - website?: string | undefined -}; - /** aggregated selection of "team" */ -["team_aggregate"]: { - __typename: "team_aggregate", - aggregate?: GraphQLTypes["team_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "team" */ -["team_aggregate_fields"]: { - __typename: "team_aggregate_fields", - avg?: GraphQLTypes["team_avg_fields"] | undefined, - count: number, - max?: GraphQLTypes["team_max_fields"] | undefined, - min?: GraphQLTypes["team_min_fields"] | undefined, - stddev?: GraphQLTypes["team_stddev_fields"] | undefined, - stddev_pop?: GraphQLTypes["team_stddev_pop_fields"] | undefined, - stddev_samp?: GraphQLTypes["team_stddev_samp_fields"] | undefined, - sum?: GraphQLTypes["team_sum_fields"] | undefined, - var_pop?: GraphQLTypes["team_var_pop_fields"] | undefined, - var_samp?: GraphQLTypes["team_var_samp_fields"] | undefined, - variance?: GraphQLTypes["team_variance_fields"] | undefined -}; - /** aggregate avg on columns */ -["team_avg_fields"]: { - __typename: "team_avg_fields", - commissionPercentage?: number | undefined -}; - /** Boolean expression to filter rows from the table "team". All fields are combined with a logical 'AND'. */ -["team_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["team_bool_exp"] | undefined, - _or?: Array | undefined, - address?: GraphQLTypes["String_comparison_exp"] | undefined, - bookings?: GraphQLTypes["booking_bool_exp"] | undefined, - commissionPercentage?: GraphQLTypes["numeric_comparison_exp"] | undefined, - connections?: GraphQLTypes["connection_bool_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - email?: GraphQLTypes["String_comparison_exp"] | undefined, - entities?: GraphQLTypes["entity_bool_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - integrations?: GraphQLTypes["integration_bool_exp"] | undefined, - isActive?: GraphQLTypes["Boolean_comparison_exp"] | undefined, - isTest?: GraphQLTypes["Boolean_comparison_exp"] | undefined, - issues?: GraphQLTypes["issue_bool_exp"] | undefined, - jobs?: GraphQLTypes["job_bool_exp"] | undefined, - lines?: GraphQLTypes["line_bool_exp"] | undefined, - members?: GraphQLTypes["teamUser_bool_exp"] | undefined, - metrics?: GraphQLTypes["metric_bool_exp"] | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined, - payments?: GraphQLTypes["payment_bool_exp"] | undefined, - stripeId?: GraphQLTypes["String_comparison_exp"] | undefined, - stripeSubscriptionItemId?: GraphQLTypes["String_comparison_exp"] | undefined, - supportEmail?: GraphQLTypes["String_comparison_exp"] | undefined, - supportPhone?: GraphQLTypes["String_comparison_exp"] | undefined, - tags?: GraphQLTypes["tag_bool_exp"] | undefined, - units?: GraphQLTypes["unit_bool_exp"] | undefined, - webhooks?: GraphQLTypes["webhook_bool_exp"] | undefined, - website?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "team" */ -["team_constraint"]: team_constraint; - /** input type for incrementing numeric columns in table "team" */ -["team_inc_input"]: { - commissionPercentage?: GraphQLTypes["numeric"] | undefined -}; - /** input type for inserting data into table "team" */ -["team_insert_input"]: { - address?: string | undefined, - bookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, - commissionPercentage?: GraphQLTypes["numeric"] | undefined, - connections?: GraphQLTypes["connection_arr_rel_insert_input"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - entities?: GraphQLTypes["entity_arr_rel_insert_input"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - integrations?: GraphQLTypes["integration_arr_rel_insert_input"] | undefined, - isActive?: boolean | undefined, - isTest?: boolean | undefined, - issues?: GraphQLTypes["issue_arr_rel_insert_input"] | undefined, - jobs?: GraphQLTypes["job_arr_rel_insert_input"] | undefined, - lines?: GraphQLTypes["line_arr_rel_insert_input"] | undefined, - members?: GraphQLTypes["teamUser_arr_rel_insert_input"] | undefined, - metrics?: GraphQLTypes["metric_arr_rel_insert_input"] | undefined, - name?: string | undefined, - payments?: GraphQLTypes["payment_arr_rel_insert_input"] | undefined, - stripeId?: string | undefined, - stripeSubscriptionItemId?: string | undefined, - supportEmail?: string | undefined, - supportPhone?: string | undefined, - tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, - units?: GraphQLTypes["unit_arr_rel_insert_input"] | undefined, - webhooks?: GraphQLTypes["webhook_arr_rel_insert_input"] | undefined, - website?: string | undefined -}; - /** aggregate max on columns */ -["team_max_fields"]: { - __typename: "team_max_fields", - address?: string | undefined, - commissionPercentage?: GraphQLTypes["numeric"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - stripeId?: string | undefined, - stripeSubscriptionItemId?: string | undefined, - supportEmail?: string | undefined, - supportPhone?: string | undefined, - website?: string | undefined -}; - /** aggregate min on columns */ -["team_min_fields"]: { - __typename: "team_min_fields", - address?: string | undefined, - commissionPercentage?: GraphQLTypes["numeric"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - stripeId?: string | undefined, - stripeSubscriptionItemId?: string | undefined, - supportEmail?: string | undefined, - supportPhone?: string | undefined, - website?: string | undefined -}; - /** response of any mutation on the table "team" */ -["team_mutation_response"]: { - __typename: "team_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "team" */ -["team_obj_rel_insert_input"]: { - data: GraphQLTypes["team_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["team_on_conflict"] | undefined -}; - /** on conflict condition type for table "team" */ -["team_on_conflict"]: { - constraint: GraphQLTypes["team_constraint"], - update_columns: Array, - where?: GraphQLTypes["team_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "team". */ -["team_order_by"]: { - address?: GraphQLTypes["order_by"] | undefined, - bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, - commissionPercentage?: GraphQLTypes["order_by"] | undefined, - connections_aggregate?: GraphQLTypes["connection_aggregate_order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - email?: GraphQLTypes["order_by"] | undefined, - entities_aggregate?: GraphQLTypes["entity_aggregate_order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - integrations_aggregate?: GraphQLTypes["integration_aggregate_order_by"] | undefined, - isActive?: GraphQLTypes["order_by"] | undefined, - isTest?: GraphQLTypes["order_by"] | undefined, - issues_aggregate?: GraphQLTypes["issue_aggregate_order_by"] | undefined, - jobs_aggregate?: GraphQLTypes["job_aggregate_order_by"] | undefined, - lines_aggregate?: GraphQLTypes["line_aggregate_order_by"] | undefined, - members_aggregate?: GraphQLTypes["teamUser_aggregate_order_by"] | undefined, - metrics_aggregate?: GraphQLTypes["metric_aggregate_order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - payments_aggregate?: GraphQLTypes["payment_aggregate_order_by"] | undefined, - stripeId?: GraphQLTypes["order_by"] | undefined, - stripeSubscriptionItemId?: GraphQLTypes["order_by"] | undefined, - supportEmail?: GraphQLTypes["order_by"] | undefined, - supportPhone?: GraphQLTypes["order_by"] | undefined, - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, - units_aggregate?: GraphQLTypes["unit_aggregate_order_by"] | undefined, - webhooks_aggregate?: GraphQLTypes["webhook_aggregate_order_by"] | undefined, - website?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: team */ -["team_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** select columns of table "team" */ -["team_select_column"]: team_select_column; - /** input type for updating data in table "team" */ -["team_set_input"]: { - address?: string | undefined, - commissionPercentage?: GraphQLTypes["numeric"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - isActive?: boolean | undefined, - isTest?: boolean | undefined, - name?: string | undefined, - stripeId?: string | undefined, - stripeSubscriptionItemId?: string | undefined, - supportEmail?: string | undefined, - supportPhone?: string | undefined, - website?: string | undefined -}; - /** aggregate stddev on columns */ -["team_stddev_fields"]: { - __typename: "team_stddev_fields", - commissionPercentage?: number | undefined -}; - /** aggregate stddev_pop on columns */ -["team_stddev_pop_fields"]: { - __typename: "team_stddev_pop_fields", - commissionPercentage?: number | undefined -}; - /** aggregate stddev_samp on columns */ -["team_stddev_samp_fields"]: { - __typename: "team_stddev_samp_fields", - commissionPercentage?: number | undefined -}; - /** aggregate sum on columns */ -["team_sum_fields"]: { - __typename: "team_sum_fields", - commissionPercentage?: GraphQLTypes["numeric"] | undefined -}; - /** update columns of table "team" */ -["team_update_column"]: team_update_column; - /** aggregate var_pop on columns */ -["team_var_pop_fields"]: { - __typename: "team_var_pop_fields", - commissionPercentage?: number | undefined -}; - /** aggregate var_samp on columns */ -["team_var_samp_fields"]: { - __typename: "team_var_samp_fields", - commissionPercentage?: number | undefined -}; - /** aggregate variance on columns */ -["team_variance_fields"]: { - __typename: "team_variance_fields", - commissionPercentage?: number | undefined -}; - /** columns and relationships of "team_user" */ -["teamUser"]: { - __typename: "teamUser", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id: GraphQLTypes["uuid"], - role?: string | undefined, - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - /** An object relationship */ - user: GraphQLTypes["user"], - userId: GraphQLTypes["uuid"] -}; - /** aggregated selection of "team_user" */ -["teamUser_aggregate"]: { - __typename: "teamUser_aggregate", - aggregate?: GraphQLTypes["teamUser_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "team_user" */ -["teamUser_aggregate_fields"]: { - __typename: "teamUser_aggregate_fields", - count: number, - max?: GraphQLTypes["teamUser_max_fields"] | undefined, - min?: GraphQLTypes["teamUser_min_fields"] | undefined -}; - /** order by aggregate values of table "team_user" */ -["teamUser_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["teamUser_max_order_by"] | undefined, - min?: GraphQLTypes["teamUser_min_order_by"] | undefined -}; - /** input type for inserting array relation for remote table "team_user" */ -["teamUser_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["teamUser_on_conflict"] | undefined -}; - /** Boolean expression to filter rows from the table "team_user". All fields are combined with a logical 'AND'. */ -["teamUser_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["teamUser_bool_exp"] | undefined, - _or?: Array | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - role?: GraphQLTypes["String_comparison_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - user?: GraphQLTypes["user_bool_exp"] | undefined, - userId?: GraphQLTypes["uuid_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "team_user" */ -["teamUser_constraint"]: teamUser_constraint; - /** input type for inserting data into table "team_user" */ -["teamUser_insert_input"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - role?: string | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - user?: GraphQLTypes["user_obj_rel_insert_input"] | undefined, - userId?: GraphQLTypes["uuid"] | undefined -}; - /** aggregate max on columns */ -["teamUser_max_fields"]: { - __typename: "teamUser_max_fields", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - role?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - userId?: GraphQLTypes["uuid"] | undefined -}; - /** order by max() on columns of table "team_user" */ -["teamUser_max_order_by"]: { - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - role?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined, - userId?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["teamUser_min_fields"]: { - __typename: "teamUser_min_fields", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - role?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - userId?: GraphQLTypes["uuid"] | undefined -}; - /** order by min() on columns of table "team_user" */ -["teamUser_min_order_by"]: { - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - role?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined, - userId?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "team_user" */ -["teamUser_mutation_response"]: { - __typename: "teamUser_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "team_user" */ -["teamUser_on_conflict"]: { - constraint: GraphQLTypes["teamUser_constraint"], - update_columns: Array, - where?: GraphQLTypes["teamUser_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "team_user". */ -["teamUser_order_by"]: { - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - role?: GraphQLTypes["order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined, - user?: GraphQLTypes["user_order_by"] | undefined, - userId?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: teamUser */ -["teamUser_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** select columns of table "team_user" */ -["teamUser_select_column"]: teamUser_select_column; - /** input type for updating data in table "team_user" */ -["teamUser_set_input"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - role?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined, - userId?: GraphQLTypes["uuid"] | undefined -}; - /** update columns of table "team_user" */ -["teamUser_update_column"]: teamUser_update_column; - ["timestamptz"]: any; - /** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ -["timestamptz_comparison_exp"]: { - _eq?: GraphQLTypes["timestamptz"] | undefined, - _gt?: GraphQLTypes["timestamptz"] | undefined, - _gte?: GraphQLTypes["timestamptz"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _lt?: GraphQLTypes["timestamptz"] | undefined, - _lte?: GraphQLTypes["timestamptz"] | undefined, - _neq?: GraphQLTypes["timestamptz"] | undefined, - _nin?: Array | undefined -}; - /** columns and relationships of "unit" */ -["unit"]: { - __typename: "unit", - /** An array relationship */ - bookings: Array, - /** An aggregate relationship */ - bookings_aggregate: GraphQLTypes["booking_aggregate"], - /** An object relationship */ - connection?: GraphQLTypes["connection"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt: GraphQLTypes["timestamptz"], - /** An object relationship */ - entity?: GraphQLTypes["entity"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id: GraphQLTypes["uuid"], - metadata?: GraphQLTypes["jsonb"] | undefined, - name?: string | undefined, - status?: string | undefined, - /** An array relationship */ - tags: Array, - /** An aggregate relationship */ - tags_aggregate: GraphQLTypes["tag_aggregate"], - /** An object relationship */ - team?: GraphQLTypes["team"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - updatedAt: GraphQLTypes["timestamptz"] -}; - /** aggregated selection of "unit" */ -["unit_aggregate"]: { - __typename: "unit_aggregate", - aggregate?: GraphQLTypes["unit_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "unit" */ -["unit_aggregate_fields"]: { - __typename: "unit_aggregate_fields", - count: number, - max?: GraphQLTypes["unit_max_fields"] | undefined, - min?: GraphQLTypes["unit_min_fields"] | undefined -}; - /** order by aggregate values of table "unit" */ -["unit_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["unit_max_order_by"] | undefined, - min?: GraphQLTypes["unit_min_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["unit_append_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "unit" */ -["unit_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["unit_on_conflict"] | undefined -}; - /** Boolean expression to filter rows from the table "unit". All fields are combined with a logical 'AND'. */ -["unit_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["unit_bool_exp"] | undefined, - _or?: Array | undefined, - bookings?: GraphQLTypes["booking_bool_exp"] | undefined, - connection?: GraphQLTypes["connection_bool_exp"] | undefined, - connectionId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - entity?: GraphQLTypes["entity_bool_exp"] | undefined, - entityId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - metadata?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined, - status?: GraphQLTypes["String_comparison_exp"] | undefined, - tags?: GraphQLTypes["tag_bool_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - uniqueRef?: GraphQLTypes["String_comparison_exp"] | undefined, - updatedAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "unit" */ -["unit_constraint"]: unit_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["unit_delete_at_path_input"]: { - metadata?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["unit_delete_elem_input"]: { - metadata?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["unit_delete_key_input"]: { - metadata?: string | undefined -}; - /** input type for inserting data into table "unit" */ -["unit_insert_input"]: { - bookings?: GraphQLTypes["booking_arr_rel_insert_input"] | undefined, - connection?: GraphQLTypes["connection_obj_rel_insert_input"] | undefined, - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entity?: GraphQLTypes["entity_obj_rel_insert_input"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - name?: string | undefined, - status?: string | undefined, - tags?: GraphQLTypes["tag_arr_rel_insert_input"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate max on columns */ -["unit_max_fields"]: { - __typename: "unit_max_fields", - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by max() on columns of table "unit" */ -["unit_max_order_by"]: { - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - entityId?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["unit_min_fields"]: { - __typename: "unit_min_fields", - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** order by min() on columns of table "unit" */ -["unit_min_order_by"]: { - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - entityId?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "unit" */ -["unit_mutation_response"]: { - __typename: "unit_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "unit" */ -["unit_obj_rel_insert_input"]: { - data: GraphQLTypes["unit_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["unit_on_conflict"] | undefined -}; - /** on conflict condition type for table "unit" */ -["unit_on_conflict"]: { - constraint: GraphQLTypes["unit_constraint"], - update_columns: Array, - where?: GraphQLTypes["unit_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "unit". */ -["unit_order_by"]: { - bookings_aggregate?: GraphQLTypes["booking_aggregate_order_by"] | undefined, - connection?: GraphQLTypes["connection_order_by"] | undefined, - connectionId?: GraphQLTypes["order_by"] | undefined, - createdAt?: GraphQLTypes["order_by"] | undefined, - entity?: GraphQLTypes["entity_order_by"] | undefined, - entityId?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - metadata?: GraphQLTypes["order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - tags_aggregate?: GraphQLTypes["tag_aggregate_order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - uniqueRef?: GraphQLTypes["order_by"] | undefined, - updatedAt?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: unit */ -["unit_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["unit_prepend_input"]: { - metadata?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "unit" */ -["unit_select_column"]: unit_select_column; - /** input type for updating data in table "unit" */ -["unit_set_input"]: { - connectionId?: GraphQLTypes["uuid"] | undefined, - createdAt?: GraphQLTypes["timestamptz"] | undefined, - entityId?: GraphQLTypes["uuid"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - metadata?: GraphQLTypes["jsonb"] | undefined, - name?: string | undefined, - status?: string | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - uniqueRef?: string | undefined, - updatedAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** update columns of table "unit" */ -["unit_update_column"]: unit_update_column; - /** columns and relationships of "user" */ -["user"]: { - __typename: "user", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email: string, - id: GraphQLTypes["uuid"], - isAdmin: boolean, - /** An array relationship */ - memberships: Array, - /** An aggregate relationship */ - memberships_aggregate: GraphQLTypes["teamUser_aggregate"], - name?: string | undefined, - status?: GraphQLTypes["user_status_enum"] | undefined, - sub?: string | undefined, - trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregated selection of "user" */ -["user_aggregate"]: { - __typename: "user_aggregate", - aggregate?: GraphQLTypes["user_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "user" */ -["user_aggregate_fields"]: { - __typename: "user_aggregate_fields", - count: number, - max?: GraphQLTypes["user_max_fields"] | undefined, - min?: GraphQLTypes["user_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "user". All fields are combined with a logical 'AND'. */ -["user_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["user_bool_exp"] | undefined, - _or?: Array | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - email?: GraphQLTypes["String_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - isAdmin?: GraphQLTypes["Boolean_comparison_exp"] | undefined, - memberships?: GraphQLTypes["teamUser_bool_exp"] | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined, - status?: GraphQLTypes["user_status_enum_comparison_exp"] | undefined, - sub?: GraphQLTypes["String_comparison_exp"] | undefined, - trialExpiryAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "user" */ -["user_constraint"]: user_constraint; - /** input type for inserting data into table "user" */ -["user_insert_input"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - isAdmin?: boolean | undefined, - memberships?: GraphQLTypes["teamUser_arr_rel_insert_input"] | undefined, - name?: string | undefined, - status?: GraphQLTypes["user_status_enum"] | undefined, - sub?: string | undefined, - trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate max on columns */ -["user_max_fields"]: { - __typename: "user_max_fields", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - sub?: string | undefined, - trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** aggregate min on columns */ -["user_min_fields"]: { - __typename: "user_min_fields", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - name?: string | undefined, - sub?: string | undefined, - trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined -}; - /** response of any mutation on the table "user" */ -["user_mutation_response"]: { - __typename: "user_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** input type for inserting object relation for remote table "user" */ -["user_obj_rel_insert_input"]: { - data: GraphQLTypes["user_insert_input"], - /** on conflict condition */ - on_conflict?: GraphQLTypes["user_on_conflict"] | undefined -}; - /** on conflict condition type for table "user" */ -["user_on_conflict"]: { - constraint: GraphQLTypes["user_constraint"], - update_columns: Array, - where?: GraphQLTypes["user_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "user". */ -["user_order_by"]: { - createdAt?: GraphQLTypes["order_by"] | undefined, - email?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - isAdmin?: GraphQLTypes["order_by"] | undefined, - memberships_aggregate?: GraphQLTypes["teamUser_aggregate_order_by"] | undefined, - name?: GraphQLTypes["order_by"] | undefined, - status?: GraphQLTypes["order_by"] | undefined, - sub?: GraphQLTypes["order_by"] | undefined, - trialExpiryAt?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: user */ -["user_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** select columns of table "user" */ -["user_select_column"]: user_select_column; - /** input type for updating data in table "user" */ -["user_set_input"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - email?: string | undefined, - id?: GraphQLTypes["uuid"] | undefined, - isAdmin?: boolean | undefined, - name?: string | undefined, - status?: GraphQLTypes["user_status_enum"] | undefined, - sub?: string | undefined, - trialExpiryAt?: GraphQLTypes["timestamptz"] | undefined -}; - ["user_status_enum"]: user_status_enum; - /** Boolean expression to compare columns of type "user_status_enum". All fields are combined with logical 'AND'. */ -["user_status_enum_comparison_exp"]: { - _eq?: GraphQLTypes["user_status_enum"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _neq?: GraphQLTypes["user_status_enum"] | undefined, - _nin?: Array | undefined -}; - /** update columns of table "user" */ -["user_update_column"]: user_update_column; - /** columns and relationships of "user_status" */ -["userStatus"]: { - __typename: "userStatus", - name: string -}; - /** aggregated selection of "user_status" */ -["userStatus_aggregate"]: { - __typename: "userStatus_aggregate", - aggregate?: GraphQLTypes["userStatus_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "user_status" */ -["userStatus_aggregate_fields"]: { - __typename: "userStatus_aggregate_fields", - count: number, - max?: GraphQLTypes["userStatus_max_fields"] | undefined, - min?: GraphQLTypes["userStatus_min_fields"] | undefined -}; - /** Boolean expression to filter rows from the table "user_status". All fields are combined with a logical 'AND'. */ -["userStatus_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["userStatus_bool_exp"] | undefined, - _or?: Array | undefined, - name?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "user_status" */ -["userStatus_constraint"]: userStatus_constraint; - /** input type for inserting data into table "user_status" */ -["userStatus_insert_input"]: { - name?: string | undefined -}; - /** aggregate max on columns */ -["userStatus_max_fields"]: { - __typename: "userStatus_max_fields", - name?: string | undefined -}; - /** aggregate min on columns */ -["userStatus_min_fields"]: { - __typename: "userStatus_min_fields", - name?: string | undefined -}; - /** response of any mutation on the table "user_status" */ -["userStatus_mutation_response"]: { - __typename: "userStatus_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "user_status" */ -["userStatus_on_conflict"]: { - constraint: GraphQLTypes["userStatus_constraint"], - update_columns: Array, - where?: GraphQLTypes["userStatus_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "user_status". */ -["userStatus_order_by"]: { - name?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: userStatus */ -["userStatus_pk_columns_input"]: { - name: string -}; - /** select columns of table "user_status" */ -["userStatus_select_column"]: userStatus_select_column; - /** input type for updating data in table "user_status" */ -["userStatus_set_input"]: { - name?: string | undefined -}; - /** update columns of table "user_status" */ -["userStatus_update_column"]: userStatus_update_column; - ["uuid"]: any; - /** Boolean expression to compare columns of type "uuid". All fields are combined with logical 'AND'. */ -["uuid_comparison_exp"]: { - _eq?: GraphQLTypes["uuid"] | undefined, - _gt?: GraphQLTypes["uuid"] | undefined, - _gte?: GraphQLTypes["uuid"] | undefined, - _in?: Array | undefined, - _is_null?: boolean | undefined, - _lt?: GraphQLTypes["uuid"] | undefined, - _lte?: GraphQLTypes["uuid"] | undefined, - _neq?: GraphQLTypes["uuid"] | undefined, - _nin?: Array | undefined -}; - /** columns and relationships of "webhook" */ -["webhook"]: { - __typename: "webhook", - createdAt: GraphQLTypes["timestamptz"], - headers?: GraphQLTypes["jsonb"] | undefined, - id: GraphQLTypes["uuid"], - /** An object relationship */ - team: GraphQLTypes["team"], - teamId: GraphQLTypes["uuid"], - types: GraphQLTypes["jsonb"], - types2?: GraphQLTypes["_text"] | undefined, - url: string -}; - /** aggregated selection of "webhook" */ -["webhook_aggregate"]: { - __typename: "webhook_aggregate", - aggregate?: GraphQLTypes["webhook_aggregate_fields"] | undefined, - nodes: Array -}; - /** aggregate fields of "webhook" */ -["webhook_aggregate_fields"]: { - __typename: "webhook_aggregate_fields", - count: number, - max?: GraphQLTypes["webhook_max_fields"] | undefined, - min?: GraphQLTypes["webhook_min_fields"] | undefined -}; - /** order by aggregate values of table "webhook" */ -["webhook_aggregate_order_by"]: { - count?: GraphQLTypes["order_by"] | undefined, - max?: GraphQLTypes["webhook_max_order_by"] | undefined, - min?: GraphQLTypes["webhook_min_order_by"] | undefined -}; - /** append existing jsonb value of filtered columns with new jsonb value */ -["webhook_append_input"]: { - headers?: GraphQLTypes["jsonb"] | undefined, - types?: GraphQLTypes["jsonb"] | undefined -}; - /** input type for inserting array relation for remote table "webhook" */ -["webhook_arr_rel_insert_input"]: { - data: Array, - /** on conflict condition */ - on_conflict?: GraphQLTypes["webhook_on_conflict"] | undefined -}; - /** Boolean expression to filter rows from the table "webhook". All fields are combined with a logical 'AND'. */ -["webhook_bool_exp"]: { - _and?: Array | undefined, - _not?: GraphQLTypes["webhook_bool_exp"] | undefined, - _or?: Array | undefined, - createdAt?: GraphQLTypes["timestamptz_comparison_exp"] | undefined, - headers?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - id?: GraphQLTypes["uuid_comparison_exp"] | undefined, - team?: GraphQLTypes["team_bool_exp"] | undefined, - teamId?: GraphQLTypes["uuid_comparison_exp"] | undefined, - types?: GraphQLTypes["jsonb_comparison_exp"] | undefined, - types2?: GraphQLTypes["_text_comparison_exp"] | undefined, - url?: GraphQLTypes["String_comparison_exp"] | undefined -}; - /** unique or primary key constraints on table "webhook" */ -["webhook_constraint"]: webhook_constraint; - /** delete the field or element with specified path (for JSON arrays, negative integers count from the end) */ -["webhook_delete_at_path_input"]: { - headers?: Array | undefined, - types?: Array | undefined -}; - /** delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array */ -["webhook_delete_elem_input"]: { - headers?: number | undefined, - types?: number | undefined -}; - /** delete key/value pair or string element. key/value pairs are matched based on their key value */ -["webhook_delete_key_input"]: { - headers?: string | undefined, - types?: string | undefined -}; - /** input type for inserting data into table "webhook" */ -["webhook_insert_input"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - headers?: GraphQLTypes["jsonb"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - team?: GraphQLTypes["team_obj_rel_insert_input"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - types?: GraphQLTypes["jsonb"] | undefined, - types2?: GraphQLTypes["_text"] | undefined, - url?: string | undefined -}; - /** aggregate max on columns */ -["webhook_max_fields"]: { - __typename: "webhook_max_fields", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - url?: string | undefined -}; - /** order by max() on columns of table "webhook" */ -["webhook_max_order_by"]: { - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - url?: GraphQLTypes["order_by"] | undefined -}; - /** aggregate min on columns */ -["webhook_min_fields"]: { - __typename: "webhook_min_fields", - createdAt?: GraphQLTypes["timestamptz"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - url?: string | undefined -}; - /** order by min() on columns of table "webhook" */ -["webhook_min_order_by"]: { - createdAt?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - url?: GraphQLTypes["order_by"] | undefined -}; - /** response of any mutation on the table "webhook" */ -["webhook_mutation_response"]: { - __typename: "webhook_mutation_response", - /** number of rows affected by the mutation */ - affected_rows: number, - /** data from the rows affected by the mutation */ - returning: Array -}; - /** on conflict condition type for table "webhook" */ -["webhook_on_conflict"]: { - constraint: GraphQLTypes["webhook_constraint"], - update_columns: Array, - where?: GraphQLTypes["webhook_bool_exp"] | undefined -}; - /** Ordering options when selecting data from "webhook". */ -["webhook_order_by"]: { - createdAt?: GraphQLTypes["order_by"] | undefined, - headers?: GraphQLTypes["order_by"] | undefined, - id?: GraphQLTypes["order_by"] | undefined, - team?: GraphQLTypes["team_order_by"] | undefined, - teamId?: GraphQLTypes["order_by"] | undefined, - types?: GraphQLTypes["order_by"] | undefined, - types2?: GraphQLTypes["order_by"] | undefined, - url?: GraphQLTypes["order_by"] | undefined -}; - /** primary key columns input for table: webhook */ -["webhook_pk_columns_input"]: { - id: GraphQLTypes["uuid"] -}; - /** prepend existing jsonb value of filtered columns with new jsonb value */ -["webhook_prepend_input"]: { - headers?: GraphQLTypes["jsonb"] | undefined, - types?: GraphQLTypes["jsonb"] | undefined -}; - /** select columns of table "webhook" */ -["webhook_select_column"]: webhook_select_column; - /** input type for updating data in table "webhook" */ -["webhook_set_input"]: { - createdAt?: GraphQLTypes["timestamptz"] | undefined, - headers?: GraphQLTypes["jsonb"] | undefined, - id?: GraphQLTypes["uuid"] | undefined, - teamId?: GraphQLTypes["uuid"] | undefined, - types?: GraphQLTypes["jsonb"] | undefined, - types2?: GraphQLTypes["_text"] | undefined, - url?: string | undefined -}; - /** update columns of table "webhook" */ -["webhook_update_column"]: webhook_update_column - } -/** unique or primary key constraints on table "booking_channel" */ -export const enum booking_channel_constraint { - booking_channel_pkey = "booking_channel_pkey" -} -export const enum booking_channel_enum { - airbnb = "airbnb", - bookingcom = "bookingcom", - direct = "direct", - expedia = "expedia", - tripadvisor = "tripadvisor", - vrbo = "vrbo" -} -/** select columns of table "booking_channel" */ -export const enum booking_channel_select_column { - name = "name" -} -/** update columns of table "booking_channel" */ -export const enum booking_channel_update_column { - name = "name" -} -/** unique or primary key constraints on table "booking" */ -export const enum booking_constraint { - booking_pkey = "booking_pkey" -} -/** select columns of table "booking" */ -export const enum booking_select_column { - bookedAt = "bookedAt", - bookerName = "bookerName", - bookingChannel = "bookingChannel", - checkIn = "checkIn", - checkOut = "checkOut", - confirmationCode = "confirmationCode", - connectionId = "connectionId", - createdAt = "createdAt", - currency = "currency", - entityId = "entityId", - guestName = "guestName", - guests = "guests", - id = "id", - isOTA = "isOTA", - metadata = "metadata", - nights = "nights", - otaBookingId = "otaBookingId", - status = "status", - teamId = "teamId", - uniqueRef = "uniqueRef", - unitId = "unitId", - updatedAt = "updatedAt" -} -export const enum booking_status_enum { - booked = "booked", - cancelled = "cancelled", - inquired = "inquired", - inquiry = "inquiry", - payed = "payed" -} -/** update columns of table "booking" */ -export const enum booking_update_column { - bookedAt = "bookedAt", - bookerName = "bookerName", - bookingChannel = "bookingChannel", - checkIn = "checkIn", - checkOut = "checkOut", - confirmationCode = "confirmationCode", - connectionId = "connectionId", - createdAt = "createdAt", - currency = "currency", - entityId = "entityId", - guestName = "guestName", - guests = "guests", - id = "id", - isOTA = "isOTA", - metadata = "metadata", - nights = "nights", - otaBookingId = "otaBookingId", - status = "status", - teamId = "teamId", - uniqueRef = "uniqueRef", - unitId = "unitId", - updatedAt = "updatedAt" -} -/** unique or primary key constraints on table "booking_status" */ -export const enum bookingStatus_constraint { - booking_status_pkey = "booking_status_pkey" -} -/** select columns of table "booking_status" */ -export const enum bookingStatus_select_column { - name = "name" -} -/** update columns of table "booking_status" */ -export const enum bookingStatus_update_column { - name = "name" -} -/** unique or primary key constraints on table "classification" */ -export const enum classification_constraint { - classification_pkey = "classification_pkey" -} -export const enum classification_enum { - adjustment = "adjustment", - commission = "commission", - exception = "exception", - paymentFee = "paymentFee", - revenue = "revenue", - securityDeposit = "securityDeposit", - tax = "tax" -} -/** select columns of table "classification" */ -export const enum classification_select_column { - name = "name" -} -/** update columns of table "classification" */ -export const enum classification_update_column { - name = "name" -} -/** unique or primary key constraints on table "connection" */ -export const enum connection_constraint { - connection_pkey = "connection_pkey" -} -/** select columns of table "connection" */ -export const enum connection_select_column { - createdAt = "createdAt", - credentials = "credentials", - id = "id", - integrationId = "integrationId", - name = "name", - persistentState = "persistentState", - status = "status", - teamId = "teamId", - webhookKey = "webhookKey" -} -/** update columns of table "connection" */ -export const enum connection_update_column { - createdAt = "createdAt", - credentials = "credentials", - id = "id", - integrationId = "integrationId", - name = "name", - persistentState = "persistentState", - status = "status", - teamId = "teamId", - webhookKey = "webhookKey" -} -/** unique or primary key constraints on table "currency" */ -export const enum currency_constraint { - currency_pkey = "currency_pkey" -} -export const enum currency_enum { - aed = "aed", - afn = "afn", - all = "all", - amd = "amd", - ang = "ang", - aoa = "aoa", - ars = "ars", - aud = "aud", - awg = "awg", - azn = "azn", - bam = "bam", - bbd = "bbd", - bdt = "bdt", - bgn = "bgn", - bhd = "bhd", - bif = "bif", - bmd = "bmd", - bnd = "bnd", - bob = "bob", - bov = "bov", - brl = "brl", - bsd = "bsd", - btn = "btn", - bwp = "bwp", - byr = "byr", - bzd = "bzd", - cad = "cad", - cdf = "cdf", - che = "che", - chf = "chf", - chw = "chw", - clf = "clf", - clp = "clp", - cny = "cny", - cop = "cop", - cou = "cou", - crc = "crc", - cuc = "cuc", - cup = "cup", - cve = "cve", - czk = "czk", - djf = "djf", - dkk = "dkk", - dop = "dop", - dzd = "dzd", - egp = "egp", - ern = "ern", - etb = "etb", - eur = "eur", - fjd = "fjd", - fkp = "fkp", - gbp = "gbp", - gel = "gel", - ghs = "ghs", - gip = "gip", - gmd = "gmd", - gnf = "gnf", - gtq = "gtq", - gyd = "gyd", - hkd = "hkd", - hnl = "hnl", - hrk = "hrk", - htg = "htg", - huf = "huf", - idr = "idr", - ils = "ils", - inr = "inr", - iqd = "iqd", - irr = "irr", - isk = "isk", - jmd = "jmd", - jod = "jod", - jpy = "jpy", - kes = "kes", - kgs = "kgs", - khr = "khr", - kmf = "kmf", - kpw = "kpw", - krw = "krw", - kwd = "kwd", - kyd = "kyd", - kzt = "kzt", - lak = "lak", - lbp = "lbp", - lkr = "lkr", - lrd = "lrd", - lsl = "lsl", - ltl = "ltl", - lvl = "lvl", - lyd = "lyd", - mad = "mad", - mdl = "mdl", - mga = "mga", - mkd = "mkd", - mmk = "mmk", - mnt = "mnt", - mop = "mop", - mro = "mro", - mur = "mur", - mvr = "mvr", - mwk = "mwk", - mxn = "mxn", - mxv = "mxv", - myr = "myr", - mzn = "mzn", - nad = "nad", - ngn = "ngn", - nio = "nio", - nok = "nok", - npr = "npr", - nzd = "nzd", - omr = "omr", - pab = "pab", - pen = "pen", - pgk = "pgk", - php = "php", - pkr = "pkr", - pln = "pln", - pyg = "pyg", - qar = "qar", - ron = "ron", - rsd = "rsd", - rub = "rub", - rwf = "rwf", - sar = "sar", - sbd = "sbd", - scr = "scr", - sdg = "sdg", - sek = "sek", - sgd = "sgd", - shp = "shp", - sll = "sll", - sos = "sos", - srd = "srd", - ssp = "ssp", - std = "std", - syp = "syp", - szl = "szl", - thb = "thb", - tjs = "tjs", - tmt = "tmt", - tnd = "tnd", - top = "top", - try = "try", - ttd = "ttd", - twd = "twd", - tzs = "tzs", - uah = "uah", - ugx = "ugx", - usd = "usd", - usn = "usn", - uss = "uss", - uyi = "uyi", - uyu = "uyu", - uzs = "uzs", - vef = "vef", - vnd = "vnd", - vuv = "vuv", - wst = "wst", - xaf = "xaf", - xag = "xag", - xau = "xau", - xba = "xba", - xbb = "xbb", - xbc = "xbc", - xbd = "xbd", - xcd = "xcd", - xdr = "xdr", - xfu = "xfu", - xof = "xof", - xpd = "xpd", - xpf = "xpf", - xpt = "xpt", - xts = "xts", - xxx = "xxx", - yer = "yer", - zar = "zar", - zmw = "zmw" -} -/** select columns of table "currency" */ -export const enum currency_select_column { - name = "name" -} -/** update columns of table "currency" */ -export const enum currency_update_column { - name = "name" -} -/** unique or primary key constraints on table "entity" */ -export const enum entity_constraint { - entity_connection_id_job_id_type_unique_ref_key = "entity_connection_id_job_id_type_unique_ref_key", - entity_pkey = "entity_pkey" -} -/** select columns of table "entity" */ -export const enum entity_select_column { - connectionId = "connectionId", - createdAt = "createdAt", - description = "description", - diffJson = "diffJson", - hash = "hash", - id = "id", - jobId = "jobId", - json = "json", - normalizedJson = "normalizedJson", - normalizedType = "normalizedType", - parsedAt = "parsedAt", - predecessorEntityId = "predecessorEntityId", - status = "status", - statusText = "statusText", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef", - updatedAt = "updatedAt" -} -export const enum entity_status_enum { - accepted = "accepted", - extracted = "extracted", - reconciled = "reconciled", - rejected = "rejected", - transformed = "transformed" -} -/** update columns of table "entity" */ -export const enum entity_update_column { - connectionId = "connectionId", - createdAt = "createdAt", - description = "description", - diffJson = "diffJson", - hash = "hash", - id = "id", - jobId = "jobId", - json = "json", - normalizedJson = "normalizedJson", - normalizedType = "normalizedType", - parsedAt = "parsedAt", - predecessorEntityId = "predecessorEntityId", - status = "status", - statusText = "statusText", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef", - updatedAt = "updatedAt" -} -/** unique or primary key constraints on table "entity_status" */ -export const enum entityStatus_constraint { - entity_status_pkey = "entity_status_pkey" -} -/** select columns of table "entity_status" */ -export const enum entityStatus_select_column { - name = "name" -} -/** update columns of table "entity_status" */ -export const enum entityStatus_update_column { - name = "name" -} -/** unique or primary key constraints on table "integration" */ -export const enum integration_constraint { - integration_pkey = "integration_pkey" -} -/** select columns of table "integration" */ -export const enum integration_select_column { - apiDevUrl = "apiDevUrl", - apiUrl = "apiUrl", - icon = "icon", - id = "id", - isApproved = "isApproved", - isPrivate = "isPrivate", - name = "name", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef" -} -export const enum integration_type_enum { - accountingPlatform = "accountingPlatform", - bookingChannel = "bookingChannel", - otherService = "otherService", - paymentGateway = "paymentGateway", - propertyManagementSystem = "propertyManagementSystem" -} -/** update columns of table "integration" */ -export const enum integration_update_column { - apiDevUrl = "apiDevUrl", - apiUrl = "apiUrl", - icon = "icon", - id = "id", - isApproved = "isApproved", - isPrivate = "isPrivate", - name = "name", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef" -} -/** unique or primary key constraints on table "integration_type" */ -export const enum integrationType_constraint { - integration_type_pkey = "integration_type_pkey" -} -/** select columns of table "integration_type" */ -export const enum integrationType_select_column { - name = "name" -} -/** update columns of table "integration_type" */ -export const enum integrationType_update_column { - name = "name" -} -/** unique or primary key constraints on table "issue" */ -export const enum issue_constraint { - issue_pkey = "issue_pkey" -} -/** select columns of table "issue" */ -export const enum issue_select_column { - code = "code", - createdAt = "createdAt", - id = "id", - isPublic = "isPublic", - isResolved = "isResolved", - jobId = "jobId", - message = "message", - requestParams = "requestParams", - resolveParams = "resolveParams", - teamId = "teamId", - type = "type", - updatedAt = "updatedAt" -} -/** update columns of table "issue" */ -export const enum issue_update_column { - code = "code", - createdAt = "createdAt", - id = "id", - isPublic = "isPublic", - isResolved = "isResolved", - jobId = "jobId", - message = "message", - requestParams = "requestParams", - resolveParams = "resolveParams", - teamId = "teamId", - type = "type", - updatedAt = "updatedAt" -} -/** unique or primary key constraints on table "job" */ -export const enum job_constraint { - job_pkey = "job_pkey" -} -export const enum job_method_enum { - act = "act", - connect = "connect", - delete = "delete", - enhance = "enhance", - extract = "extract", - info = "info", - react = "react", - refresh = "refresh", - transform = "transform" -} -/** select columns of table "job" */ -export const enum job_select_column { - apiVersion = "apiVersion", - connectionId = "connectionId", - createdAt = "createdAt", - endedAt = "endedAt", - id = "id", - integrationId = "integrationId", - integrationSdkVersion = "integrationSdkVersion", - integrationVersion = "integrationVersion", - logFile = "logFile", - logLink = "logLink", - logs = "logs", - method = "method", - params = "params", - requestId = "requestId", - response = "response", - sdkVersion = "sdkVersion", - startedAt = "startedAt", - status = "status", - teamId = "teamId", - updatedAt = "updatedAt" -} -export const enum job_status_enum { - completed = "completed", - failed = "failed", - paused = "paused", - queued = "queued", - started = "started" -} -/** update columns of table "job" */ -export const enum job_update_column { - apiVersion = "apiVersion", - connectionId = "connectionId", - createdAt = "createdAt", - endedAt = "endedAt", - id = "id", - integrationId = "integrationId", - integrationSdkVersion = "integrationSdkVersion", - integrationVersion = "integrationVersion", - logFile = "logFile", - logLink = "logLink", - logs = "logs", - method = "method", - params = "params", - requestId = "requestId", - response = "response", - sdkVersion = "sdkVersion", - startedAt = "startedAt", - status = "status", - teamId = "teamId", - updatedAt = "updatedAt" -} -/** unique or primary key constraints on table "job_method" */ -export const enum jobMethod_constraint { - job_method_pkey = "job_method_pkey" -} -/** select columns of table "job_method" */ -export const enum jobMethod_select_column { - name = "name" -} -/** update columns of table "job_method" */ -export const enum jobMethod_update_column { - name = "name" -} -/** unique or primary key constraints on table "job_status" */ -export const enum jobStatus_constraint { - job_status_pkey = "job_status_pkey" -} -/** select columns of table "job_status" */ -export const enum jobStatus_select_column { - name = "name" -} -/** update columns of table "job_status" */ -export const enum jobStatus_update_column { - name = "name" -} -/** unique or primary key constraints on table "line" */ -export const enum line_constraint { - line_pkey = "line_pkey" -} -/** select columns of table "line" */ -export const enum line_select_column { - bookingId = "bookingId", - centTotal = "centTotal", - classification = "classification", - connectionId = "connectionId", - createdAt = "createdAt", - description = "description", - enhancingLineId = "enhancingLineId", - id = "id", - invoiceStatus = "invoiceStatus", - isEnhanced = "isEnhanced", - metadata = "metadata", - originCentTotal = "originCentTotal", - originCurrency = "originCurrency", - originExchangeRate = "originExchangeRate", - paymentId = "paymentId", - subclassification = "subclassification", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef", - unitId = "unitId", - updatedAt = "updatedAt" -} -/** update columns of table "line" */ -export const enum line_update_column { - bookingId = "bookingId", - centTotal = "centTotal", - classification = "classification", - connectionId = "connectionId", - createdAt = "createdAt", - description = "description", - enhancingLineId = "enhancingLineId", - id = "id", - invoiceStatus = "invoiceStatus", - isEnhanced = "isEnhanced", - metadata = "metadata", - originCentTotal = "originCentTotal", - originCurrency = "originCurrency", - originExchangeRate = "originExchangeRate", - paymentId = "paymentId", - subclassification = "subclassification", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef", - unitId = "unitId", - updatedAt = "updatedAt" -} -/** unique or primary key constraints on table "metric" */ -export const enum metric_constraint { - metric_pkey = "metric_pkey" -} -/** select columns of table "metric" */ -export const enum metric_select_column { - connectionId = "connectionId", - createdAt = "createdAt", - ensuedAt = "ensuedAt", - id = "id", - metadata = "metadata", - teamId = "teamId", - text = "text", - type = "type", - uniqueRef = "uniqueRef", - unitId = "unitId", - updatedAt = "updatedAt", - value = "value" -} -/** update columns of table "metric" */ -export const enum metric_update_column { - connectionId = "connectionId", - createdAt = "createdAt", - ensuedAt = "ensuedAt", - id = "id", - metadata = "metadata", - teamId = "teamId", - text = "text", - type = "type", - uniqueRef = "uniqueRef", - unitId = "unitId", - updatedAt = "updatedAt", - value = "value" -} -export const enum normalized_type_enum { - booking = "booking", - line = "line", - metric = "metric", - payment = "payment", - tag = "tag", - unit = "unit" -} -/** unique or primary key constraints on table "normalized_type" */ -export const enum normalizedType_constraint { - normalized_type_pkey = "normalized_type_pkey" -} -/** select columns of table "normalized_type" */ -export const enum normalizedType_select_column { - name = "name" -} -/** update columns of table "normalized_type" */ -export const enum normalizedType_update_column { - name = "name" -} -/** column ordering options */ -export const enum order_by { - asc = "asc", - asc_nulls_first = "asc_nulls_first", - asc_nulls_last = "asc_nulls_last", - desc = "desc", - desc_nulls_first = "desc_nulls_first", - desc_nulls_last = "desc_nulls_last" -} -/** unique or primary key constraints on table "payment" */ -export const enum payment_constraint { - payment_pkey = "payment_pkey" -} -/** select columns of table "payment" */ -export const enum payment_select_column { - arrivesAt = "arrivesAt", - centTotal = "centTotal", - connectionId = "connectionId", - createdAt = "createdAt", - currency = "currency", - description = "description", - entityId = "entityId", - id = "id", - metadata = "metadata", - paidAt = "paidAt", - status = "status", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef", - updatedAt = "updatedAt" -} -export const enum payment_status_enum { - arrived = "arrived", - cancelled = "cancelled", - pending = "pending" -} -/** update columns of table "payment" */ -export const enum payment_update_column { - arrivesAt = "arrivesAt", - centTotal = "centTotal", - connectionId = "connectionId", - createdAt = "createdAt", - currency = "currency", - description = "description", - entityId = "entityId", - id = "id", - metadata = "metadata", - paidAt = "paidAt", - status = "status", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef", - updatedAt = "updatedAt" -} -/** unique or primary key constraints on table "payment_status" */ -export const enum paymentStatus_constraint { - payment_status_pkey = "payment_status_pkey" -} -/** select columns of table "payment_status" */ -export const enum paymentStatus_select_column { - name = "name" -} -/** update columns of table "payment_status" */ -export const enum paymentStatus_update_column { - name = "name" -} -/** unique or primary key constraints on table "payment_type" */ -export const enum paymentType_constraint { - payment_type_pkey = "payment_type_pkey" -} -/** select columns of table "payment_type" */ -export const enum paymentType_select_column { - name = "name" -} -/** update columns of table "payment_type" */ -export const enum paymentType_update_column { - name = "name" -} -/** unique or primary key constraints on table "subclassification" */ -export const enum subclassification_constraint { - subclassification_pkey = "subclassification_pkey" -} -export const enum subclassification_enum { - adjustment_alteration = "adjustment_alteration", - adjustment_cancellation = "adjustment_cancellation", - adjustment_deviation = "adjustment_deviation", - adjustment_other = "adjustment_other", - adjustment_resolution = "adjustment_resolution", - commission_management = "commission_management", - commission_ota = "commission_ota", - commission_other = "commission_other", - commission_pms = "commission_pms", - exception_paymentDeviation = "exception_paymentDeviation", - exception_reservationAmountZero = "exception_reservationAmountZero", - exception_reservationDeviation = "exception_reservationDeviation", - paymentFee_card = "paymentFee_card", - paymentFee_currencyConversion = "paymentFee_currencyConversion", - paymentFee_other = "paymentFee_other", - paymentFee_transaction = "paymentFee_transaction", - revenue_accommodation = "revenue_accommodation", - revenue_cleaning = "revenue_cleaning", - revenue_extra = "revenue_extra", - revenue_other = "revenue_other", - securityDeposit_deposit = "securityDeposit_deposit", - securityDeposit_fee = "securityDeposit_fee", - tax_city = "tax_city", - tax_local = "tax_local", - tax_other = "tax_other", - tax_tourism = "tax_tourism", - tax_vat = "tax_vat" -} -/** select columns of table "subclassification" */ -export const enum subclassification_select_column { - name = "name" -} -/** update columns of table "subclassification" */ -export const enum subclassification_update_column { - name = "name" -} -/** unique or primary key constraints on table "tag" */ -export const enum tag_constraint { - tag_pkey = "tag_pkey" -} -/** select columns of table "tag" */ -export const enum tag_select_column { - bookingId = "bookingId", - connectionId = "connectionId", - createdAt = "createdAt", - id = "id", - json = "json", - paymentId = "paymentId", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef", - unitId = "unitId", - updatedAt = "updatedAt" -} -/** update columns of table "tag" */ -export const enum tag_update_column { - bookingId = "bookingId", - connectionId = "connectionId", - createdAt = "createdAt", - id = "id", - json = "json", - paymentId = "paymentId", - teamId = "teamId", - type = "type", - uniqueRef = "uniqueRef", - unitId = "unitId", - updatedAt = "updatedAt" -} -/** unique or primary key constraints on table "team" */ -export const enum team_constraint { - team_pkey = "team_pkey" -} -/** select columns of table "team" */ -export const enum team_select_column { - address = "address", - commissionPercentage = "commissionPercentage", - createdAt = "createdAt", - email = "email", - id = "id", - isActive = "isActive", - isTest = "isTest", - name = "name", - stripeId = "stripeId", - stripeSubscriptionItemId = "stripeSubscriptionItemId", - supportEmail = "supportEmail", - supportPhone = "supportPhone", - website = "website" -} -/** update columns of table "team" */ -export const enum team_update_column { - address = "address", - commissionPercentage = "commissionPercentage", - createdAt = "createdAt", - email = "email", - id = "id", - isActive = "isActive", - isTest = "isTest", - name = "name", - stripeId = "stripeId", - stripeSubscriptionItemId = "stripeSubscriptionItemId", - supportEmail = "supportEmail", - supportPhone = "supportPhone", - website = "website" -} -/** unique or primary key constraints on table "team_user" */ -export const enum teamUser_constraint { - team_user_pkey = "team_user_pkey" -} -/** select columns of table "team_user" */ -export const enum teamUser_select_column { - createdAt = "createdAt", - id = "id", - role = "role", - teamId = "teamId", - updatedAt = "updatedAt", - userId = "userId" -} -/** update columns of table "team_user" */ -export const enum teamUser_update_column { - createdAt = "createdAt", - id = "id", - role = "role", - teamId = "teamId", - updatedAt = "updatedAt", - userId = "userId" -} -/** unique or primary key constraints on table "unit" */ -export const enum unit_constraint { - unit_pkey = "unit_pkey" -} -/** select columns of table "unit" */ -export const enum unit_select_column { - connectionId = "connectionId", - createdAt = "createdAt", - entityId = "entityId", - id = "id", - metadata = "metadata", - name = "name", - status = "status", - teamId = "teamId", - uniqueRef = "uniqueRef", - updatedAt = "updatedAt" -} -/** update columns of table "unit" */ -export const enum unit_update_column { - connectionId = "connectionId", - createdAt = "createdAt", - entityId = "entityId", - id = "id", - metadata = "metadata", - name = "name", - status = "status", - teamId = "teamId", - uniqueRef = "uniqueRef", - updatedAt = "updatedAt" -} -/** unique or primary key constraints on table "user" */ -export const enum user_constraint { - user_pkey = "user_pkey" -} -/** select columns of table "user" */ -export const enum user_select_column { - createdAt = "createdAt", - email = "email", - id = "id", - isAdmin = "isAdmin", - name = "name", - status = "status", - sub = "sub", - trialExpiryAt = "trialExpiryAt" -} -export const enum user_status_enum { - active = "active", - banned = "banned", - disabled = "disabled", - trialExpired = "trialExpired" -} -/** update columns of table "user" */ -export const enum user_update_column { - createdAt = "createdAt", - email = "email", - id = "id", - isAdmin = "isAdmin", - name = "name", - status = "status", - sub = "sub", - trialExpiryAt = "trialExpiryAt" -} -/** unique or primary key constraints on table "user_status" */ -export const enum userStatus_constraint { - user_status_pkey = "user_status_pkey" -} -/** select columns of table "user_status" */ -export const enum userStatus_select_column { - name = "name" -} -/** update columns of table "user_status" */ -export const enum userStatus_update_column { - name = "name" -} -/** unique or primary key constraints on table "webhook" */ -export const enum webhook_constraint { - webhook_pkey = "webhook_pkey" -} -/** select columns of table "webhook" */ -export const enum webhook_select_column { - createdAt = "createdAt", - headers = "headers", - id = "id", - teamId = "teamId", - types = "types", - types2 = "types2", - url = "url" -} -/** update columns of table "webhook" */ -export const enum webhook_update_column { - createdAt = "createdAt", - headers = "headers", - id = "id", - teamId = "teamId", - types = "types", - types2 = "types2", - url = "url" -} -export class GraphQLError extends Error { - constructor(public response: GraphQLResponse) { - super(""); - console.error(response); - } - toString() { - return "GraphQL Response Error"; - } - } - - -export type UnwrapPromise = T extends Promise ? R : T; -export type ZeusState Promise> = NonNullable< - UnwrapPromise> ->; -export type ZeusHook< - T extends ( - ...args: any[] - ) => Record Promise>, - N extends keyof ReturnType -> = ZeusState[N]>; - -type WithTypeNameValue = T & { - __typename?: boolean; -}; -type AliasType = WithTypeNameValue & { - __alias?: Record>; -}; -export interface GraphQLResponse { - data?: Record; - errors?: Array<{ - message: string; - }>; -} -type DeepAnify = { - [P in keyof T]?: any; -}; -type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; -type IsArray = T extends Array ? InputType[] : InputType; -type FlattenArray = T extends Array ? R : T; - -type IsInterfaced, DST> = FlattenArray extends ZEUS_INTERFACES | ZEUS_UNIONS - ? { - [P in keyof SRC]: SRC[P] extends '__union' & infer R - ? P extends keyof DST - ? IsArray - : {} - : never; - }[keyof DST] & - { - [P in keyof Omit< - Pick< - SRC, - { - [P in keyof DST]: SRC[P] extends '__union' & infer R ? never : P; - }[keyof DST] - >, - '__typename' - >]: IsPayLoad extends boolean ? SRC[P] : IsArray; - } - : { - [P in keyof Pick]: IsPayLoad extends boolean ? SRC[P] : IsArray; - }; - -export type MapType = SRC extends DeepAnify ? IsInterfaced : never; -export type InputType = IsPayLoad extends { __alias: infer R } - ? { - [P in keyof R]: MapType; - } & - MapType, '__alias'>> - : MapType>; -type Func

= (...args: P) => R; -type AnyFunc = Func; -export type ArgsType = F extends Func ? P : never; -export type OperationOptions = { - variables?: Record; - operationName?: string; -}; -export type SubscriptionToGraphQL = { - ws: WebSocket; - on: (fn: (args: InputType) => void) => void; - off: (fn: (e: { data?: InputType; code?: number; reason?: string; message?: string }) => void) => void; - error: (fn: (e: { data?: InputType; errors?: string[] }) => void) => void; - open: () => void; -}; -export type SelectionFunction = (t: T | V) => T; -export type fetchOptions = ArgsType; -type websocketOptions = typeof WebSocket extends new ( - ...args: infer R -) => WebSocket - ? R - : never; -export type chainOptions = - | [fetchOptions[0], fetchOptions[1] & {websocket?: websocketOptions}] - | [fetchOptions[0]]; -export type FetchFunction = ( - query: string, - variables?: Record, -) => Promise; -export type SubscriptionFunction = (query: string) => any; -type NotUndefined = T extends undefined ? never : T; -export type ResolverType = NotUndefined; - - - -export const ZeusSelect = () => ((t: any) => t) as SelectionFunction; - -export const ScalarResolver = (scalar: string, value: any) => { - switch (scalar) { - case 'String': - return `${JSON.stringify(value)}`; - case 'Int': - return `${value}`; - case 'Float': - return `${value}`; - case 'Boolean': - return `${value}`; - case 'ID': - return `"${value}"`; - case 'enum': - return `${value}`; - case 'scalar': - return `${value}`; - default: - return false; - } -}; - - -export const TypesPropsResolver = ({ - value, - type, - name, - key, - blockArrays -}: { - value: any; - type: string; - name: string; - key?: string; - blockArrays?: boolean; -}): string => { - if (value === null) { - return `null`; - } - let resolvedValue = AllTypesProps[type][name]; - if (key) { - resolvedValue = resolvedValue[key]; - } - if (!resolvedValue) { - throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`) - } - const typeResolved = resolvedValue.type; - const isArray = resolvedValue.array; - const isArrayRequired = resolvedValue.arrayRequired; - if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { - const isRequired = resolvedValue.required ? '!' : ''; - let t = `${typeResolved}`; - if (isArray) { - if (isRequired) { - t = `${t}!`; - } - t = `[${t}]`; - if(isArrayRequired){ - t = `${t}!`; - } - }else{ - if (isRequired) { - t = `${t}!`; - } - } - return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; - } - if (isArray && !blockArrays) { - return `[${value - .map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })) - .join(',')}]`; - } - const reslovedScalar = ScalarResolver(typeResolved, value); - if (!reslovedScalar) { - const resolvedType = AllTypesProps[typeResolved]; - if (typeof resolvedType === 'object') { - const argsKeys = Object.keys(resolvedType); - return `{${argsKeys - .filter((ak) => value[ak] !== undefined) - .map( - (ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}` - )}}`; - } - return ScalarResolver(AllTypesProps[typeResolved], value) as string; - } - return reslovedScalar; -}; - - -const isArrayFunction = ( - parent: string[], - a: any[] -) => { - const [values, r] = a; - const [mainKey, key, ...keys] = parent; - const keyValues = Object.keys(values).filter((k) => typeof values[k] !== 'undefined'); - - if (!keys.length) { - return keyValues.length > 0 - ? `(${keyValues - .map( - (v) => - `${v}:${TypesPropsResolver({ - value: values[v], - type: mainKey, - name: key, - key: v - })}` - ) - .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` - : traverseToSeekArrays(parent, r); - } - - const [typeResolverKey] = keys.splice(keys.length - 1, 1); - let valueToResolve = ReturnTypes[mainKey][key]; - for (const k of keys) { - valueToResolve = ReturnTypes[valueToResolve][k]; - } - - const argumentString = - keyValues.length > 0 - ? `(${keyValues - .map( - (v) => - `${v}:${TypesPropsResolver({ - value: values[v], - type: valueToResolve, - name: typeResolverKey, - key: v - })}` - ) - .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` - : traverseToSeekArrays(parent, r); - return argumentString; -}; - - -const resolveKV = (k: string, v: boolean | string | { [x: string]: boolean | string }) => - typeof v === 'boolean' ? k : typeof v === 'object' ? `${k}{${objectToTree(v)}}` : `${k}${v}`; - - -const objectToTree = (o: { [x: string]: boolean | string }): string => - `{${Object.keys(o).map((k) => `${resolveKV(k, o[k])}`).join(' ')}}`; - - -const traverseToSeekArrays = (parent: string[], a?: any): string => { - if (!a) return ''; - if (Object.keys(a).length === 0) { - return ''; - } - let b: Record = {}; - if (Array.isArray(a)) { - return isArrayFunction([...parent], a); - } else { - if (typeof a === 'object') { - Object.keys(a) - .filter((k) => typeof a[k] !== 'undefined') - .forEach((k) => { - if (k === '__alias') { - Object.keys(a[k]).forEach((aliasKey) => { - const aliasOperations = a[k][aliasKey]; - const aliasOperationName = Object.keys(aliasOperations)[0]; - const aliasOperation = aliasOperations[aliasOperationName]; - b[ - `${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}` - ] = traverseToSeekArrays([...parent, aliasOperationName], aliasOperation); - }); - } else { - b[k] = traverseToSeekArrays([...parent, k], a[k]); - } - }); - } else { - return ''; - } - } - return objectToTree(b); -}; - - -const buildQuery = (type: string, a?: Record) => - traverseToSeekArrays([type], a); - - -const inspectVariables = (query: string) => { - const regex = /\$\b\w*__ZEUS_VAR__\[?[^!^\]^\s^,^\)^\}]*[!]?[\]]?[!]?/g; - let result; - const AllVariables: string[] = []; - while ((result = regex.exec(query))) { - if (AllVariables.includes(result[0])) { - continue; - } - AllVariables.push(result[0]); - } - if (!AllVariables.length) { - return query; - } - let filteredQuery = query; - AllVariables.forEach((variable) => { - while (filteredQuery.includes(variable)) { - filteredQuery = filteredQuery.replace(variable, variable.split('__ZEUS_VAR__')[0]); - } - }); - return `(${AllVariables.map((a) => a.split('__ZEUS_VAR__')) - .map(([variableName, variableType]) => `${variableName}:${variableType}`) - .join(', ')})${filteredQuery}`; -}; - - -export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => (o: Record) => - `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; - - -export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription', tName: string) => ( - o: Record, - options?: OperationOptions, -) => fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r:any) => { - seekForAliases(r) - return r -}); - - -export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => ( - t: 'query' | 'mutation' | 'subscription', - tName: string, -) => (o: Record, options?: OperationOptions) => - fn(queryConstruct(t, tName, options?.operationName)(o)); - - -const seekForAliases = (response: any) => { - const traverseAlias = (value: any) => { - if (Array.isArray(value)) { - value.forEach(seekForAliases); - } else { - if (typeof value === 'object') { - seekForAliases(value); - } - } - }; - if (typeof response === 'object' && response) { - const keys = Object.keys(response); - if (keys.length < 1) { - return; - } - keys.forEach((k) => { - const value = response[k]; - if (k.indexOf('__alias__') !== -1) { - const [operation, alias] = k.split('__alias__'); - response[alias] = { - [operation]: value, - }; - delete response[k]; - } - traverseAlias(value); - }); - } -}; - - -export const $ = (t: TemplateStringsArray): any => `ZEUS_VAR$${t.join('')}`; - - -export const resolverFor = < - X, - T extends keyof ValueTypes, - Z extends keyof ValueTypes[T], ->( - type: T, - field: Z, - fn: ( - args: Required[Z] extends [infer Input, any] ? Input : any, - source: any, - ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, -) => fn as (args?: any,source?: any) => any; - - -const handleFetchResponse = ( - response: Parameters['then']>[0], Function>>[0] -): Promise => { - if (!response.ok) { - return new Promise((_, reject) => { - response.text().then(text => { - try { reject(JSON.parse(text)); } - catch (err) { reject(text); } - }).catch(reject); - }); - } - return response.json(); -}; - -export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { - let fetchFunction; - let queryString = query; - let fetchOptions = options[1] || {}; - try { - fetchFunction = require('node-fetch'); - } catch (error) { - throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); - } - if (fetchOptions.method && fetchOptions.method === 'GET') { - try { - queryString = require('querystring').stringify(query); - } catch (error) { - throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); - } - return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) - .then(handleFetchResponse) - .then((response: GraphQLResponse) => { - if (response.errors) { - throw new GraphQLError(response); - } - return response.data; - }); - } - return fetchFunction(`${options[0]}`, { - body: JSON.stringify({ query: queryString, variables }), - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - ...fetchOptions - }) - .then(handleFetchResponse) - .then((response: GraphQLResponse) => { - if (response.errors) { - throw new GraphQLError(response); - } - return response.data; - }); - }; - - -export const apiSubscription = (options: chainOptions) => ( - query: string, - ) => { - try { - const WebSocket = require('ws'); - const queryString = options[0] + '?query=' + encodeURIComponent(query); - const wsString = queryString.replace('http', 'ws'); - const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; - const webSocketOptions = options[1]?.websocket || [host]; - const ws = new WebSocket(...webSocketOptions); - return { - ws, - on: (e: (args: any) => void) => { - ws.onmessage = (event:any) => { - if(event.data){ - const parsed = JSON.parse(event.data) - const data = parsed.data - if (data) { - seekForAliases(data); - } - return e(data); - } - }; - }, - off: (e: (args: any) => void) => { - ws.onclose = e; - }, - error: (e: (args: any) => void) => { - ws.onerror = e; - }, - open: (e: () => void) => { - ws.onopen = e; - }, - }; - } catch { - throw new Error('No websockets implemented. Please install ws'); - } - }; - - - -const allOperations = { - "query": "query_root", - "mutation": "mutation_root", - "subscription": "subscription_root" -} - -export type GenericOperation = O extends 'query' - ? "query_root" - : O extends 'mutation' - ? "mutation_root" - : "subscription_root" - -export const Thunder = (fn: FetchFunction) => < - O extends 'query' | 'mutation' | 'subscription', - R extends keyof ValueTypes = GenericOperation ->( - operation: O, -) => (o: Z | ValueTypes[R], ops?: OperationOptions) => - fullChainConstruct(fn)(operation, allOperations[operation])(o as any, ops) as Promise>; - -export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); - -export const SubscriptionThunder = (fn: SubscriptionFunction) => < - O extends 'query' | 'mutation' | 'subscription', - R extends keyof ValueTypes = GenericOperation ->( - operation: O, -) => ( - o: Z | ValueTypes[R], - ops?: OperationOptions -)=> - fullSubscriptionConstruct(fn)(operation, allOperations[operation])( - o as any, - ops, - ) as SubscriptionToGraphQL; - -export const Subscription = (...options: chainOptions) => SubscriptionThunder(apiSubscription(options)); -export const Zeus = < - Z extends ValueTypes[R], - O extends 'query' | 'mutation' | 'subscription', - R extends keyof ValueTypes = GenericOperation ->( - operation: O, - o: Z | ValueTypes[R], - operationName?: string, -) => queryConstruct(operation, allOperations[operation], operationName)(o as any); -export const Selector = (key: T) => ZeusSelect(); - \ No newline at end of file diff --git a/examples/typescript-node-big-schema/src/zeus/reactQuery.ts b/examples/typescript-node-big-schema/src/zeus/reactQuery.ts deleted file mode 100644 index e0791df5..00000000 --- a/examples/typescript-node-big-schema/src/zeus/reactQuery.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* eslint-disable */ - -import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useMutation, useQuery } from 'react-query'; -import type { UseMutationOptions, UseQueryOptions } from 'react-query'; - - -export function useTypedMutation>( - mutationKey: string | unknown[], - mutation: TData | ValueTypes[O], - options?: Omit, 'mutationKey' | 'mutationFn'>, - zeusOptions?: OperationOptions, - host = "", - hostOptions: chainOptions[1] = {}, -) { - return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); -} -export function useTypedQuery>( - queryKey: string | unknown[], - query: TData | ValueTypes[O], - options?: Omit, 'queryKey' | 'queryFn'>, - zeusOptions?: OperationOptions, - host = "", - hostOptions: chainOptions[1] = {}, -) { - return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); -} diff --git a/examples/typescript-node-big-schema/src/zeus/stuccoSubscriptions.ts b/examples/typescript-node-big-schema/src/zeus/stuccoSubscriptions.ts deleted file mode 100644 index 73c865d1..00000000 --- a/examples/typescript-node-big-schema/src/zeus/stuccoSubscriptions.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* eslint-disable */ -import { fullSubscriptionConstruct, chainOptions, GraphQLTypes, OperationOptions, SubscriptionToGraphQL, ValueTypes } from './index'; - -export type WebsocketSubscription = { - ws: WebSocket; - on: (...args: unknown[]) => void; - off: (...args: unknown[]) => void; - error: (...args: unknown[]) => void; - open: (...args: unknown[]) => void; -}; - - -export const stuccoSubscriptions = ( - subscriptionConnectionFunction: (params: { result: unknown; query: string }) => Promise, - ...options: chainOptions -) => (o: Z | ValueTypes[S], ops?: OperationOptions) => - fullSubscriptionConstruct(async (query) => { - const result = await fetch(options[0], { - body: JSON.stringify({ query }), - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - ...options[1], - }).then((r) => r.json()); - const sub = await subscriptionConnectionFunction({ result, query }); - return { - ...sub, - on: (fn: (args: any) => void) => { - sub.on(async (subscriptionPayload?: unknown) => { - const headers = options.length > 1 ? options[1]?.headers : {}; - const response = await fetch(options[0], { - method: 'POST', - headers, - body: JSON.stringify({ query, rawSubscription: true, subscriptionPayload }), - }).then((r) => r.json()); - fn(response.data); - }); - }, - }; - })('subscription', 'subscription_root')(o as any, ops) as SubscriptionToGraphQL; diff --git a/examples/typescript-node-big-schema/tsconfig.json b/examples/typescript-node-big-schema/tsconfig.json deleted file mode 100644 index a316c40f..00000000 --- a/examples/typescript-node-big-schema/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "sourceMap": true, - "target": "es6", - "module": "commonjs", - "moduleResolution": "node", - "esModuleInterop": true, - "experimentalDecorators": true, - "declaration": true, - "incremental": true, - "removeComments": true, - "noUnusedLocals": true, - "strict": true, - "outDir": "./lib", - "lib": ["es6", "es7", "esnext", "dom"], - "rootDir": "./src", - "baseUrl": "./src/" - }, - "exclude": ["lib", "node_modules", "docs", "__tests__", "generated", "examples"] -} diff --git a/examples/typescript-node-big-schema/x.gql b/examples/typescript-node-big-schema/x.gql deleted file mode 100644 index 8bde4208..00000000 --- a/examples/typescript-node-big-schema/x.gql +++ /dev/null @@ -1,14011 +0,0 @@ -schema { - query: query_root - mutation: mutation_root - subscription: subscription_root -} - -"""whether this query should be cached (Hasura Cloud only)""" -directive @cached( - """measured in seconds""" - ttl: Int! = 60 - - """refresh the cache entry""" - refresh: Boolean! = false -) on QUERY - -""" -Direct the client to resolve this field locally, either from the cache or local resolvers. -""" -directive @client( - """ - When true, the client will never use the cache for this value. See - https://www.apollographql.com/docs/react/essentials/local-state/#forcing-resolvers-with-clientalways-true - """ - always: Boolean -) on FIELD | FRAGMENT_DEFINITION | INLINE_FRAGMENT - -""" -Export this locally resolved field as a variable to be used in the remainder of this query. See -https://www.apollographql.com/docs/react/essentials/local-state/#using-client-fields-as-variables -""" -directive @export( - """The variable name to export this field as.""" - as: String! -) on FIELD - -""" -Specify a custom store key for this result. See -https://www.apollographql.com/docs/react/advanced/caching/#the-connection-directive -""" -directive @connection( - """Specify the store key.""" - key: String! - - """ - An array of query argument names to include in the generated custom store key. - """ - filter: [String!] -) on FIELD - -scalar _text - -""" -Boolean expression to compare columns of type "_text". All fields are combined with logical 'AND'. -""" -input _text_comparison_exp { - _eq: _text - _gt: _text - _gte: _text - _in: [_text!] - _is_null: Boolean - _lt: _text - _lte: _text - _neq: _text - _nin: [_text!] -} - -""" -columns and relationships of "booking" -""" -type booking { - bookedAt: timestamptz - bookerName: String - bookingChannel: booking_channel_enum - checkIn: timestamptz - checkOut: timestamptz - confirmationCode: String - - """An object relationship""" - connection: connection - connectionId: uuid - createdAt: timestamptz - currency: currency_enum - - """An object relationship""" - entity: entity - entityId: uuid - guestName: String - guests: Int - id: uuid! - isOTA: Boolean - - """An array relationship""" - lines( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): [line!]! - - """An aggregate relationship""" - lines_aggregate( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): line_aggregate! - metadata( - """JSON select path""" - path: String - ): jsonb - nights: Int - - """An object relationship""" - otaBooking: booking - otaBookingId: uuid - - """An array relationship""" - relatedBookings( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): [booking!]! - - """An aggregate relationship""" - relatedBookings_aggregate( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): booking_aggregate! - status: booking_status_enum - - """An array relationship""" - tags( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): [tag!]! - - """An aggregate relationship""" - tags_aggregate( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): tag_aggregate! - - """An object relationship""" - team: team - teamId: uuid - uniqueRef: String - - """An object relationship""" - unit: unit - unitId: uuid - updatedAt: timestamptz -} - -""" -aggregated selection of "booking" -""" -type booking_aggregate { - aggregate: booking_aggregate_fields - nodes: [booking!]! -} - -""" -aggregate fields of "booking" -""" -type booking_aggregate_fields { - avg: booking_avg_fields - count(columns: [booking_select_column!], distinct: Boolean): Int! - max: booking_max_fields - min: booking_min_fields - stddev: booking_stddev_fields - stddev_pop: booking_stddev_pop_fields - stddev_samp: booking_stddev_samp_fields - sum: booking_sum_fields - var_pop: booking_var_pop_fields - var_samp: booking_var_samp_fields - variance: booking_variance_fields -} - -""" -order by aggregate values of table "booking" -""" -input booking_aggregate_order_by { - avg: booking_avg_order_by - count: order_by - max: booking_max_order_by - min: booking_min_order_by - stddev: booking_stddev_order_by - stddev_pop: booking_stddev_pop_order_by - stddev_samp: booking_stddev_samp_order_by - sum: booking_sum_order_by - var_pop: booking_var_pop_order_by - var_samp: booking_var_samp_order_by - variance: booking_variance_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input booking_append_input { - metadata: jsonb -} - -""" -input type for inserting array relation for remote table "booking" -""" -input booking_arr_rel_insert_input { - data: [booking_insert_input!]! - - """on conflict condition""" - on_conflict: booking_on_conflict -} - -"""aggregate avg on columns""" -type booking_avg_fields { - guests: Float - nights: Float -} - -""" -order by avg() on columns of table "booking" -""" -input booking_avg_order_by { - guests: order_by - nights: order_by -} - -""" -Boolean expression to filter rows from the table "booking". All fields are combined with a logical 'AND'. -""" -input booking_bool_exp { - _and: [booking_bool_exp!] - _not: booking_bool_exp - _or: [booking_bool_exp!] - bookedAt: timestamptz_comparison_exp - bookerName: String_comparison_exp - bookingChannel: booking_channel_enum_comparison_exp - checkIn: timestamptz_comparison_exp - checkOut: timestamptz_comparison_exp - confirmationCode: String_comparison_exp - connection: connection_bool_exp - connectionId: uuid_comparison_exp - createdAt: timestamptz_comparison_exp - currency: currency_enum_comparison_exp - entity: entity_bool_exp - entityId: uuid_comparison_exp - guestName: String_comparison_exp - guests: Int_comparison_exp - id: uuid_comparison_exp - isOTA: Boolean_comparison_exp - lines: line_bool_exp - metadata: jsonb_comparison_exp - nights: Int_comparison_exp - otaBooking: booking_bool_exp - otaBookingId: uuid_comparison_exp - relatedBookings: booking_bool_exp - status: booking_status_enum_comparison_exp - tags: tag_bool_exp - team: team_bool_exp - teamId: uuid_comparison_exp - uniqueRef: String_comparison_exp - unit: unit_bool_exp - unitId: uuid_comparison_exp - updatedAt: timestamptz_comparison_exp -} - -""" -columns and relationships of "booking_channel" -""" -type booking_channel { - name: String! -} - -""" -aggregated selection of "booking_channel" -""" -type booking_channel_aggregate { - aggregate: booking_channel_aggregate_fields - nodes: [booking_channel!]! -} - -""" -aggregate fields of "booking_channel" -""" -type booking_channel_aggregate_fields { - count(columns: [booking_channel_select_column!], distinct: Boolean): Int! - max: booking_channel_max_fields - min: booking_channel_min_fields -} - -""" -Boolean expression to filter rows from the table "booking_channel". All fields are combined with a logical 'AND'. -""" -input booking_channel_bool_exp { - _and: [booking_channel_bool_exp!] - _not: booking_channel_bool_exp - _or: [booking_channel_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "booking_channel" -""" -enum booking_channel_constraint { - """unique or primary key constraint""" - booking_channel_pkey -} - -enum booking_channel_enum { - airbnb - bookingcom - direct - expedia - tripadvisor - vrbo -} - -""" -Boolean expression to compare columns of type "booking_channel_enum". All fields are combined with logical 'AND'. -""" -input booking_channel_enum_comparison_exp { - _eq: booking_channel_enum - _in: [booking_channel_enum!] - _is_null: Boolean - _neq: booking_channel_enum - _nin: [booking_channel_enum!] -} - -""" -input type for inserting data into table "booking_channel" -""" -input booking_channel_insert_input { - name: String -} - -"""aggregate max on columns""" -type booking_channel_max_fields { - name: String -} - -"""aggregate min on columns""" -type booking_channel_min_fields { - name: String -} - -""" -response of any mutation on the table "booking_channel" -""" -type booking_channel_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [booking_channel!]! -} - -""" -on conflict condition type for table "booking_channel" -""" -input booking_channel_on_conflict { - constraint: booking_channel_constraint! - update_columns: [booking_channel_update_column!]! = [] - where: booking_channel_bool_exp -} - -"""Ordering options when selecting data from "booking_channel".""" -input booking_channel_order_by { - name: order_by -} - -"""primary key columns input for table: booking_channel""" -input booking_channel_pk_columns_input { - name: String! -} - -""" -select columns of table "booking_channel" -""" -enum booking_channel_select_column { - """column name""" - name -} - -""" -input type for updating data in table "booking_channel" -""" -input booking_channel_set_input { - name: String -} - -""" -update columns of table "booking_channel" -""" -enum booking_channel_update_column { - """column name""" - name -} - -""" -unique or primary key constraints on table "booking" -""" -enum booking_constraint { - """unique or primary key constraint""" - booking_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input booking_delete_at_path_input { - metadata: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input booking_delete_elem_input { - metadata: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input booking_delete_key_input { - metadata: String -} - -""" -input type for incrementing numeric columns in table "booking" -""" -input booking_inc_input { - guests: Int - nights: Int -} - -""" -input type for inserting data into table "booking" -""" -input booking_insert_input { - bookedAt: timestamptz - bookerName: String - bookingChannel: booking_channel_enum - checkIn: timestamptz - checkOut: timestamptz - confirmationCode: String - connection: connection_obj_rel_insert_input - connectionId: uuid - createdAt: timestamptz - currency: currency_enum - entity: entity_obj_rel_insert_input - entityId: uuid - guestName: String - guests: Int - id: uuid - isOTA: Boolean - lines: line_arr_rel_insert_input - metadata: jsonb - nights: Int - otaBooking: booking_obj_rel_insert_input - otaBookingId: uuid - relatedBookings: booking_arr_rel_insert_input - status: booking_status_enum - tags: tag_arr_rel_insert_input - team: team_obj_rel_insert_input - teamId: uuid - uniqueRef: String - unit: unit_obj_rel_insert_input - unitId: uuid - updatedAt: timestamptz -} - -"""aggregate max on columns""" -type booking_max_fields { - bookedAt: timestamptz - bookerName: String - checkIn: timestamptz - checkOut: timestamptz - confirmationCode: String - connectionId: uuid - createdAt: timestamptz - entityId: uuid - guestName: String - guests: Int - id: uuid - nights: Int - otaBookingId: uuid - teamId: uuid - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -""" -order by max() on columns of table "booking" -""" -input booking_max_order_by { - bookedAt: order_by - bookerName: order_by - checkIn: order_by - checkOut: order_by - confirmationCode: order_by - connectionId: order_by - createdAt: order_by - entityId: order_by - guestName: order_by - guests: order_by - id: order_by - nights: order_by - otaBookingId: order_by - teamId: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by -} - -"""aggregate min on columns""" -type booking_min_fields { - bookedAt: timestamptz - bookerName: String - checkIn: timestamptz - checkOut: timestamptz - confirmationCode: String - connectionId: uuid - createdAt: timestamptz - entityId: uuid - guestName: String - guests: Int - id: uuid - nights: Int - otaBookingId: uuid - teamId: uuid - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -""" -order by min() on columns of table "booking" -""" -input booking_min_order_by { - bookedAt: order_by - bookerName: order_by - checkIn: order_by - checkOut: order_by - confirmationCode: order_by - connectionId: order_by - createdAt: order_by - entityId: order_by - guestName: order_by - guests: order_by - id: order_by - nights: order_by - otaBookingId: order_by - teamId: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by -} - -""" -response of any mutation on the table "booking" -""" -type booking_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [booking!]! -} - -""" -input type for inserting object relation for remote table "booking" -""" -input booking_obj_rel_insert_input { - data: booking_insert_input! - - """on conflict condition""" - on_conflict: booking_on_conflict -} - -""" -on conflict condition type for table "booking" -""" -input booking_on_conflict { - constraint: booking_constraint! - update_columns: [booking_update_column!]! = [] - where: booking_bool_exp -} - -"""Ordering options when selecting data from "booking".""" -input booking_order_by { - bookedAt: order_by - bookerName: order_by - bookingChannel: order_by - checkIn: order_by - checkOut: order_by - confirmationCode: order_by - connection: connection_order_by - connectionId: order_by - createdAt: order_by - currency: order_by - entity: entity_order_by - entityId: order_by - guestName: order_by - guests: order_by - id: order_by - isOTA: order_by - lines_aggregate: line_aggregate_order_by - metadata: order_by - nights: order_by - otaBooking: booking_order_by - otaBookingId: order_by - relatedBookings_aggregate: booking_aggregate_order_by - status: order_by - tags_aggregate: tag_aggregate_order_by - team: team_order_by - teamId: order_by - uniqueRef: order_by - unit: unit_order_by - unitId: order_by - updatedAt: order_by -} - -"""primary key columns input for table: booking""" -input booking_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input booking_prepend_input { - metadata: jsonb -} - -""" -select columns of table "booking" -""" -enum booking_select_column { - """column name""" - bookedAt - - """column name""" - bookerName - - """column name""" - bookingChannel - - """column name""" - checkIn - - """column name""" - checkOut - - """column name""" - confirmationCode - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - currency - - """column name""" - entityId - - """column name""" - guestName - - """column name""" - guests - - """column name""" - id - - """column name""" - isOTA - - """column name""" - metadata - - """column name""" - nights - - """column name""" - otaBookingId - - """column name""" - status - - """column name""" - teamId - - """column name""" - uniqueRef - - """column name""" - unitId - - """column name""" - updatedAt -} - -""" -input type for updating data in table "booking" -""" -input booking_set_input { - bookedAt: timestamptz - bookerName: String - bookingChannel: booking_channel_enum - checkIn: timestamptz - checkOut: timestamptz - confirmationCode: String - connectionId: uuid - createdAt: timestamptz - currency: currency_enum - entityId: uuid - guestName: String - guests: Int - id: uuid - isOTA: Boolean - metadata: jsonb - nights: Int - otaBookingId: uuid - status: booking_status_enum - teamId: uuid - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -enum booking_status_enum { - booked - cancelled - inquired - inquiry - payed -} - -""" -Boolean expression to compare columns of type "booking_status_enum". All fields are combined with logical 'AND'. -""" -input booking_status_enum_comparison_exp { - _eq: booking_status_enum - _in: [booking_status_enum!] - _is_null: Boolean - _neq: booking_status_enum - _nin: [booking_status_enum!] -} - -"""aggregate stddev on columns""" -type booking_stddev_fields { - guests: Float - nights: Float -} - -""" -order by stddev() on columns of table "booking" -""" -input booking_stddev_order_by { - guests: order_by - nights: order_by -} - -"""aggregate stddev_pop on columns""" -type booking_stddev_pop_fields { - guests: Float - nights: Float -} - -""" -order by stddev_pop() on columns of table "booking" -""" -input booking_stddev_pop_order_by { - guests: order_by - nights: order_by -} - -"""aggregate stddev_samp on columns""" -type booking_stddev_samp_fields { - guests: Float - nights: Float -} - -""" -order by stddev_samp() on columns of table "booking" -""" -input booking_stddev_samp_order_by { - guests: order_by - nights: order_by -} - -"""aggregate sum on columns""" -type booking_sum_fields { - guests: Int - nights: Int -} - -""" -order by sum() on columns of table "booking" -""" -input booking_sum_order_by { - guests: order_by - nights: order_by -} - -""" -update columns of table "booking" -""" -enum booking_update_column { - """column name""" - bookedAt - - """column name""" - bookerName - - """column name""" - bookingChannel - - """column name""" - checkIn - - """column name""" - checkOut - - """column name""" - confirmationCode - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - currency - - """column name""" - entityId - - """column name""" - guestName - - """column name""" - guests - - """column name""" - id - - """column name""" - isOTA - - """column name""" - metadata - - """column name""" - nights - - """column name""" - otaBookingId - - """column name""" - status - - """column name""" - teamId - - """column name""" - uniqueRef - - """column name""" - unitId - - """column name""" - updatedAt -} - -"""aggregate var_pop on columns""" -type booking_var_pop_fields { - guests: Float - nights: Float -} - -""" -order by var_pop() on columns of table "booking" -""" -input booking_var_pop_order_by { - guests: order_by - nights: order_by -} - -"""aggregate var_samp on columns""" -type booking_var_samp_fields { - guests: Float - nights: Float -} - -""" -order by var_samp() on columns of table "booking" -""" -input booking_var_samp_order_by { - guests: order_by - nights: order_by -} - -"""aggregate variance on columns""" -type booking_variance_fields { - guests: Float - nights: Float -} - -""" -order by variance() on columns of table "booking" -""" -input booking_variance_order_by { - guests: order_by - nights: order_by -} - -""" -columns and relationships of "booking_status" -""" -type bookingStatus { - name: String! -} - -""" -aggregated selection of "booking_status" -""" -type bookingStatus_aggregate { - aggregate: bookingStatus_aggregate_fields - nodes: [bookingStatus!]! -} - -""" -aggregate fields of "booking_status" -""" -type bookingStatus_aggregate_fields { - count(columns: [bookingStatus_select_column!], distinct: Boolean): Int! - max: bookingStatus_max_fields - min: bookingStatus_min_fields -} - -""" -Boolean expression to filter rows from the table "booking_status". All fields are combined with a logical 'AND'. -""" -input bookingStatus_bool_exp { - _and: [bookingStatus_bool_exp!] - _not: bookingStatus_bool_exp - _or: [bookingStatus_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "booking_status" -""" -enum bookingStatus_constraint { - """unique or primary key constraint""" - booking_status_pkey -} - -""" -input type for inserting data into table "booking_status" -""" -input bookingStatus_insert_input { - name: String -} - -"""aggregate max on columns""" -type bookingStatus_max_fields { - name: String -} - -"""aggregate min on columns""" -type bookingStatus_min_fields { - name: String -} - -""" -response of any mutation on the table "booking_status" -""" -type bookingStatus_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [bookingStatus!]! -} - -""" -on conflict condition type for table "booking_status" -""" -input bookingStatus_on_conflict { - constraint: bookingStatus_constraint! - update_columns: [bookingStatus_update_column!]! = [] - where: bookingStatus_bool_exp -} - -"""Ordering options when selecting data from "booking_status".""" -input bookingStatus_order_by { - name: order_by -} - -"""primary key columns input for table: bookingStatus""" -input bookingStatus_pk_columns_input { - name: String! -} - -""" -select columns of table "booking_status" -""" -enum bookingStatus_select_column { - """column name""" - name -} - -""" -input type for updating data in table "booking_status" -""" -input bookingStatus_set_input { - name: String -} - -""" -update columns of table "booking_status" -""" -enum bookingStatus_update_column { - """column name""" - name -} - -""" -Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. -""" -input Boolean_comparison_exp { - _eq: Boolean - _gt: Boolean - _gte: Boolean - _in: [Boolean!] - _is_null: Boolean - _lt: Boolean - _lte: Boolean - _neq: Boolean - _nin: [Boolean!] -} - -""" -columns and relationships of "classification" -""" -type classification { - name: String! -} - -""" -aggregated selection of "classification" -""" -type classification_aggregate { - aggregate: classification_aggregate_fields - nodes: [classification!]! -} - -""" -aggregate fields of "classification" -""" -type classification_aggregate_fields { - count(columns: [classification_select_column!], distinct: Boolean): Int! - max: classification_max_fields - min: classification_min_fields -} - -""" -Boolean expression to filter rows from the table "classification". All fields are combined with a logical 'AND'. -""" -input classification_bool_exp { - _and: [classification_bool_exp!] - _not: classification_bool_exp - _or: [classification_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "classification" -""" -enum classification_constraint { - """unique or primary key constraint""" - classification_pkey -} - -enum classification_enum { - adjustment - commission - exception - paymentFee - revenue - securityDeposit - tax -} - -""" -Boolean expression to compare columns of type "classification_enum". All fields are combined with logical 'AND'. -""" -input classification_enum_comparison_exp { - _eq: classification_enum - _in: [classification_enum!] - _is_null: Boolean - _neq: classification_enum - _nin: [classification_enum!] -} - -""" -input type for inserting data into table "classification" -""" -input classification_insert_input { - name: String -} - -"""aggregate max on columns""" -type classification_max_fields { - name: String -} - -"""aggregate min on columns""" -type classification_min_fields { - name: String -} - -""" -response of any mutation on the table "classification" -""" -type classification_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [classification!]! -} - -""" -on conflict condition type for table "classification" -""" -input classification_on_conflict { - constraint: classification_constraint! - update_columns: [classification_update_column!]! = [] - where: classification_bool_exp -} - -"""Ordering options when selecting data from "classification".""" -input classification_order_by { - name: order_by -} - -"""primary key columns input for table: classification""" -input classification_pk_columns_input { - name: String! -} - -""" -select columns of table "classification" -""" -enum classification_select_column { - """column name""" - name -} - -""" -input type for updating data in table "classification" -""" -input classification_set_input { - name: String -} - -""" -update columns of table "classification" -""" -enum classification_update_column { - """column name""" - name -} - -""" -columns and relationships of "connection" -""" -type connection { - """An array relationship""" - bookings( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): [booking!]! - - """An aggregate relationship""" - bookings_aggregate( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): booking_aggregate! - createdAt: timestamptz! - credentials( - """JSON select path""" - path: String - ): jsonb - - """An array relationship""" - entities( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): [entity!]! - - """An aggregate relationship""" - entities_aggregate( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): entity_aggregate! - id: uuid! - - """An object relationship""" - integration: integration! - integrationId: uuid! - - """An array relationship""" - jobs( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): [job!]! - - """An aggregate relationship""" - jobs_aggregate( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): job_aggregate! - - """An array relationship""" - lines( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): [line!]! - - """An aggregate relationship""" - lines_aggregate( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): line_aggregate! - - """An array relationship""" - metrics( - """distinct select on columns""" - distinct_on: [metric_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [metric_order_by!] - - """filter the rows returned""" - where: metric_bool_exp - ): [metric!]! - - """An aggregate relationship""" - metrics_aggregate( - """distinct select on columns""" - distinct_on: [metric_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [metric_order_by!] - - """filter the rows returned""" - where: metric_bool_exp - ): metric_aggregate! - name: String! - - """An array relationship""" - payments( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): [payment!]! - - """An aggregate relationship""" - payments_aggregate( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): payment_aggregate! - persistentState( - """JSON select path""" - path: String - ): jsonb - status: String - - """An array relationship""" - tags( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): [tag!]! - - """An aggregate relationship""" - tags_aggregate( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): tag_aggregate! - - """An object relationship""" - team: team! - teamId: uuid! - - """An array relationship""" - units( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): [unit!]! - - """An aggregate relationship""" - units_aggregate( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): unit_aggregate! - webhookKey: String -} - -""" -aggregated selection of "connection" -""" -type connection_aggregate { - aggregate: connection_aggregate_fields - nodes: [connection!]! -} - -""" -aggregate fields of "connection" -""" -type connection_aggregate_fields { - count(columns: [connection_select_column!], distinct: Boolean): Int! - max: connection_max_fields - min: connection_min_fields -} - -""" -order by aggregate values of table "connection" -""" -input connection_aggregate_order_by { - count: order_by - max: connection_max_order_by - min: connection_min_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input connection_append_input { - credentials: jsonb - persistentState: jsonb -} - -""" -input type for inserting array relation for remote table "connection" -""" -input connection_arr_rel_insert_input { - data: [connection_insert_input!]! - - """on conflict condition""" - on_conflict: connection_on_conflict -} - -""" -Boolean expression to filter rows from the table "connection". All fields are combined with a logical 'AND'. -""" -input connection_bool_exp { - _and: [connection_bool_exp!] - _not: connection_bool_exp - _or: [connection_bool_exp!] - bookings: booking_bool_exp - createdAt: timestamptz_comparison_exp - credentials: jsonb_comparison_exp - entities: entity_bool_exp - id: uuid_comparison_exp - integration: integration_bool_exp - integrationId: uuid_comparison_exp - jobs: job_bool_exp - lines: line_bool_exp - metrics: metric_bool_exp - name: String_comparison_exp - payments: payment_bool_exp - persistentState: jsonb_comparison_exp - status: String_comparison_exp - tags: tag_bool_exp - team: team_bool_exp - teamId: uuid_comparison_exp - units: unit_bool_exp - webhookKey: String_comparison_exp -} - -""" -unique or primary key constraints on table "connection" -""" -enum connection_constraint { - """unique or primary key constraint""" - connection_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input connection_delete_at_path_input { - credentials: [String!] - persistentState: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input connection_delete_elem_input { - credentials: Int - persistentState: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input connection_delete_key_input { - credentials: String - persistentState: String -} - -""" -input type for inserting data into table "connection" -""" -input connection_insert_input { - bookings: booking_arr_rel_insert_input - createdAt: timestamptz - credentials: jsonb - entities: entity_arr_rel_insert_input - id: uuid - integration: integration_obj_rel_insert_input - integrationId: uuid - jobs: job_arr_rel_insert_input - lines: line_arr_rel_insert_input - metrics: metric_arr_rel_insert_input - name: String - payments: payment_arr_rel_insert_input - persistentState: jsonb - status: String - tags: tag_arr_rel_insert_input - team: team_obj_rel_insert_input - teamId: uuid - units: unit_arr_rel_insert_input - webhookKey: String -} - -"""aggregate max on columns""" -type connection_max_fields { - createdAt: timestamptz - id: uuid - integrationId: uuid - name: String - status: String - teamId: uuid - webhookKey: String -} - -""" -order by max() on columns of table "connection" -""" -input connection_max_order_by { - createdAt: order_by - id: order_by - integrationId: order_by - name: order_by - status: order_by - teamId: order_by - webhookKey: order_by -} - -"""aggregate min on columns""" -type connection_min_fields { - createdAt: timestamptz - id: uuid - integrationId: uuid - name: String - status: String - teamId: uuid - webhookKey: String -} - -""" -order by min() on columns of table "connection" -""" -input connection_min_order_by { - createdAt: order_by - id: order_by - integrationId: order_by - name: order_by - status: order_by - teamId: order_by - webhookKey: order_by -} - -""" -response of any mutation on the table "connection" -""" -type connection_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [connection!]! -} - -""" -input type for inserting object relation for remote table "connection" -""" -input connection_obj_rel_insert_input { - data: connection_insert_input! - - """on conflict condition""" - on_conflict: connection_on_conflict -} - -""" -on conflict condition type for table "connection" -""" -input connection_on_conflict { - constraint: connection_constraint! - update_columns: [connection_update_column!]! = [] - where: connection_bool_exp -} - -"""Ordering options when selecting data from "connection".""" -input connection_order_by { - bookings_aggregate: booking_aggregate_order_by - createdAt: order_by - credentials: order_by - entities_aggregate: entity_aggregate_order_by - id: order_by - integration: integration_order_by - integrationId: order_by - jobs_aggregate: job_aggregate_order_by - lines_aggregate: line_aggregate_order_by - metrics_aggregate: metric_aggregate_order_by - name: order_by - payments_aggregate: payment_aggregate_order_by - persistentState: order_by - status: order_by - tags_aggregate: tag_aggregate_order_by - team: team_order_by - teamId: order_by - units_aggregate: unit_aggregate_order_by - webhookKey: order_by -} - -"""primary key columns input for table: connection""" -input connection_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input connection_prepend_input { - credentials: jsonb - persistentState: jsonb -} - -""" -select columns of table "connection" -""" -enum connection_select_column { - """column name""" - createdAt - - """column name""" - credentials - - """column name""" - id - - """column name""" - integrationId - - """column name""" - name - - """column name""" - persistentState - - """column name""" - status - - """column name""" - teamId - - """column name""" - webhookKey -} - -""" -input type for updating data in table "connection" -""" -input connection_set_input { - createdAt: timestamptz - credentials: jsonb - id: uuid - integrationId: uuid - name: String - persistentState: jsonb - status: String - teamId: uuid - webhookKey: String -} - -""" -update columns of table "connection" -""" -enum connection_update_column { - """column name""" - createdAt - - """column name""" - credentials - - """column name""" - id - - """column name""" - integrationId - - """column name""" - name - - """column name""" - persistentState - - """column name""" - status - - """column name""" - teamId - - """column name""" - webhookKey -} - -""" -columns and relationships of "currency" -""" -type currency { - name: String! -} - -""" -aggregated selection of "currency" -""" -type currency_aggregate { - aggregate: currency_aggregate_fields - nodes: [currency!]! -} - -""" -aggregate fields of "currency" -""" -type currency_aggregate_fields { - count(columns: [currency_select_column!], distinct: Boolean): Int! - max: currency_max_fields - min: currency_min_fields -} - -""" -Boolean expression to filter rows from the table "currency". All fields are combined with a logical 'AND'. -""" -input currency_bool_exp { - _and: [currency_bool_exp!] - _not: currency_bool_exp - _or: [currency_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "currency" -""" -enum currency_constraint { - """unique or primary key constraint""" - currency_pkey -} - -enum currency_enum { - aed - afn - all - amd - ang - aoa - ars - aud - awg - azn - bam - bbd - bdt - bgn - bhd - bif - bmd - bnd - bob - bov - brl - bsd - btn - bwp - byr - bzd - cad - cdf - che - chf - chw - clf - clp - cny - cop - cou - crc - cuc - cup - cve - czk - djf - dkk - dop - dzd - egp - ern - etb - eur - fjd - fkp - gbp - gel - ghs - gip - gmd - gnf - gtq - gyd - hkd - hnl - hrk - htg - huf - idr - ils - inr - iqd - irr - isk - jmd - jod - jpy - kes - kgs - khr - kmf - kpw - krw - kwd - kyd - kzt - lak - lbp - lkr - lrd - lsl - ltl - lvl - lyd - mad - mdl - mga - mkd - mmk - mnt - mop - mro - mur - mvr - mwk - mxn - mxv - myr - mzn - nad - ngn - nio - nok - npr - nzd - omr - pab - pen - pgk - php - pkr - pln - pyg - qar - ron - rsd - rub - rwf - sar - sbd - scr - sdg - sek - sgd - shp - sll - sos - srd - ssp - std - syp - szl - thb - tjs - tmt - tnd - top - try - ttd - twd - tzs - uah - ugx - usd - usn - uss - uyi - uyu - uzs - vef - vnd - vuv - wst - xaf - xag - xau - xba - xbb - xbc - xbd - xcd - xdr - xfu - xof - xpd - xpf - xpt - xts - xxx - yer - zar - zmw -} - -""" -Boolean expression to compare columns of type "currency_enum". All fields are combined with logical 'AND'. -""" -input currency_enum_comparison_exp { - _eq: currency_enum - _in: [currency_enum!] - _is_null: Boolean - _neq: currency_enum - _nin: [currency_enum!] -} - -""" -input type for inserting data into table "currency" -""" -input currency_insert_input { - name: String -} - -"""aggregate max on columns""" -type currency_max_fields { - name: String -} - -"""aggregate min on columns""" -type currency_min_fields { - name: String -} - -""" -response of any mutation on the table "currency" -""" -type currency_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [currency!]! -} - -""" -on conflict condition type for table "currency" -""" -input currency_on_conflict { - constraint: currency_constraint! - update_columns: [currency_update_column!]! = [] - where: currency_bool_exp -} - -"""Ordering options when selecting data from "currency".""" -input currency_order_by { - name: order_by -} - -"""primary key columns input for table: currency""" -input currency_pk_columns_input { - name: String! -} - -""" -select columns of table "currency" -""" -enum currency_select_column { - """column name""" - name -} - -""" -input type for updating data in table "currency" -""" -input currency_set_input { - name: String -} - -""" -update columns of table "currency" -""" -enum currency_update_column { - """column name""" - name -} - -""" -columns and relationships of "entity" -""" -type entity { - """An array relationship""" - bookings( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): [booking!]! - - """An aggregate relationship""" - bookings_aggregate( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): booking_aggregate! - - """An object relationship""" - connection: connection! - connectionId: uuid! - createdAt: timestamptz! - description: String! - diffJson( - """JSON select path""" - path: String - ): jsonb - hash: String - id: uuid! - - """An object relationship""" - job: job - jobId: uuid - json( - """JSON select path""" - path: String - ): jsonb - normalizedJson( - """JSON select path""" - path: String - ): jsonb - normalizedType: normalized_type_enum - parsedAt: timestamptz - - """An array relationship""" - payments( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): [payment!]! - - """An aggregate relationship""" - payments_aggregate( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): payment_aggregate! - - """An object relationship""" - predecessorEntity: entity - predecessorEntityId: uuid - status: entity_status_enum! - statusText: String - - """An array relationship""" - successorEntities( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): [entity!]! - - """An aggregate relationship""" - successorEntities_aggregate( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): entity_aggregate! - - """An object relationship""" - team: team - teamId: uuid - type: String! - uniqueRef: String - - """An array relationship""" - units( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): [unit!]! - - """An aggregate relationship""" - units_aggregate( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): unit_aggregate! - updatedAt: timestamptz! -} - -""" -aggregated selection of "entity" -""" -type entity_aggregate { - aggregate: entity_aggregate_fields - nodes: [entity!]! -} - -""" -aggregate fields of "entity" -""" -type entity_aggregate_fields { - count(columns: [entity_select_column!], distinct: Boolean): Int! - max: entity_max_fields - min: entity_min_fields -} - -""" -order by aggregate values of table "entity" -""" -input entity_aggregate_order_by { - count: order_by - max: entity_max_order_by - min: entity_min_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input entity_append_input { - diffJson: jsonb - json: jsonb - normalizedJson: jsonb -} - -""" -input type for inserting array relation for remote table "entity" -""" -input entity_arr_rel_insert_input { - data: [entity_insert_input!]! - - """on conflict condition""" - on_conflict: entity_on_conflict -} - -""" -Boolean expression to filter rows from the table "entity". All fields are combined with a logical 'AND'. -""" -input entity_bool_exp { - _and: [entity_bool_exp!] - _not: entity_bool_exp - _or: [entity_bool_exp!] - bookings: booking_bool_exp - connection: connection_bool_exp - connectionId: uuid_comparison_exp - createdAt: timestamptz_comparison_exp - description: String_comparison_exp - diffJson: jsonb_comparison_exp - hash: String_comparison_exp - id: uuid_comparison_exp - job: job_bool_exp - jobId: uuid_comparison_exp - json: jsonb_comparison_exp - normalizedJson: jsonb_comparison_exp - normalizedType: normalized_type_enum_comparison_exp - parsedAt: timestamptz_comparison_exp - payments: payment_bool_exp - predecessorEntity: entity_bool_exp - predecessorEntityId: uuid_comparison_exp - status: entity_status_enum_comparison_exp - statusText: String_comparison_exp - successorEntities: entity_bool_exp - team: team_bool_exp - teamId: uuid_comparison_exp - type: String_comparison_exp - uniqueRef: String_comparison_exp - units: unit_bool_exp - updatedAt: timestamptz_comparison_exp -} - -""" -unique or primary key constraints on table "entity" -""" -enum entity_constraint { - """unique or primary key constraint""" - entity_connection_id_job_id_type_unique_ref_key - - """unique or primary key constraint""" - entity_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input entity_delete_at_path_input { - diffJson: [String!] - json: [String!] - normalizedJson: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input entity_delete_elem_input { - diffJson: Int - json: Int - normalizedJson: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input entity_delete_key_input { - diffJson: String - json: String - normalizedJson: String -} - -""" -input type for inserting data into table "entity" -""" -input entity_insert_input { - bookings: booking_arr_rel_insert_input - connection: connection_obj_rel_insert_input - connectionId: uuid - createdAt: timestamptz - description: String - diffJson: jsonb - hash: String - id: uuid - job: job_obj_rel_insert_input - jobId: uuid - json: jsonb - normalizedJson: jsonb - normalizedType: normalized_type_enum - parsedAt: timestamptz - payments: payment_arr_rel_insert_input - predecessorEntity: entity_obj_rel_insert_input - predecessorEntityId: uuid - status: entity_status_enum - statusText: String - successorEntities: entity_arr_rel_insert_input - team: team_obj_rel_insert_input - teamId: uuid - type: String - uniqueRef: String - units: unit_arr_rel_insert_input - updatedAt: timestamptz -} - -"""aggregate max on columns""" -type entity_max_fields { - connectionId: uuid - createdAt: timestamptz - description: String - hash: String - id: uuid - jobId: uuid - parsedAt: timestamptz - predecessorEntityId: uuid - statusText: String - teamId: uuid - type: String - uniqueRef: String - updatedAt: timestamptz -} - -""" -order by max() on columns of table "entity" -""" -input entity_max_order_by { - connectionId: order_by - createdAt: order_by - description: order_by - hash: order_by - id: order_by - jobId: order_by - parsedAt: order_by - predecessorEntityId: order_by - statusText: order_by - teamId: order_by - type: order_by - uniqueRef: order_by - updatedAt: order_by -} - -"""aggregate min on columns""" -type entity_min_fields { - connectionId: uuid - createdAt: timestamptz - description: String - hash: String - id: uuid - jobId: uuid - parsedAt: timestamptz - predecessorEntityId: uuid - statusText: String - teamId: uuid - type: String - uniqueRef: String - updatedAt: timestamptz -} - -""" -order by min() on columns of table "entity" -""" -input entity_min_order_by { - connectionId: order_by - createdAt: order_by - description: order_by - hash: order_by - id: order_by - jobId: order_by - parsedAt: order_by - predecessorEntityId: order_by - statusText: order_by - teamId: order_by - type: order_by - uniqueRef: order_by - updatedAt: order_by -} - -""" -response of any mutation on the table "entity" -""" -type entity_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [entity!]! -} - -""" -input type for inserting object relation for remote table "entity" -""" -input entity_obj_rel_insert_input { - data: entity_insert_input! - - """on conflict condition""" - on_conflict: entity_on_conflict -} - -""" -on conflict condition type for table "entity" -""" -input entity_on_conflict { - constraint: entity_constraint! - update_columns: [entity_update_column!]! = [] - where: entity_bool_exp -} - -"""Ordering options when selecting data from "entity".""" -input entity_order_by { - bookings_aggregate: booking_aggregate_order_by - connection: connection_order_by - connectionId: order_by - createdAt: order_by - description: order_by - diffJson: order_by - hash: order_by - id: order_by - job: job_order_by - jobId: order_by - json: order_by - normalizedJson: order_by - normalizedType: order_by - parsedAt: order_by - payments_aggregate: payment_aggregate_order_by - predecessorEntity: entity_order_by - predecessorEntityId: order_by - status: order_by - statusText: order_by - successorEntities_aggregate: entity_aggregate_order_by - team: team_order_by - teamId: order_by - type: order_by - uniqueRef: order_by - units_aggregate: unit_aggregate_order_by - updatedAt: order_by -} - -"""primary key columns input for table: entity""" -input entity_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input entity_prepend_input { - diffJson: jsonb - json: jsonb - normalizedJson: jsonb -} - -""" -select columns of table "entity" -""" -enum entity_select_column { - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - description - - """column name""" - diffJson - - """column name""" - hash - - """column name""" - id - - """column name""" - jobId - - """column name""" - json - - """column name""" - normalizedJson - - """column name""" - normalizedType - - """column name""" - parsedAt - - """column name""" - predecessorEntityId - - """column name""" - status - - """column name""" - statusText - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - updatedAt -} - -""" -input type for updating data in table "entity" -""" -input entity_set_input { - connectionId: uuid - createdAt: timestamptz - description: String - diffJson: jsonb - hash: String - id: uuid - jobId: uuid - json: jsonb - normalizedJson: jsonb - normalizedType: normalized_type_enum - parsedAt: timestamptz - predecessorEntityId: uuid - status: entity_status_enum - statusText: String - teamId: uuid - type: String - uniqueRef: String - updatedAt: timestamptz -} - -enum entity_status_enum { - accepted - extracted - reconciled - rejected - transformed -} - -""" -Boolean expression to compare columns of type "entity_status_enum". All fields are combined with logical 'AND'. -""" -input entity_status_enum_comparison_exp { - _eq: entity_status_enum - _in: [entity_status_enum!] - _is_null: Boolean - _neq: entity_status_enum - _nin: [entity_status_enum!] -} - -""" -update columns of table "entity" -""" -enum entity_update_column { - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - description - - """column name""" - diffJson - - """column name""" - hash - - """column name""" - id - - """column name""" - jobId - - """column name""" - json - - """column name""" - normalizedJson - - """column name""" - normalizedType - - """column name""" - parsedAt - - """column name""" - predecessorEntityId - - """column name""" - status - - """column name""" - statusText - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - updatedAt -} - -""" -columns and relationships of "entity_status" -""" -type entityStatus { - name: String! -} - -""" -aggregated selection of "entity_status" -""" -type entityStatus_aggregate { - aggregate: entityStatus_aggregate_fields - nodes: [entityStatus!]! -} - -""" -aggregate fields of "entity_status" -""" -type entityStatus_aggregate_fields { - count(columns: [entityStatus_select_column!], distinct: Boolean): Int! - max: entityStatus_max_fields - min: entityStatus_min_fields -} - -""" -Boolean expression to filter rows from the table "entity_status". All fields are combined with a logical 'AND'. -""" -input entityStatus_bool_exp { - _and: [entityStatus_bool_exp!] - _not: entityStatus_bool_exp - _or: [entityStatus_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "entity_status" -""" -enum entityStatus_constraint { - """unique or primary key constraint""" - entity_status_pkey -} - -""" -input type for inserting data into table "entity_status" -""" -input entityStatus_insert_input { - name: String -} - -"""aggregate max on columns""" -type entityStatus_max_fields { - name: String -} - -"""aggregate min on columns""" -type entityStatus_min_fields { - name: String -} - -""" -response of any mutation on the table "entity_status" -""" -type entityStatus_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [entityStatus!]! -} - -""" -on conflict condition type for table "entity_status" -""" -input entityStatus_on_conflict { - constraint: entityStatus_constraint! - update_columns: [entityStatus_update_column!]! = [] - where: entityStatus_bool_exp -} - -"""Ordering options when selecting data from "entity_status".""" -input entityStatus_order_by { - name: order_by -} - -"""primary key columns input for table: entityStatus""" -input entityStatus_pk_columns_input { - name: String! -} - -""" -select columns of table "entity_status" -""" -enum entityStatus_select_column { - """column name""" - name -} - -""" -input type for updating data in table "entity_status" -""" -input entityStatus_set_input { - name: String -} - -""" -update columns of table "entity_status" -""" -enum entityStatus_update_column { - """column name""" - name -} - -scalar float8 - -""" -Boolean expression to compare columns of type "float8". All fields are combined with logical 'AND'. -""" -input float8_comparison_exp { - _eq: float8 - _gt: float8 - _gte: float8 - _in: [float8!] - _is_null: Boolean - _lt: float8 - _lte: float8 - _neq: float8 - _nin: [float8!] -} - -""" -Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. -""" -input Int_comparison_exp { - _eq: Int - _gt: Int - _gte: Int - _in: [Int!] - _is_null: Boolean - _lt: Int - _lte: Int - _neq: Int - _nin: [Int!] -} - -""" -columns and relationships of "integration" -""" -type integration { - apiDevUrl: String - apiUrl: String! - - """An array relationship""" - connections( - """distinct select on columns""" - distinct_on: [connection_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [connection_order_by!] - - """filter the rows returned""" - where: connection_bool_exp - ): [connection!]! - - """An aggregate relationship""" - connections_aggregate( - """distinct select on columns""" - distinct_on: [connection_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [connection_order_by!] - - """filter the rows returned""" - where: connection_bool_exp - ): connection_aggregate! - icon: String - id: uuid! - isApproved: Boolean - isPrivate: Boolean! - - """An array relationship""" - jobs( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): [job!]! - - """An aggregate relationship""" - jobs_aggregate( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): job_aggregate! - name: String! - - """An object relationship""" - team: team - teamId: uuid - type: integration_type_enum! - uniqueRef: String! -} - -""" -aggregated selection of "integration" -""" -type integration_aggregate { - aggregate: integration_aggregate_fields - nodes: [integration!]! -} - -""" -aggregate fields of "integration" -""" -type integration_aggregate_fields { - count(columns: [integration_select_column!], distinct: Boolean): Int! - max: integration_max_fields - min: integration_min_fields -} - -""" -order by aggregate values of table "integration" -""" -input integration_aggregate_order_by { - count: order_by - max: integration_max_order_by - min: integration_min_order_by -} - -""" -input type for inserting array relation for remote table "integration" -""" -input integration_arr_rel_insert_input { - data: [integration_insert_input!]! - - """on conflict condition""" - on_conflict: integration_on_conflict -} - -""" -Boolean expression to filter rows from the table "integration". All fields are combined with a logical 'AND'. -""" -input integration_bool_exp { - _and: [integration_bool_exp!] - _not: integration_bool_exp - _or: [integration_bool_exp!] - apiDevUrl: String_comparison_exp - apiUrl: String_comparison_exp - connections: connection_bool_exp - icon: String_comparison_exp - id: uuid_comparison_exp - isApproved: Boolean_comparison_exp - isPrivate: Boolean_comparison_exp - jobs: job_bool_exp - name: String_comparison_exp - team: team_bool_exp - teamId: uuid_comparison_exp - type: integration_type_enum_comparison_exp - uniqueRef: String_comparison_exp -} - -""" -unique or primary key constraints on table "integration" -""" -enum integration_constraint { - """unique or primary key constraint""" - integration_pkey -} - -""" -input type for inserting data into table "integration" -""" -input integration_insert_input { - apiDevUrl: String - apiUrl: String - connections: connection_arr_rel_insert_input - icon: String - id: uuid - isApproved: Boolean - isPrivate: Boolean - jobs: job_arr_rel_insert_input - name: String - team: team_obj_rel_insert_input - teamId: uuid - type: integration_type_enum - uniqueRef: String -} - -"""aggregate max on columns""" -type integration_max_fields { - apiDevUrl: String - apiUrl: String - icon: String - id: uuid - name: String - teamId: uuid - uniqueRef: String -} - -""" -order by max() on columns of table "integration" -""" -input integration_max_order_by { - apiDevUrl: order_by - apiUrl: order_by - icon: order_by - id: order_by - name: order_by - teamId: order_by - uniqueRef: order_by -} - -"""aggregate min on columns""" -type integration_min_fields { - apiDevUrl: String - apiUrl: String - icon: String - id: uuid - name: String - teamId: uuid - uniqueRef: String -} - -""" -order by min() on columns of table "integration" -""" -input integration_min_order_by { - apiDevUrl: order_by - apiUrl: order_by - icon: order_by - id: order_by - name: order_by - teamId: order_by - uniqueRef: order_by -} - -""" -response of any mutation on the table "integration" -""" -type integration_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [integration!]! -} - -""" -input type for inserting object relation for remote table "integration" -""" -input integration_obj_rel_insert_input { - data: integration_insert_input! - - """on conflict condition""" - on_conflict: integration_on_conflict -} - -""" -on conflict condition type for table "integration" -""" -input integration_on_conflict { - constraint: integration_constraint! - update_columns: [integration_update_column!]! = [] - where: integration_bool_exp -} - -"""Ordering options when selecting data from "integration".""" -input integration_order_by { - apiDevUrl: order_by - apiUrl: order_by - connections_aggregate: connection_aggregate_order_by - icon: order_by - id: order_by - isApproved: order_by - isPrivate: order_by - jobs_aggregate: job_aggregate_order_by - name: order_by - team: team_order_by - teamId: order_by - type: order_by - uniqueRef: order_by -} - -"""primary key columns input for table: integration""" -input integration_pk_columns_input { - id: uuid! -} - -""" -select columns of table "integration" -""" -enum integration_select_column { - """column name""" - apiDevUrl - - """column name""" - apiUrl - - """column name""" - icon - - """column name""" - id - - """column name""" - isApproved - - """column name""" - isPrivate - - """column name""" - name - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef -} - -""" -input type for updating data in table "integration" -""" -input integration_set_input { - apiDevUrl: String - apiUrl: String - icon: String - id: uuid - isApproved: Boolean - isPrivate: Boolean - name: String - teamId: uuid - type: integration_type_enum - uniqueRef: String -} - -enum integration_type_enum { - accountingPlatform - bookingChannel - otherService - paymentGateway - propertyManagementSystem -} - -""" -Boolean expression to compare columns of type "integration_type_enum". All fields are combined with logical 'AND'. -""" -input integration_type_enum_comparison_exp { - _eq: integration_type_enum - _in: [integration_type_enum!] - _is_null: Boolean - _neq: integration_type_enum - _nin: [integration_type_enum!] -} - -""" -update columns of table "integration" -""" -enum integration_update_column { - """column name""" - apiDevUrl - - """column name""" - apiUrl - - """column name""" - icon - - """column name""" - id - - """column name""" - isApproved - - """column name""" - isPrivate - - """column name""" - name - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef -} - -""" -columns and relationships of "integration_type" -""" -type integrationType { - name: String! -} - -""" -aggregated selection of "integration_type" -""" -type integrationType_aggregate { - aggregate: integrationType_aggregate_fields - nodes: [integrationType!]! -} - -""" -aggregate fields of "integration_type" -""" -type integrationType_aggregate_fields { - count(columns: [integrationType_select_column!], distinct: Boolean): Int! - max: integrationType_max_fields - min: integrationType_min_fields -} - -""" -Boolean expression to filter rows from the table "integration_type". All fields are combined with a logical 'AND'. -""" -input integrationType_bool_exp { - _and: [integrationType_bool_exp!] - _not: integrationType_bool_exp - _or: [integrationType_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "integration_type" -""" -enum integrationType_constraint { - """unique or primary key constraint""" - integration_type_pkey -} - -""" -input type for inserting data into table "integration_type" -""" -input integrationType_insert_input { - name: String -} - -"""aggregate max on columns""" -type integrationType_max_fields { - name: String -} - -"""aggregate min on columns""" -type integrationType_min_fields { - name: String -} - -""" -response of any mutation on the table "integration_type" -""" -type integrationType_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [integrationType!]! -} - -""" -on conflict condition type for table "integration_type" -""" -input integrationType_on_conflict { - constraint: integrationType_constraint! - update_columns: [integrationType_update_column!]! = [] - where: integrationType_bool_exp -} - -"""Ordering options when selecting data from "integration_type".""" -input integrationType_order_by { - name: order_by -} - -"""primary key columns input for table: integrationType""" -input integrationType_pk_columns_input { - name: String! -} - -""" -select columns of table "integration_type" -""" -enum integrationType_select_column { - """column name""" - name -} - -""" -input type for updating data in table "integration_type" -""" -input integrationType_set_input { - name: String -} - -""" -update columns of table "integration_type" -""" -enum integrationType_update_column { - """column name""" - name -} - -""" -columns and relationships of "issue" -""" -type issue { - code: String - createdAt: timestamptz! - id: uuid! - isPublic: Boolean - isResolved: Boolean - - """An object relationship""" - job: job! - jobId: uuid! - message: String - requestParams( - """JSON select path""" - path: String - ): jsonb - resolveParams( - """JSON select path""" - path: String - ): jsonb - - """An object relationship""" - team: team! - teamId: uuid! - type: String - updatedAt: timestamptz! -} - -""" -aggregated selection of "issue" -""" -type issue_aggregate { - aggregate: issue_aggregate_fields - nodes: [issue!]! -} - -""" -aggregate fields of "issue" -""" -type issue_aggregate_fields { - count(columns: [issue_select_column!], distinct: Boolean): Int! - max: issue_max_fields - min: issue_min_fields -} - -""" -order by aggregate values of table "issue" -""" -input issue_aggregate_order_by { - count: order_by - max: issue_max_order_by - min: issue_min_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input issue_append_input { - requestParams: jsonb - resolveParams: jsonb -} - -""" -input type for inserting array relation for remote table "issue" -""" -input issue_arr_rel_insert_input { - data: [issue_insert_input!]! - - """on conflict condition""" - on_conflict: issue_on_conflict -} - -""" -Boolean expression to filter rows from the table "issue". All fields are combined with a logical 'AND'. -""" -input issue_bool_exp { - _and: [issue_bool_exp!] - _not: issue_bool_exp - _or: [issue_bool_exp!] - code: String_comparison_exp - createdAt: timestamptz_comparison_exp - id: uuid_comparison_exp - isPublic: Boolean_comparison_exp - isResolved: Boolean_comparison_exp - job: job_bool_exp - jobId: uuid_comparison_exp - message: String_comparison_exp - requestParams: jsonb_comparison_exp - resolveParams: jsonb_comparison_exp - team: team_bool_exp - teamId: uuid_comparison_exp - type: String_comparison_exp - updatedAt: timestamptz_comparison_exp -} - -""" -unique or primary key constraints on table "issue" -""" -enum issue_constraint { - """unique or primary key constraint""" - issue_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input issue_delete_at_path_input { - requestParams: [String!] - resolveParams: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input issue_delete_elem_input { - requestParams: Int - resolveParams: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input issue_delete_key_input { - requestParams: String - resolveParams: String -} - -""" -input type for inserting data into table "issue" -""" -input issue_insert_input { - code: String - createdAt: timestamptz - id: uuid - isPublic: Boolean - isResolved: Boolean - job: job_obj_rel_insert_input - jobId: uuid - message: String - requestParams: jsonb - resolveParams: jsonb - team: team_obj_rel_insert_input - teamId: uuid - type: String - updatedAt: timestamptz -} - -"""aggregate max on columns""" -type issue_max_fields { - code: String - createdAt: timestamptz - id: uuid - jobId: uuid - message: String - teamId: uuid - type: String - updatedAt: timestamptz -} - -""" -order by max() on columns of table "issue" -""" -input issue_max_order_by { - code: order_by - createdAt: order_by - id: order_by - jobId: order_by - message: order_by - teamId: order_by - type: order_by - updatedAt: order_by -} - -"""aggregate min on columns""" -type issue_min_fields { - code: String - createdAt: timestamptz - id: uuid - jobId: uuid - message: String - teamId: uuid - type: String - updatedAt: timestamptz -} - -""" -order by min() on columns of table "issue" -""" -input issue_min_order_by { - code: order_by - createdAt: order_by - id: order_by - jobId: order_by - message: order_by - teamId: order_by - type: order_by - updatedAt: order_by -} - -""" -response of any mutation on the table "issue" -""" -type issue_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [issue!]! -} - -""" -on conflict condition type for table "issue" -""" -input issue_on_conflict { - constraint: issue_constraint! - update_columns: [issue_update_column!]! = [] - where: issue_bool_exp -} - -"""Ordering options when selecting data from "issue".""" -input issue_order_by { - code: order_by - createdAt: order_by - id: order_by - isPublic: order_by - isResolved: order_by - job: job_order_by - jobId: order_by - message: order_by - requestParams: order_by - resolveParams: order_by - team: team_order_by - teamId: order_by - type: order_by - updatedAt: order_by -} - -"""primary key columns input for table: issue""" -input issue_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input issue_prepend_input { - requestParams: jsonb - resolveParams: jsonb -} - -""" -select columns of table "issue" -""" -enum issue_select_column { - """column name""" - code - - """column name""" - createdAt - - """column name""" - id - - """column name""" - isPublic - - """column name""" - isResolved - - """column name""" - jobId - - """column name""" - message - - """column name""" - requestParams - - """column name""" - resolveParams - - """column name""" - teamId - - """column name""" - type - - """column name""" - updatedAt -} - -""" -input type for updating data in table "issue" -""" -input issue_set_input { - code: String - createdAt: timestamptz - id: uuid - isPublic: Boolean - isResolved: Boolean - jobId: uuid - message: String - requestParams: jsonb - resolveParams: jsonb - teamId: uuid - type: String - updatedAt: timestamptz -} - -""" -update columns of table "issue" -""" -enum issue_update_column { - """column name""" - code - - """column name""" - createdAt - - """column name""" - id - - """column name""" - isPublic - - """column name""" - isResolved - - """column name""" - jobId - - """column name""" - message - - """column name""" - requestParams - - """column name""" - resolveParams - - """column name""" - teamId - - """column name""" - type - - """column name""" - updatedAt -} - -""" -columns and relationships of "job" -""" -type job { - apiVersion: String - - """An object relationship""" - connection: connection - connectionId: uuid - createdAt: timestamptz! - endedAt: timestamptz - - """An array relationship""" - entities( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): [entity!]! - - """An aggregate relationship""" - entities_aggregate( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): entity_aggregate! - id: uuid! - - """An object relationship""" - integration: integration - integrationId: uuid - integrationSdkVersion: String - integrationVersion: String - - """An array relationship""" - issues( - """distinct select on columns""" - distinct_on: [issue_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [issue_order_by!] - - """filter the rows returned""" - where: issue_bool_exp - ): [issue!]! - - """An aggregate relationship""" - issues_aggregate( - """distinct select on columns""" - distinct_on: [issue_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [issue_order_by!] - - """filter the rows returned""" - where: issue_bool_exp - ): issue_aggregate! - logFile: String - logLink: String - logs( - """JSON select path""" - path: String - ): jsonb - method: job_method_enum - params( - """JSON select path""" - path: String - ): jsonb - requestId: String - response( - """JSON select path""" - path: String - ): jsonb - sdkVersion: String - startedAt: timestamptz - status: job_status_enum - - """An object relationship""" - team: team - teamId: uuid - updatedAt: timestamptz! -} - -""" -aggregated selection of "job" -""" -type job_aggregate { - aggregate: job_aggregate_fields - nodes: [job!]! -} - -""" -aggregate fields of "job" -""" -type job_aggregate_fields { - count(columns: [job_select_column!], distinct: Boolean): Int! - max: job_max_fields - min: job_min_fields -} - -""" -order by aggregate values of table "job" -""" -input job_aggregate_order_by { - count: order_by - max: job_max_order_by - min: job_min_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input job_append_input { - logs: jsonb - params: jsonb - response: jsonb -} - -""" -input type for inserting array relation for remote table "job" -""" -input job_arr_rel_insert_input { - data: [job_insert_input!]! - - """on conflict condition""" - on_conflict: job_on_conflict -} - -""" -Boolean expression to filter rows from the table "job". All fields are combined with a logical 'AND'. -""" -input job_bool_exp { - _and: [job_bool_exp!] - _not: job_bool_exp - _or: [job_bool_exp!] - apiVersion: String_comparison_exp - connection: connection_bool_exp - connectionId: uuid_comparison_exp - createdAt: timestamptz_comparison_exp - endedAt: timestamptz_comparison_exp - entities: entity_bool_exp - id: uuid_comparison_exp - integration: integration_bool_exp - integrationId: uuid_comparison_exp - integrationSdkVersion: String_comparison_exp - integrationVersion: String_comparison_exp - issues: issue_bool_exp - logFile: String_comparison_exp - logLink: String_comparison_exp - logs: jsonb_comparison_exp - method: job_method_enum_comparison_exp - params: jsonb_comparison_exp - requestId: String_comparison_exp - response: jsonb_comparison_exp - sdkVersion: String_comparison_exp - startedAt: timestamptz_comparison_exp - status: job_status_enum_comparison_exp - team: team_bool_exp - teamId: uuid_comparison_exp - updatedAt: timestamptz_comparison_exp -} - -""" -unique or primary key constraints on table "job" -""" -enum job_constraint { - """unique or primary key constraint""" - job_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input job_delete_at_path_input { - logs: [String!] - params: [String!] - response: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input job_delete_elem_input { - logs: Int - params: Int - response: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input job_delete_key_input { - logs: String - params: String - response: String -} - -""" -input type for inserting data into table "job" -""" -input job_insert_input { - apiVersion: String - connection: connection_obj_rel_insert_input - connectionId: uuid - createdAt: timestamptz - endedAt: timestamptz - entities: entity_arr_rel_insert_input - id: uuid - integration: integration_obj_rel_insert_input - integrationId: uuid - integrationSdkVersion: String - integrationVersion: String - issues: issue_arr_rel_insert_input - logFile: String - logLink: String - logs: jsonb - method: job_method_enum - params: jsonb - requestId: String - response: jsonb - sdkVersion: String - startedAt: timestamptz - status: job_status_enum - team: team_obj_rel_insert_input - teamId: uuid - updatedAt: timestamptz -} - -"""aggregate max on columns""" -type job_max_fields { - apiVersion: String - connectionId: uuid - createdAt: timestamptz - endedAt: timestamptz - id: uuid - integrationId: uuid - integrationSdkVersion: String - integrationVersion: String - logFile: String - logLink: String - requestId: String - sdkVersion: String - startedAt: timestamptz - teamId: uuid - updatedAt: timestamptz -} - -""" -order by max() on columns of table "job" -""" -input job_max_order_by { - apiVersion: order_by - connectionId: order_by - createdAt: order_by - endedAt: order_by - id: order_by - integrationId: order_by - integrationSdkVersion: order_by - integrationVersion: order_by - logFile: order_by - logLink: order_by - requestId: order_by - sdkVersion: order_by - startedAt: order_by - teamId: order_by - updatedAt: order_by -} - -enum job_method_enum { - act - connect - delete - enhance - extract - info - react - refresh - transform -} - -""" -Boolean expression to compare columns of type "job_method_enum". All fields are combined with logical 'AND'. -""" -input job_method_enum_comparison_exp { - _eq: job_method_enum - _in: [job_method_enum!] - _is_null: Boolean - _neq: job_method_enum - _nin: [job_method_enum!] -} - -"""aggregate min on columns""" -type job_min_fields { - apiVersion: String - connectionId: uuid - createdAt: timestamptz - endedAt: timestamptz - id: uuid - integrationId: uuid - integrationSdkVersion: String - integrationVersion: String - logFile: String - logLink: String - requestId: String - sdkVersion: String - startedAt: timestamptz - teamId: uuid - updatedAt: timestamptz -} - -""" -order by min() on columns of table "job" -""" -input job_min_order_by { - apiVersion: order_by - connectionId: order_by - createdAt: order_by - endedAt: order_by - id: order_by - integrationId: order_by - integrationSdkVersion: order_by - integrationVersion: order_by - logFile: order_by - logLink: order_by - requestId: order_by - sdkVersion: order_by - startedAt: order_by - teamId: order_by - updatedAt: order_by -} - -""" -response of any mutation on the table "job" -""" -type job_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [job!]! -} - -""" -input type for inserting object relation for remote table "job" -""" -input job_obj_rel_insert_input { - data: job_insert_input! - - """on conflict condition""" - on_conflict: job_on_conflict -} - -""" -on conflict condition type for table "job" -""" -input job_on_conflict { - constraint: job_constraint! - update_columns: [job_update_column!]! = [] - where: job_bool_exp -} - -"""Ordering options when selecting data from "job".""" -input job_order_by { - apiVersion: order_by - connection: connection_order_by - connectionId: order_by - createdAt: order_by - endedAt: order_by - entities_aggregate: entity_aggregate_order_by - id: order_by - integration: integration_order_by - integrationId: order_by - integrationSdkVersion: order_by - integrationVersion: order_by - issues_aggregate: issue_aggregate_order_by - logFile: order_by - logLink: order_by - logs: order_by - method: order_by - params: order_by - requestId: order_by - response: order_by - sdkVersion: order_by - startedAt: order_by - status: order_by - team: team_order_by - teamId: order_by - updatedAt: order_by -} - -"""primary key columns input for table: job""" -input job_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input job_prepend_input { - logs: jsonb - params: jsonb - response: jsonb -} - -""" -select columns of table "job" -""" -enum job_select_column { - """column name""" - apiVersion - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - endedAt - - """column name""" - id - - """column name""" - integrationId - - """column name""" - integrationSdkVersion - - """column name""" - integrationVersion - - """column name""" - logFile - - """column name""" - logLink - - """column name""" - logs - - """column name""" - method - - """column name""" - params - - """column name""" - requestId - - """column name""" - response - - """column name""" - sdkVersion - - """column name""" - startedAt - - """column name""" - status - - """column name""" - teamId - - """column name""" - updatedAt -} - -""" -input type for updating data in table "job" -""" -input job_set_input { - apiVersion: String - connectionId: uuid - createdAt: timestamptz - endedAt: timestamptz - id: uuid - integrationId: uuid - integrationSdkVersion: String - integrationVersion: String - logFile: String - logLink: String - logs: jsonb - method: job_method_enum - params: jsonb - requestId: String - response: jsonb - sdkVersion: String - startedAt: timestamptz - status: job_status_enum - teamId: uuid - updatedAt: timestamptz -} - -enum job_status_enum { - completed - failed - paused - queued - started -} - -""" -Boolean expression to compare columns of type "job_status_enum". All fields are combined with logical 'AND'. -""" -input job_status_enum_comparison_exp { - _eq: job_status_enum - _in: [job_status_enum!] - _is_null: Boolean - _neq: job_status_enum - _nin: [job_status_enum!] -} - -""" -update columns of table "job" -""" -enum job_update_column { - """column name""" - apiVersion - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - endedAt - - """column name""" - id - - """column name""" - integrationId - - """column name""" - integrationSdkVersion - - """column name""" - integrationVersion - - """column name""" - logFile - - """column name""" - logLink - - """column name""" - logs - - """column name""" - method - - """column name""" - params - - """column name""" - requestId - - """column name""" - response - - """column name""" - sdkVersion - - """column name""" - startedAt - - """column name""" - status - - """column name""" - teamId - - """column name""" - updatedAt -} - -""" -columns and relationships of "job_method" -""" -type jobMethod { - name: String! -} - -""" -aggregated selection of "job_method" -""" -type jobMethod_aggregate { - aggregate: jobMethod_aggregate_fields - nodes: [jobMethod!]! -} - -""" -aggregate fields of "job_method" -""" -type jobMethod_aggregate_fields { - count(columns: [jobMethod_select_column!], distinct: Boolean): Int! - max: jobMethod_max_fields - min: jobMethod_min_fields -} - -""" -Boolean expression to filter rows from the table "job_method". All fields are combined with a logical 'AND'. -""" -input jobMethod_bool_exp { - _and: [jobMethod_bool_exp!] - _not: jobMethod_bool_exp - _or: [jobMethod_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "job_method" -""" -enum jobMethod_constraint { - """unique or primary key constraint""" - job_method_pkey -} - -""" -input type for inserting data into table "job_method" -""" -input jobMethod_insert_input { - name: String -} - -"""aggregate max on columns""" -type jobMethod_max_fields { - name: String -} - -"""aggregate min on columns""" -type jobMethod_min_fields { - name: String -} - -""" -response of any mutation on the table "job_method" -""" -type jobMethod_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [jobMethod!]! -} - -""" -on conflict condition type for table "job_method" -""" -input jobMethod_on_conflict { - constraint: jobMethod_constraint! - update_columns: [jobMethod_update_column!]! = [] - where: jobMethod_bool_exp -} - -"""Ordering options when selecting data from "job_method".""" -input jobMethod_order_by { - name: order_by -} - -"""primary key columns input for table: jobMethod""" -input jobMethod_pk_columns_input { - name: String! -} - -""" -select columns of table "job_method" -""" -enum jobMethod_select_column { - """column name""" - name -} - -""" -input type for updating data in table "job_method" -""" -input jobMethod_set_input { - name: String -} - -""" -update columns of table "job_method" -""" -enum jobMethod_update_column { - """column name""" - name -} - -""" -columns and relationships of "job_status" -""" -type jobStatus { - name: String! -} - -""" -aggregated selection of "job_status" -""" -type jobStatus_aggregate { - aggregate: jobStatus_aggregate_fields - nodes: [jobStatus!]! -} - -""" -aggregate fields of "job_status" -""" -type jobStatus_aggregate_fields { - count(columns: [jobStatus_select_column!], distinct: Boolean): Int! - max: jobStatus_max_fields - min: jobStatus_min_fields -} - -""" -Boolean expression to filter rows from the table "job_status". All fields are combined with a logical 'AND'. -""" -input jobStatus_bool_exp { - _and: [jobStatus_bool_exp!] - _not: jobStatus_bool_exp - _or: [jobStatus_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "job_status" -""" -enum jobStatus_constraint { - """unique or primary key constraint""" - job_status_pkey -} - -""" -input type for inserting data into table "job_status" -""" -input jobStatus_insert_input { - name: String -} - -"""aggregate max on columns""" -type jobStatus_max_fields { - name: String -} - -"""aggregate min on columns""" -type jobStatus_min_fields { - name: String -} - -""" -response of any mutation on the table "job_status" -""" -type jobStatus_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [jobStatus!]! -} - -""" -on conflict condition type for table "job_status" -""" -input jobStatus_on_conflict { - constraint: jobStatus_constraint! - update_columns: [jobStatus_update_column!]! = [] - where: jobStatus_bool_exp -} - -"""Ordering options when selecting data from "job_status".""" -input jobStatus_order_by { - name: order_by -} - -"""primary key columns input for table: jobStatus""" -input jobStatus_pk_columns_input { - name: String! -} - -""" -select columns of table "job_status" -""" -enum jobStatus_select_column { - """column name""" - name -} - -""" -input type for updating data in table "job_status" -""" -input jobStatus_set_input { - name: String -} - -""" -update columns of table "job_status" -""" -enum jobStatus_update_column { - """column name""" - name -} - -scalar jsonb - -""" -Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. -""" -input jsonb_comparison_exp { - """is the column contained in the given json value""" - _contained_in: jsonb - - """does the column contain the given json value at the top level""" - _contains: jsonb - _eq: jsonb - _gt: jsonb - _gte: jsonb - - """does the string exist as a top-level key in the column""" - _has_key: String - - """do all of these strings exist as top-level keys in the column""" - _has_keys_all: [String!] - - """do any of these strings exist as top-level keys in the column""" - _has_keys_any: [String!] - _in: [jsonb!] - _is_null: Boolean - _lt: jsonb - _lte: jsonb - _neq: jsonb - _nin: [jsonb!] -} - -""" -columns and relationships of "line" -""" -type line { - """An object relationship""" - booking: booking - bookingId: uuid - centTotal: Int - classification: classification_enum - - """An object relationship""" - connection: connection - connectionId: uuid - createdAt: timestamptz! - description: String - - """An array relationship""" - enhancementLines( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): [line!]! - - """An aggregate relationship""" - enhancementLines_aggregate( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): line_aggregate! - - """An object relationship""" - enhancingLine: line - enhancingLineId: uuid - id: uuid! - invoiceStatus: String - isEnhanced: Boolean - metadata( - """JSON select path""" - path: String - ): jsonb - originCentTotal: Int - originCurrency: String - originExchangeRate: numeric - - """An object relationship""" - payment: payment - paymentId: uuid - subclassification: subclassification_enum - - """An object relationship""" - team: team - teamId: uuid - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -""" -aggregated selection of "line" -""" -type line_aggregate { - aggregate: line_aggregate_fields - nodes: [line!]! -} - -""" -aggregate fields of "line" -""" -type line_aggregate_fields { - avg: line_avg_fields - count(columns: [line_select_column!], distinct: Boolean): Int! - max: line_max_fields - min: line_min_fields - stddev: line_stddev_fields - stddev_pop: line_stddev_pop_fields - stddev_samp: line_stddev_samp_fields - sum: line_sum_fields - var_pop: line_var_pop_fields - var_samp: line_var_samp_fields - variance: line_variance_fields -} - -""" -order by aggregate values of table "line" -""" -input line_aggregate_order_by { - avg: line_avg_order_by - count: order_by - max: line_max_order_by - min: line_min_order_by - stddev: line_stddev_order_by - stddev_pop: line_stddev_pop_order_by - stddev_samp: line_stddev_samp_order_by - sum: line_sum_order_by - var_pop: line_var_pop_order_by - var_samp: line_var_samp_order_by - variance: line_variance_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input line_append_input { - metadata: jsonb -} - -""" -input type for inserting array relation for remote table "line" -""" -input line_arr_rel_insert_input { - data: [line_insert_input!]! - - """on conflict condition""" - on_conflict: line_on_conflict -} - -"""aggregate avg on columns""" -type line_avg_fields { - centTotal: Float - originCentTotal: Float - originExchangeRate: Float -} - -""" -order by avg() on columns of table "line" -""" -input line_avg_order_by { - centTotal: order_by - originCentTotal: order_by - originExchangeRate: order_by -} - -""" -Boolean expression to filter rows from the table "line". All fields are combined with a logical 'AND'. -""" -input line_bool_exp { - _and: [line_bool_exp!] - _not: line_bool_exp - _or: [line_bool_exp!] - booking: booking_bool_exp - bookingId: uuid_comparison_exp - centTotal: Int_comparison_exp - classification: classification_enum_comparison_exp - connection: connection_bool_exp - connectionId: uuid_comparison_exp - createdAt: timestamptz_comparison_exp - description: String_comparison_exp - enhancementLines: line_bool_exp - enhancingLine: line_bool_exp - enhancingLineId: uuid_comparison_exp - id: uuid_comparison_exp - invoiceStatus: String_comparison_exp - isEnhanced: Boolean_comparison_exp - metadata: jsonb_comparison_exp - originCentTotal: Int_comparison_exp - originCurrency: String_comparison_exp - originExchangeRate: numeric_comparison_exp - payment: payment_bool_exp - paymentId: uuid_comparison_exp - subclassification: subclassification_enum_comparison_exp - team: team_bool_exp - teamId: uuid_comparison_exp - type: String_comparison_exp - uniqueRef: String_comparison_exp - unitId: uuid_comparison_exp - updatedAt: timestamptz_comparison_exp -} - -""" -unique or primary key constraints on table "line" -""" -enum line_constraint { - """unique or primary key constraint""" - line_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input line_delete_at_path_input { - metadata: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input line_delete_elem_input { - metadata: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input line_delete_key_input { - metadata: String -} - -""" -input type for incrementing numeric columns in table "line" -""" -input line_inc_input { - centTotal: Int - originCentTotal: Int - originExchangeRate: numeric -} - -""" -input type for inserting data into table "line" -""" -input line_insert_input { - booking: booking_obj_rel_insert_input - bookingId: uuid - centTotal: Int - classification: classification_enum - connection: connection_obj_rel_insert_input - connectionId: uuid - createdAt: timestamptz - description: String - enhancementLines: line_arr_rel_insert_input - enhancingLine: line_obj_rel_insert_input - enhancingLineId: uuid - id: uuid - invoiceStatus: String - isEnhanced: Boolean - metadata: jsonb - originCentTotal: Int - originCurrency: String - originExchangeRate: numeric - payment: payment_obj_rel_insert_input - paymentId: uuid - subclassification: subclassification_enum - team: team_obj_rel_insert_input - teamId: uuid - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -"""aggregate max on columns""" -type line_max_fields { - bookingId: uuid - centTotal: Int - connectionId: uuid - createdAt: timestamptz - description: String - enhancingLineId: uuid - id: uuid - invoiceStatus: String - originCentTotal: Int - originCurrency: String - originExchangeRate: numeric - paymentId: uuid - teamId: uuid - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -""" -order by max() on columns of table "line" -""" -input line_max_order_by { - bookingId: order_by - centTotal: order_by - connectionId: order_by - createdAt: order_by - description: order_by - enhancingLineId: order_by - id: order_by - invoiceStatus: order_by - originCentTotal: order_by - originCurrency: order_by - originExchangeRate: order_by - paymentId: order_by - teamId: order_by - type: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by -} - -"""aggregate min on columns""" -type line_min_fields { - bookingId: uuid - centTotal: Int - connectionId: uuid - createdAt: timestamptz - description: String - enhancingLineId: uuid - id: uuid - invoiceStatus: String - originCentTotal: Int - originCurrency: String - originExchangeRate: numeric - paymentId: uuid - teamId: uuid - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -""" -order by min() on columns of table "line" -""" -input line_min_order_by { - bookingId: order_by - centTotal: order_by - connectionId: order_by - createdAt: order_by - description: order_by - enhancingLineId: order_by - id: order_by - invoiceStatus: order_by - originCentTotal: order_by - originCurrency: order_by - originExchangeRate: order_by - paymentId: order_by - teamId: order_by - type: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by -} - -""" -response of any mutation on the table "line" -""" -type line_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [line!]! -} - -""" -input type for inserting object relation for remote table "line" -""" -input line_obj_rel_insert_input { - data: line_insert_input! - - """on conflict condition""" - on_conflict: line_on_conflict -} - -""" -on conflict condition type for table "line" -""" -input line_on_conflict { - constraint: line_constraint! - update_columns: [line_update_column!]! = [] - where: line_bool_exp -} - -"""Ordering options when selecting data from "line".""" -input line_order_by { - booking: booking_order_by - bookingId: order_by - centTotal: order_by - classification: order_by - connection: connection_order_by - connectionId: order_by - createdAt: order_by - description: order_by - enhancementLines_aggregate: line_aggregate_order_by - enhancingLine: line_order_by - enhancingLineId: order_by - id: order_by - invoiceStatus: order_by - isEnhanced: order_by - metadata: order_by - originCentTotal: order_by - originCurrency: order_by - originExchangeRate: order_by - payment: payment_order_by - paymentId: order_by - subclassification: order_by - team: team_order_by - teamId: order_by - type: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by -} - -"""primary key columns input for table: line""" -input line_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input line_prepend_input { - metadata: jsonb -} - -""" -select columns of table "line" -""" -enum line_select_column { - """column name""" - bookingId - - """column name""" - centTotal - - """column name""" - classification - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - description - - """column name""" - enhancingLineId - - """column name""" - id - - """column name""" - invoiceStatus - - """column name""" - isEnhanced - - """column name""" - metadata - - """column name""" - originCentTotal - - """column name""" - originCurrency - - """column name""" - originExchangeRate - - """column name""" - paymentId - - """column name""" - subclassification - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - unitId - - """column name""" - updatedAt -} - -""" -input type for updating data in table "line" -""" -input line_set_input { - bookingId: uuid - centTotal: Int - classification: classification_enum - connectionId: uuid - createdAt: timestamptz - description: String - enhancingLineId: uuid - id: uuid - invoiceStatus: String - isEnhanced: Boolean - metadata: jsonb - originCentTotal: Int - originCurrency: String - originExchangeRate: numeric - paymentId: uuid - subclassification: subclassification_enum - teamId: uuid - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -"""aggregate stddev on columns""" -type line_stddev_fields { - centTotal: Float - originCentTotal: Float - originExchangeRate: Float -} - -""" -order by stddev() on columns of table "line" -""" -input line_stddev_order_by { - centTotal: order_by - originCentTotal: order_by - originExchangeRate: order_by -} - -"""aggregate stddev_pop on columns""" -type line_stddev_pop_fields { - centTotal: Float - originCentTotal: Float - originExchangeRate: Float -} - -""" -order by stddev_pop() on columns of table "line" -""" -input line_stddev_pop_order_by { - centTotal: order_by - originCentTotal: order_by - originExchangeRate: order_by -} - -"""aggregate stddev_samp on columns""" -type line_stddev_samp_fields { - centTotal: Float - originCentTotal: Float - originExchangeRate: Float -} - -""" -order by stddev_samp() on columns of table "line" -""" -input line_stddev_samp_order_by { - centTotal: order_by - originCentTotal: order_by - originExchangeRate: order_by -} - -"""aggregate sum on columns""" -type line_sum_fields { - centTotal: Int - originCentTotal: Int - originExchangeRate: numeric -} - -""" -order by sum() on columns of table "line" -""" -input line_sum_order_by { - centTotal: order_by - originCentTotal: order_by - originExchangeRate: order_by -} - -""" -update columns of table "line" -""" -enum line_update_column { - """column name""" - bookingId - - """column name""" - centTotal - - """column name""" - classification - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - description - - """column name""" - enhancingLineId - - """column name""" - id - - """column name""" - invoiceStatus - - """column name""" - isEnhanced - - """column name""" - metadata - - """column name""" - originCentTotal - - """column name""" - originCurrency - - """column name""" - originExchangeRate - - """column name""" - paymentId - - """column name""" - subclassification - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - unitId - - """column name""" - updatedAt -} - -"""aggregate var_pop on columns""" -type line_var_pop_fields { - centTotal: Float - originCentTotal: Float - originExchangeRate: Float -} - -""" -order by var_pop() on columns of table "line" -""" -input line_var_pop_order_by { - centTotal: order_by - originCentTotal: order_by - originExchangeRate: order_by -} - -"""aggregate var_samp on columns""" -type line_var_samp_fields { - centTotal: Float - originCentTotal: Float - originExchangeRate: Float -} - -""" -order by var_samp() on columns of table "line" -""" -input line_var_samp_order_by { - centTotal: order_by - originCentTotal: order_by - originExchangeRate: order_by -} - -"""aggregate variance on columns""" -type line_variance_fields { - centTotal: Float - originCentTotal: Float - originExchangeRate: Float -} - -""" -order by variance() on columns of table "line" -""" -input line_variance_order_by { - centTotal: order_by - originCentTotal: order_by - originExchangeRate: order_by -} - -""" -columns and relationships of "metric" -""" -type metric { - """An object relationship""" - connection: connection! - connectionId: uuid! - createdAt: timestamptz! - ensuedAt: timestamptz! - id: uuid! - metadata( - """JSON select path""" - path: String - ): jsonb! - - """An object relationship""" - team: team! - teamId: uuid! - text: String - type: String! - uniqueRef: String - unitId: uuid - updatedAt: timestamptz! - value: float8 -} - -""" -aggregated selection of "metric" -""" -type metric_aggregate { - aggregate: metric_aggregate_fields - nodes: [metric!]! -} - -""" -aggregate fields of "metric" -""" -type metric_aggregate_fields { - avg: metric_avg_fields - count(columns: [metric_select_column!], distinct: Boolean): Int! - max: metric_max_fields - min: metric_min_fields - stddev: metric_stddev_fields - stddev_pop: metric_stddev_pop_fields - stddev_samp: metric_stddev_samp_fields - sum: metric_sum_fields - var_pop: metric_var_pop_fields - var_samp: metric_var_samp_fields - variance: metric_variance_fields -} - -""" -order by aggregate values of table "metric" -""" -input metric_aggregate_order_by { - avg: metric_avg_order_by - count: order_by - max: metric_max_order_by - min: metric_min_order_by - stddev: metric_stddev_order_by - stddev_pop: metric_stddev_pop_order_by - stddev_samp: metric_stddev_samp_order_by - sum: metric_sum_order_by - var_pop: metric_var_pop_order_by - var_samp: metric_var_samp_order_by - variance: metric_variance_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input metric_append_input { - metadata: jsonb -} - -""" -input type for inserting array relation for remote table "metric" -""" -input metric_arr_rel_insert_input { - data: [metric_insert_input!]! - - """on conflict condition""" - on_conflict: metric_on_conflict -} - -"""aggregate avg on columns""" -type metric_avg_fields { - value: Float -} - -""" -order by avg() on columns of table "metric" -""" -input metric_avg_order_by { - value: order_by -} - -""" -Boolean expression to filter rows from the table "metric". All fields are combined with a logical 'AND'. -""" -input metric_bool_exp { - _and: [metric_bool_exp!] - _not: metric_bool_exp - _or: [metric_bool_exp!] - connection: connection_bool_exp - connectionId: uuid_comparison_exp - createdAt: timestamptz_comparison_exp - ensuedAt: timestamptz_comparison_exp - id: uuid_comparison_exp - metadata: jsonb_comparison_exp - team: team_bool_exp - teamId: uuid_comparison_exp - text: String_comparison_exp - type: String_comparison_exp - uniqueRef: String_comparison_exp - unitId: uuid_comparison_exp - updatedAt: timestamptz_comparison_exp - value: float8_comparison_exp -} - -""" -unique or primary key constraints on table "metric" -""" -enum metric_constraint { - """unique or primary key constraint""" - metric_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input metric_delete_at_path_input { - metadata: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input metric_delete_elem_input { - metadata: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input metric_delete_key_input { - metadata: String -} - -""" -input type for incrementing numeric columns in table "metric" -""" -input metric_inc_input { - value: float8 -} - -""" -input type for inserting data into table "metric" -""" -input metric_insert_input { - connection: connection_obj_rel_insert_input - connectionId: uuid - createdAt: timestamptz - ensuedAt: timestamptz - id: uuid - metadata: jsonb - team: team_obj_rel_insert_input - teamId: uuid - text: String - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz - value: float8 -} - -"""aggregate max on columns""" -type metric_max_fields { - connectionId: uuid - createdAt: timestamptz - ensuedAt: timestamptz - id: uuid - teamId: uuid - text: String - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz - value: float8 -} - -""" -order by max() on columns of table "metric" -""" -input metric_max_order_by { - connectionId: order_by - createdAt: order_by - ensuedAt: order_by - id: order_by - teamId: order_by - text: order_by - type: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by - value: order_by -} - -"""aggregate min on columns""" -type metric_min_fields { - connectionId: uuid - createdAt: timestamptz - ensuedAt: timestamptz - id: uuid - teamId: uuid - text: String - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz - value: float8 -} - -""" -order by min() on columns of table "metric" -""" -input metric_min_order_by { - connectionId: order_by - createdAt: order_by - ensuedAt: order_by - id: order_by - teamId: order_by - text: order_by - type: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by - value: order_by -} - -""" -response of any mutation on the table "metric" -""" -type metric_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [metric!]! -} - -""" -on conflict condition type for table "metric" -""" -input metric_on_conflict { - constraint: metric_constraint! - update_columns: [metric_update_column!]! = [] - where: metric_bool_exp -} - -"""Ordering options when selecting data from "metric".""" -input metric_order_by { - connection: connection_order_by - connectionId: order_by - createdAt: order_by - ensuedAt: order_by - id: order_by - metadata: order_by - team: team_order_by - teamId: order_by - text: order_by - type: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by - value: order_by -} - -"""primary key columns input for table: metric""" -input metric_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input metric_prepend_input { - metadata: jsonb -} - -""" -select columns of table "metric" -""" -enum metric_select_column { - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - ensuedAt - - """column name""" - id - - """column name""" - metadata - - """column name""" - teamId - - """column name""" - text - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - unitId - - """column name""" - updatedAt - - """column name""" - value -} - -""" -input type for updating data in table "metric" -""" -input metric_set_input { - connectionId: uuid - createdAt: timestamptz - ensuedAt: timestamptz - id: uuid - metadata: jsonb - teamId: uuid - text: String - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz - value: float8 -} - -"""aggregate stddev on columns""" -type metric_stddev_fields { - value: Float -} - -""" -order by stddev() on columns of table "metric" -""" -input metric_stddev_order_by { - value: order_by -} - -"""aggregate stddev_pop on columns""" -type metric_stddev_pop_fields { - value: Float -} - -""" -order by stddev_pop() on columns of table "metric" -""" -input metric_stddev_pop_order_by { - value: order_by -} - -"""aggregate stddev_samp on columns""" -type metric_stddev_samp_fields { - value: Float -} - -""" -order by stddev_samp() on columns of table "metric" -""" -input metric_stddev_samp_order_by { - value: order_by -} - -"""aggregate sum on columns""" -type metric_sum_fields { - value: float8 -} - -""" -order by sum() on columns of table "metric" -""" -input metric_sum_order_by { - value: order_by -} - -""" -update columns of table "metric" -""" -enum metric_update_column { - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - ensuedAt - - """column name""" - id - - """column name""" - metadata - - """column name""" - teamId - - """column name""" - text - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - unitId - - """column name""" - updatedAt - - """column name""" - value -} - -"""aggregate var_pop on columns""" -type metric_var_pop_fields { - value: Float -} - -""" -order by var_pop() on columns of table "metric" -""" -input metric_var_pop_order_by { - value: order_by -} - -"""aggregate var_samp on columns""" -type metric_var_samp_fields { - value: Float -} - -""" -order by var_samp() on columns of table "metric" -""" -input metric_var_samp_order_by { - value: order_by -} - -"""aggregate variance on columns""" -type metric_variance_fields { - value: Float -} - -""" -order by variance() on columns of table "metric" -""" -input metric_variance_order_by { - value: order_by -} - -"""mutation root""" -type mutation_root { - """ - delete single row from the table: "booking" - """ - deleteBooking(id: uuid!): booking - - """ - delete single row from the table: "booking_status" - """ - deleteBookingStatus(name: String!): bookingStatus - - """ - delete data from the table: "booking_status" - """ - deleteBookingStatuses( - """filter the rows which have to be deleted""" - where: bookingStatus_bool_exp! - ): bookingStatus_mutation_response - - """ - delete data from the table: "booking" - """ - deleteBookings( - """filter the rows which have to be deleted""" - where: booking_bool_exp! - ): booking_mutation_response - - """ - delete single row from the table: "classification" - """ - deleteClassification(name: String!): classification - - """ - delete data from the table: "classification" - """ - deleteClassifications( - """filter the rows which have to be deleted""" - where: classification_bool_exp! - ): classification_mutation_response - - """ - delete single row from the table: "connection" - """ - deleteConnection(id: uuid!): connection - - """ - delete data from the table: "connection" - """ - deleteConnections( - """filter the rows which have to be deleted""" - where: connection_bool_exp! - ): connection_mutation_response - - """ - delete data from the table: "currency" - """ - deleteCurrencies( - """filter the rows which have to be deleted""" - where: currency_bool_exp! - ): currency_mutation_response - - """ - delete single row from the table: "currency" - """ - deleteCurrency(name: String!): currency - - """ - delete data from the table: "entity" - """ - deleteEntities( - """filter the rows which have to be deleted""" - where: entity_bool_exp! - ): entity_mutation_response - - """ - delete single row from the table: "entity" - """ - deleteEntity(id: uuid!): entity - - """ - delete single row from the table: "entity_status" - """ - deleteEntityStatus(name: String!): entityStatus - - """ - delete data from the table: "entity_status" - """ - deleteEntityStatuses( - """filter the rows which have to be deleted""" - where: entityStatus_bool_exp! - ): entityStatus_mutation_response - - """ - delete single row from the table: "integration" - """ - deleteIntegration(id: uuid!): integration - - """ - delete single row from the table: "integration_type" - """ - deleteIntegrationType(name: String!): integrationType - - """ - delete data from the table: "integration_type" - """ - deleteIntegrationTypes( - """filter the rows which have to be deleted""" - where: integrationType_bool_exp! - ): integrationType_mutation_response - - """ - delete data from the table: "integration" - """ - deleteIntegrations( - """filter the rows which have to be deleted""" - where: integration_bool_exp! - ): integration_mutation_response - - """ - delete single row from the table: "issue" - """ - deleteIssue(id: uuid!): issue - - """ - delete data from the table: "issue" - """ - deleteIssues( - """filter the rows which have to be deleted""" - where: issue_bool_exp! - ): issue_mutation_response - - """ - delete single row from the table: "job" - """ - deleteJob(id: uuid!): job - - """ - delete single row from the table: "job_method" - """ - deleteJobMethod(name: String!): jobMethod - - """ - delete data from the table: "job_method" - """ - deleteJobMethods( - """filter the rows which have to be deleted""" - where: jobMethod_bool_exp! - ): jobMethod_mutation_response - - """ - delete single row from the table: "job_status" - """ - deleteJobStatus(name: String!): jobStatus - - """ - delete data from the table: "job_status" - """ - deleteJobStatuses( - """filter the rows which have to be deleted""" - where: jobStatus_bool_exp! - ): jobStatus_mutation_response - - """ - delete data from the table: "job" - """ - deleteJobs( - """filter the rows which have to be deleted""" - where: job_bool_exp! - ): job_mutation_response - - """ - delete single row from the table: "line" - """ - deleteLine(id: uuid!): line - - """ - delete data from the table: "line" - """ - deleteLines( - """filter the rows which have to be deleted""" - where: line_bool_exp! - ): line_mutation_response - - """ - delete single row from the table: "metric" - """ - deleteMetric(id: uuid!): metric - - """ - delete data from the table: "metric" - """ - deleteMetrics( - """filter the rows which have to be deleted""" - where: metric_bool_exp! - ): metric_mutation_response - - """ - delete single row from the table: "normalized_type" - """ - deleteNormalizedType(name: String!): normalizedType - - """ - delete data from the table: "normalized_type" - """ - deleteNormalizedTypes( - """filter the rows which have to be deleted""" - where: normalizedType_bool_exp! - ): normalizedType_mutation_response - - """ - delete single row from the table: "payment" - """ - deletePayment(id: uuid!): payment - - """ - delete single row from the table: "payment_status" - """ - deletePaymentStatus(name: String!): paymentStatus - - """ - delete data from the table: "payment_status" - """ - deletePaymentStatuses( - """filter the rows which have to be deleted""" - where: paymentStatus_bool_exp! - ): paymentStatus_mutation_response - - """ - delete single row from the table: "payment_type" - """ - deletePaymentType(name: String!): paymentType - - """ - delete data from the table: "payment_type" - """ - deletePaymentTypes( - """filter the rows which have to be deleted""" - where: paymentType_bool_exp! - ): paymentType_mutation_response - - """ - delete data from the table: "payment" - """ - deletePayments( - """filter the rows which have to be deleted""" - where: payment_bool_exp! - ): payment_mutation_response - - """ - delete single row from the table: "subclassification" - """ - deleteSubclassification(name: String!): subclassification - - """ - delete data from the table: "subclassification" - """ - deleteSubclassifications( - """filter the rows which have to be deleted""" - where: subclassification_bool_exp! - ): subclassification_mutation_response - - """ - delete single row from the table: "tag" - """ - deleteTag(id: uuid!): tag - - """ - delete data from the table: "tag" - """ - deleteTags( - """filter the rows which have to be deleted""" - where: tag_bool_exp! - ): tag_mutation_response - - """ - delete single row from the table: "team" - """ - deleteTeam(id: uuid!): team - - """ - delete single row from the table: "team_user" - """ - deleteTeamUser(id: uuid!): teamUser - - """ - delete data from the table: "team_user" - """ - deleteTeamUsers( - """filter the rows which have to be deleted""" - where: teamUser_bool_exp! - ): teamUser_mutation_response - - """ - delete data from the table: "team" - """ - deleteTeams( - """filter the rows which have to be deleted""" - where: team_bool_exp! - ): team_mutation_response - - """ - delete single row from the table: "unit" - """ - deleteUnit(id: uuid!): unit - - """ - delete data from the table: "unit" - """ - deleteUnits( - """filter the rows which have to be deleted""" - where: unit_bool_exp! - ): unit_mutation_response - - """ - delete single row from the table: "user" - """ - deleteUser(id: uuid!): user - - """ - delete single row from the table: "user_status" - """ - deleteUserStatus(name: String!): userStatus - - """ - delete data from the table: "user_status" - """ - deleteUserStatuses( - """filter the rows which have to be deleted""" - where: userStatus_bool_exp! - ): userStatus_mutation_response - - """ - delete data from the table: "user" - """ - deleteUsers( - """filter the rows which have to be deleted""" - where: user_bool_exp! - ): user_mutation_response - - """ - delete single row from the table: "webhook" - """ - deleteWebhook(id: uuid!): webhook - - """ - delete data from the table: "webhook" - """ - deleteWebhooks( - """filter the rows which have to be deleted""" - where: webhook_bool_exp! - ): webhook_mutation_response - - """ - delete data from the table: "booking_channel" - """ - delete_booking_channel( - """filter the rows which have to be deleted""" - where: booking_channel_bool_exp! - ): booking_channel_mutation_response - - """ - delete single row from the table: "booking_channel" - """ - delete_booking_channel_by_pk(name: String!): booking_channel - - """ - insert a single row into the table: "booking" - """ - insertBooking( - """the row to be inserted""" - object: booking_insert_input! - - """on conflict condition""" - on_conflict: booking_on_conflict - ): booking - - """ - insert a single row into the table: "booking_status" - """ - insertBookingStatus( - """the row to be inserted""" - object: bookingStatus_insert_input! - - """on conflict condition""" - on_conflict: bookingStatus_on_conflict - ): bookingStatus - - """ - insert data into the table: "booking_status" - """ - insertBookingStatuses( - """the rows to be inserted""" - objects: [bookingStatus_insert_input!]! - - """on conflict condition""" - on_conflict: bookingStatus_on_conflict - ): bookingStatus_mutation_response - - """ - insert data into the table: "booking" - """ - insertBookings( - """the rows to be inserted""" - objects: [booking_insert_input!]! - - """on conflict condition""" - on_conflict: booking_on_conflict - ): booking_mutation_response - - """ - insert a single row into the table: "classification" - """ - insertClassification( - """the row to be inserted""" - object: classification_insert_input! - - """on conflict condition""" - on_conflict: classification_on_conflict - ): classification - - """ - insert data into the table: "classification" - """ - insertClassifications( - """the rows to be inserted""" - objects: [classification_insert_input!]! - - """on conflict condition""" - on_conflict: classification_on_conflict - ): classification_mutation_response - - """ - insert a single row into the table: "connection" - """ - insertConnection( - """the row to be inserted""" - object: connection_insert_input! - - """on conflict condition""" - on_conflict: connection_on_conflict - ): connection - - """ - insert data into the table: "connection" - """ - insertConnections( - """the rows to be inserted""" - objects: [connection_insert_input!]! - - """on conflict condition""" - on_conflict: connection_on_conflict - ): connection_mutation_response - - """ - insert data into the table: "currency" - """ - insertCurrencies( - """the rows to be inserted""" - objects: [currency_insert_input!]! - - """on conflict condition""" - on_conflict: currency_on_conflict - ): currency_mutation_response - - """ - insert a single row into the table: "currency" - """ - insertCurrency( - """the row to be inserted""" - object: currency_insert_input! - - """on conflict condition""" - on_conflict: currency_on_conflict - ): currency - - """ - insert data into the table: "entity" - """ - insertEntities( - """the rows to be inserted""" - objects: [entity_insert_input!]! - - """on conflict condition""" - on_conflict: entity_on_conflict - ): entity_mutation_response - - """ - insert a single row into the table: "entity" - """ - insertEntity( - """the row to be inserted""" - object: entity_insert_input! - - """on conflict condition""" - on_conflict: entity_on_conflict - ): entity - - """ - insert a single row into the table: "entity_status" - """ - insertEntityStatus( - """the row to be inserted""" - object: entityStatus_insert_input! - - """on conflict condition""" - on_conflict: entityStatus_on_conflict - ): entityStatus - - """ - insert data into the table: "entity_status" - """ - insertEntityStatuses( - """the rows to be inserted""" - objects: [entityStatus_insert_input!]! - - """on conflict condition""" - on_conflict: entityStatus_on_conflict - ): entityStatus_mutation_response - - """ - insert a single row into the table: "integration" - """ - insertIntegration( - """the row to be inserted""" - object: integration_insert_input! - - """on conflict condition""" - on_conflict: integration_on_conflict - ): integration - - """ - insert a single row into the table: "integration_type" - """ - insertIntegrationType( - """the row to be inserted""" - object: integrationType_insert_input! - - """on conflict condition""" - on_conflict: integrationType_on_conflict - ): integrationType - - """ - insert data into the table: "integration_type" - """ - insertIntegrationTypes( - """the rows to be inserted""" - objects: [integrationType_insert_input!]! - - """on conflict condition""" - on_conflict: integrationType_on_conflict - ): integrationType_mutation_response - - """ - insert data into the table: "integration" - """ - insertIntegrations( - """the rows to be inserted""" - objects: [integration_insert_input!]! - - """on conflict condition""" - on_conflict: integration_on_conflict - ): integration_mutation_response - - """ - insert a single row into the table: "issue" - """ - insertIssue( - """the row to be inserted""" - object: issue_insert_input! - - """on conflict condition""" - on_conflict: issue_on_conflict - ): issue - - """ - insert data into the table: "issue" - """ - insertIssues( - """the rows to be inserted""" - objects: [issue_insert_input!]! - - """on conflict condition""" - on_conflict: issue_on_conflict - ): issue_mutation_response - - """ - insert a single row into the table: "job" - """ - insertJob( - """the row to be inserted""" - object: job_insert_input! - - """on conflict condition""" - on_conflict: job_on_conflict - ): job - - """ - insert a single row into the table: "job_method" - """ - insertJobMethod( - """the row to be inserted""" - object: jobMethod_insert_input! - - """on conflict condition""" - on_conflict: jobMethod_on_conflict - ): jobMethod - - """ - insert data into the table: "job_method" - """ - insertJobMethods( - """the rows to be inserted""" - objects: [jobMethod_insert_input!]! - - """on conflict condition""" - on_conflict: jobMethod_on_conflict - ): jobMethod_mutation_response - - """ - insert a single row into the table: "job_status" - """ - insertJobStatus( - """the row to be inserted""" - object: jobStatus_insert_input! - - """on conflict condition""" - on_conflict: jobStatus_on_conflict - ): jobStatus - - """ - insert data into the table: "job_status" - """ - insertJobStatuses( - """the rows to be inserted""" - objects: [jobStatus_insert_input!]! - - """on conflict condition""" - on_conflict: jobStatus_on_conflict - ): jobStatus_mutation_response - - """ - insert data into the table: "job" - """ - insertJobs( - """the rows to be inserted""" - objects: [job_insert_input!]! - - """on conflict condition""" - on_conflict: job_on_conflict - ): job_mutation_response - - """ - insert a single row into the table: "line" - """ - insertLine( - """the row to be inserted""" - object: line_insert_input! - - """on conflict condition""" - on_conflict: line_on_conflict - ): line - - """ - insert data into the table: "line" - """ - insertLines( - """the rows to be inserted""" - objects: [line_insert_input!]! - - """on conflict condition""" - on_conflict: line_on_conflict - ): line_mutation_response - - """ - insert a single row into the table: "metric" - """ - insertMetric( - """the row to be inserted""" - object: metric_insert_input! - - """on conflict condition""" - on_conflict: metric_on_conflict - ): metric - - """ - insert data into the table: "metric" - """ - insertMetrics( - """the rows to be inserted""" - objects: [metric_insert_input!]! - - """on conflict condition""" - on_conflict: metric_on_conflict - ): metric_mutation_response - - """ - insert a single row into the table: "normalized_type" - """ - insertNormalizedType( - """the row to be inserted""" - object: normalizedType_insert_input! - - """on conflict condition""" - on_conflict: normalizedType_on_conflict - ): normalizedType - - """ - insert data into the table: "normalized_type" - """ - insertNormalizedTypes( - """the rows to be inserted""" - objects: [normalizedType_insert_input!]! - - """on conflict condition""" - on_conflict: normalizedType_on_conflict - ): normalizedType_mutation_response - - """ - insert a single row into the table: "payment" - """ - insertPayment( - """the row to be inserted""" - object: payment_insert_input! - - """on conflict condition""" - on_conflict: payment_on_conflict - ): payment - - """ - insert a single row into the table: "payment_status" - """ - insertPaymentStatus( - """the row to be inserted""" - object: paymentStatus_insert_input! - - """on conflict condition""" - on_conflict: paymentStatus_on_conflict - ): paymentStatus - - """ - insert data into the table: "payment_status" - """ - insertPaymentStatuses( - """the rows to be inserted""" - objects: [paymentStatus_insert_input!]! - - """on conflict condition""" - on_conflict: paymentStatus_on_conflict - ): paymentStatus_mutation_response - - """ - insert a single row into the table: "payment_type" - """ - insertPaymentType( - """the row to be inserted""" - object: paymentType_insert_input! - - """on conflict condition""" - on_conflict: paymentType_on_conflict - ): paymentType - - """ - insert data into the table: "payment_type" - """ - insertPaymentTypes( - """the rows to be inserted""" - objects: [paymentType_insert_input!]! - - """on conflict condition""" - on_conflict: paymentType_on_conflict - ): paymentType_mutation_response - - """ - insert data into the table: "payment" - """ - insertPayments( - """the rows to be inserted""" - objects: [payment_insert_input!]! - - """on conflict condition""" - on_conflict: payment_on_conflict - ): payment_mutation_response - - """ - insert a single row into the table: "subclassification" - """ - insertSubclassification( - """the row to be inserted""" - object: subclassification_insert_input! - - """on conflict condition""" - on_conflict: subclassification_on_conflict - ): subclassification - - """ - insert data into the table: "subclassification" - """ - insertSubclassifications( - """the rows to be inserted""" - objects: [subclassification_insert_input!]! - - """on conflict condition""" - on_conflict: subclassification_on_conflict - ): subclassification_mutation_response - - """ - insert a single row into the table: "tag" - """ - insertTag( - """the row to be inserted""" - object: tag_insert_input! - - """on conflict condition""" - on_conflict: tag_on_conflict - ): tag - - """ - insert data into the table: "tag" - """ - insertTags( - """the rows to be inserted""" - objects: [tag_insert_input!]! - - """on conflict condition""" - on_conflict: tag_on_conflict - ): tag_mutation_response - - """ - insert a single row into the table: "team" - """ - insertTeam( - """the row to be inserted""" - object: team_insert_input! - - """on conflict condition""" - on_conflict: team_on_conflict - ): team - - """ - insert a single row into the table: "team_user" - """ - insertTeamUser( - """the row to be inserted""" - object: teamUser_insert_input! - - """on conflict condition""" - on_conflict: teamUser_on_conflict - ): teamUser - - """ - insert data into the table: "team_user" - """ - insertTeamUsers( - """the rows to be inserted""" - objects: [teamUser_insert_input!]! - - """on conflict condition""" - on_conflict: teamUser_on_conflict - ): teamUser_mutation_response - - """ - insert data into the table: "team" - """ - insertTeams( - """the rows to be inserted""" - objects: [team_insert_input!]! - - """on conflict condition""" - on_conflict: team_on_conflict - ): team_mutation_response - - """ - insert a single row into the table: "unit" - """ - insertUnit( - """the row to be inserted""" - object: unit_insert_input! - - """on conflict condition""" - on_conflict: unit_on_conflict - ): unit - - """ - insert data into the table: "unit" - """ - insertUnits( - """the rows to be inserted""" - objects: [unit_insert_input!]! - - """on conflict condition""" - on_conflict: unit_on_conflict - ): unit_mutation_response - - """ - insert a single row into the table: "user" - """ - insertUser( - """the row to be inserted""" - object: user_insert_input! - - """on conflict condition""" - on_conflict: user_on_conflict - ): user - - """ - insert a single row into the table: "user_status" - """ - insertUserStatus( - """the row to be inserted""" - object: userStatus_insert_input! - - """on conflict condition""" - on_conflict: userStatus_on_conflict - ): userStatus - - """ - insert data into the table: "user_status" - """ - insertUserStatuses( - """the rows to be inserted""" - objects: [userStatus_insert_input!]! - - """on conflict condition""" - on_conflict: userStatus_on_conflict - ): userStatus_mutation_response - - """ - insert data into the table: "user" - """ - insertUsers( - """the rows to be inserted""" - objects: [user_insert_input!]! - - """on conflict condition""" - on_conflict: user_on_conflict - ): user_mutation_response - - """ - insert a single row into the table: "webhook" - """ - insertWebhook( - """the row to be inserted""" - object: webhook_insert_input! - - """on conflict condition""" - on_conflict: webhook_on_conflict - ): webhook - - """ - insert data into the table: "webhook" - """ - insertWebhooks( - """the rows to be inserted""" - objects: [webhook_insert_input!]! - - """on conflict condition""" - on_conflict: webhook_on_conflict - ): webhook_mutation_response - - """ - insert data into the table: "booking_channel" - """ - insert_booking_channel( - """the rows to be inserted""" - objects: [booking_channel_insert_input!]! - - """on conflict condition""" - on_conflict: booking_channel_on_conflict - ): booking_channel_mutation_response - - """ - insert a single row into the table: "booking_channel" - """ - insert_booking_channel_one( - """the row to be inserted""" - object: booking_channel_insert_input! - - """on conflict condition""" - on_conflict: booking_channel_on_conflict - ): booking_channel - - """ - update single row of the table: "booking" - """ - updateBooking( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: booking_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: booking_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: booking_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: booking_delete_key_input - - """increments the numeric columns with given value of the filtered values""" - _inc: booking_inc_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: booking_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: booking_set_input - pk_columns: booking_pk_columns_input! - ): booking - - """ - update single row of the table: "booking_status" - """ - updateBookingStatus( - """sets the columns of the filtered rows to the given values""" - _set: bookingStatus_set_input - pk_columns: bookingStatus_pk_columns_input! - ): bookingStatus - - """ - update data of the table: "booking_status" - """ - updateBookingStatuses( - """sets the columns of the filtered rows to the given values""" - _set: bookingStatus_set_input - - """filter the rows which have to be updated""" - where: bookingStatus_bool_exp! - ): bookingStatus_mutation_response - - """ - update data of the table: "booking" - """ - updateBookings( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: booking_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: booking_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: booking_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: booking_delete_key_input - - """increments the numeric columns with given value of the filtered values""" - _inc: booking_inc_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: booking_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: booking_set_input - - """filter the rows which have to be updated""" - where: booking_bool_exp! - ): booking_mutation_response - - """ - update single row of the table: "classification" - """ - updateClassification( - """sets the columns of the filtered rows to the given values""" - _set: classification_set_input - pk_columns: classification_pk_columns_input! - ): classification - - """ - update data of the table: "classification" - """ - updateClassifications( - """sets the columns of the filtered rows to the given values""" - _set: classification_set_input - - """filter the rows which have to be updated""" - where: classification_bool_exp! - ): classification_mutation_response - - """ - update single row of the table: "connection" - """ - updateConnection( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: connection_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: connection_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: connection_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: connection_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: connection_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: connection_set_input - pk_columns: connection_pk_columns_input! - ): connection - - """ - update data of the table: "connection" - """ - updateConnections( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: connection_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: connection_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: connection_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: connection_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: connection_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: connection_set_input - - """filter the rows which have to be updated""" - where: connection_bool_exp! - ): connection_mutation_response - - """ - update data of the table: "currency" - """ - updateCurrencies( - """sets the columns of the filtered rows to the given values""" - _set: currency_set_input - - """filter the rows which have to be updated""" - where: currency_bool_exp! - ): currency_mutation_response - - """ - update single row of the table: "currency" - """ - updateCurrency( - """sets the columns of the filtered rows to the given values""" - _set: currency_set_input - pk_columns: currency_pk_columns_input! - ): currency - - """ - update data of the table: "entity" - """ - updateEntities( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: entity_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: entity_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: entity_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: entity_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: entity_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: entity_set_input - - """filter the rows which have to be updated""" - where: entity_bool_exp! - ): entity_mutation_response - - """ - update single row of the table: "entity" - """ - updateEntity( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: entity_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: entity_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: entity_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: entity_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: entity_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: entity_set_input - pk_columns: entity_pk_columns_input! - ): entity - - """ - update single row of the table: "entity_status" - """ - updateEntityStatus( - """sets the columns of the filtered rows to the given values""" - _set: entityStatus_set_input - pk_columns: entityStatus_pk_columns_input! - ): entityStatus - - """ - update data of the table: "entity_status" - """ - updateEntityStatuses( - """sets the columns of the filtered rows to the given values""" - _set: entityStatus_set_input - - """filter the rows which have to be updated""" - where: entityStatus_bool_exp! - ): entityStatus_mutation_response - - """ - update single row of the table: "integration" - """ - updateIntegration( - """sets the columns of the filtered rows to the given values""" - _set: integration_set_input - pk_columns: integration_pk_columns_input! - ): integration - - """ - update single row of the table: "integration_type" - """ - updateIntegrationType( - """sets the columns of the filtered rows to the given values""" - _set: integrationType_set_input - pk_columns: integrationType_pk_columns_input! - ): integrationType - - """ - update data of the table: "integration_type" - """ - updateIntegrationTypes( - """sets the columns of the filtered rows to the given values""" - _set: integrationType_set_input - - """filter the rows which have to be updated""" - where: integrationType_bool_exp! - ): integrationType_mutation_response - - """ - update data of the table: "integration" - """ - updateIntegrations( - """sets the columns of the filtered rows to the given values""" - _set: integration_set_input - - """filter the rows which have to be updated""" - where: integration_bool_exp! - ): integration_mutation_response - - """ - update single row of the table: "issue" - """ - updateIssue( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: issue_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: issue_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: issue_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: issue_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: issue_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: issue_set_input - pk_columns: issue_pk_columns_input! - ): issue - - """ - update data of the table: "issue" - """ - updateIssues( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: issue_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: issue_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: issue_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: issue_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: issue_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: issue_set_input - - """filter the rows which have to be updated""" - where: issue_bool_exp! - ): issue_mutation_response - - """ - update single row of the table: "job" - """ - updateJob( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: job_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: job_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: job_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: job_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: job_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: job_set_input - pk_columns: job_pk_columns_input! - ): job - - """ - update single row of the table: "job_method" - """ - updateJobMethod( - """sets the columns of the filtered rows to the given values""" - _set: jobMethod_set_input - pk_columns: jobMethod_pk_columns_input! - ): jobMethod - - """ - update data of the table: "job_method" - """ - updateJobMethods( - """sets the columns of the filtered rows to the given values""" - _set: jobMethod_set_input - - """filter the rows which have to be updated""" - where: jobMethod_bool_exp! - ): jobMethod_mutation_response - - """ - update single row of the table: "job_status" - """ - updateJobStatus( - """sets the columns of the filtered rows to the given values""" - _set: jobStatus_set_input - pk_columns: jobStatus_pk_columns_input! - ): jobStatus - - """ - update data of the table: "job_status" - """ - updateJobStatuses( - """sets the columns of the filtered rows to the given values""" - _set: jobStatus_set_input - - """filter the rows which have to be updated""" - where: jobStatus_bool_exp! - ): jobStatus_mutation_response - - """ - update data of the table: "job" - """ - updateJobs( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: job_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: job_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: job_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: job_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: job_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: job_set_input - - """filter the rows which have to be updated""" - where: job_bool_exp! - ): job_mutation_response - - """ - update single row of the table: "line" - """ - updateLine( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: line_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: line_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: line_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: line_delete_key_input - - """increments the numeric columns with given value of the filtered values""" - _inc: line_inc_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: line_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: line_set_input - pk_columns: line_pk_columns_input! - ): line - - """ - update data of the table: "line" - """ - updateLines( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: line_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: line_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: line_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: line_delete_key_input - - """increments the numeric columns with given value of the filtered values""" - _inc: line_inc_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: line_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: line_set_input - - """filter the rows which have to be updated""" - where: line_bool_exp! - ): line_mutation_response - - """ - update single row of the table: "metric" - """ - updateMetric( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: metric_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: metric_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: metric_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: metric_delete_key_input - - """increments the numeric columns with given value of the filtered values""" - _inc: metric_inc_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: metric_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: metric_set_input - pk_columns: metric_pk_columns_input! - ): metric - - """ - update data of the table: "metric" - """ - updateMetrics( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: metric_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: metric_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: metric_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: metric_delete_key_input - - """increments the numeric columns with given value of the filtered values""" - _inc: metric_inc_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: metric_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: metric_set_input - - """filter the rows which have to be updated""" - where: metric_bool_exp! - ): metric_mutation_response - - """ - update single row of the table: "normalized_type" - """ - updateNormalizedType( - """sets the columns of the filtered rows to the given values""" - _set: normalizedType_set_input - pk_columns: normalizedType_pk_columns_input! - ): normalizedType - - """ - update data of the table: "normalized_type" - """ - updateNormalizedTypes( - """sets the columns of the filtered rows to the given values""" - _set: normalizedType_set_input - - """filter the rows which have to be updated""" - where: normalizedType_bool_exp! - ): normalizedType_mutation_response - - """ - update single row of the table: "payment" - """ - updatePayment( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: payment_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: payment_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: payment_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: payment_delete_key_input - - """increments the numeric columns with given value of the filtered values""" - _inc: payment_inc_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: payment_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: payment_set_input - pk_columns: payment_pk_columns_input! - ): payment - - """ - update single row of the table: "payment_status" - """ - updatePaymentStatus( - """sets the columns of the filtered rows to the given values""" - _set: paymentStatus_set_input - pk_columns: paymentStatus_pk_columns_input! - ): paymentStatus - - """ - update data of the table: "payment_status" - """ - updatePaymentStatuses( - """sets the columns of the filtered rows to the given values""" - _set: paymentStatus_set_input - - """filter the rows which have to be updated""" - where: paymentStatus_bool_exp! - ): paymentStatus_mutation_response - - """ - update single row of the table: "payment_type" - """ - updatePaymentType( - """sets the columns of the filtered rows to the given values""" - _set: paymentType_set_input - pk_columns: paymentType_pk_columns_input! - ): paymentType - - """ - update data of the table: "payment_type" - """ - updatePaymentTypes( - """sets the columns of the filtered rows to the given values""" - _set: paymentType_set_input - - """filter the rows which have to be updated""" - where: paymentType_bool_exp! - ): paymentType_mutation_response - - """ - update data of the table: "payment" - """ - updatePayments( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: payment_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: payment_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: payment_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: payment_delete_key_input - - """increments the numeric columns with given value of the filtered values""" - _inc: payment_inc_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: payment_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: payment_set_input - - """filter the rows which have to be updated""" - where: payment_bool_exp! - ): payment_mutation_response - - """ - update single row of the table: "subclassification" - """ - updateSubclassification( - """sets the columns of the filtered rows to the given values""" - _set: subclassification_set_input - pk_columns: subclassification_pk_columns_input! - ): subclassification - - """ - update data of the table: "subclassification" - """ - updateSubclassifications( - """sets the columns of the filtered rows to the given values""" - _set: subclassification_set_input - - """filter the rows which have to be updated""" - where: subclassification_bool_exp! - ): subclassification_mutation_response - - """ - update single row of the table: "tag" - """ - updateTag( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: tag_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: tag_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: tag_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: tag_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: tag_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: tag_set_input - pk_columns: tag_pk_columns_input! - ): tag - - """ - update data of the table: "tag" - """ - updateTags( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: tag_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: tag_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: tag_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: tag_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: tag_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: tag_set_input - - """filter the rows which have to be updated""" - where: tag_bool_exp! - ): tag_mutation_response - - """ - update single row of the table: "team" - """ - updateTeam( - """increments the numeric columns with given value of the filtered values""" - _inc: team_inc_input - - """sets the columns of the filtered rows to the given values""" - _set: team_set_input - pk_columns: team_pk_columns_input! - ): team - - """ - update single row of the table: "team_user" - """ - updateTeamUser( - """sets the columns of the filtered rows to the given values""" - _set: teamUser_set_input - pk_columns: teamUser_pk_columns_input! - ): teamUser - - """ - update data of the table: "team_user" - """ - updateTeamUsers( - """sets the columns of the filtered rows to the given values""" - _set: teamUser_set_input - - """filter the rows which have to be updated""" - where: teamUser_bool_exp! - ): teamUser_mutation_response - - """ - update data of the table: "team" - """ - updateTeams( - """increments the numeric columns with given value of the filtered values""" - _inc: team_inc_input - - """sets the columns of the filtered rows to the given values""" - _set: team_set_input - - """filter the rows which have to be updated""" - where: team_bool_exp! - ): team_mutation_response - - """ - update single row of the table: "unit" - """ - updateUnit( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: unit_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: unit_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: unit_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: unit_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: unit_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: unit_set_input - pk_columns: unit_pk_columns_input! - ): unit - - """ - update data of the table: "unit" - """ - updateUnits( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: unit_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: unit_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: unit_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: unit_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: unit_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: unit_set_input - - """filter the rows which have to be updated""" - where: unit_bool_exp! - ): unit_mutation_response - - """ - update single row of the table: "user" - """ - updateUser( - """sets the columns of the filtered rows to the given values""" - _set: user_set_input - pk_columns: user_pk_columns_input! - ): user - - """ - update single row of the table: "user_status" - """ - updateUserStatus( - """sets the columns of the filtered rows to the given values""" - _set: userStatus_set_input - pk_columns: userStatus_pk_columns_input! - ): userStatus - - """ - update data of the table: "user_status" - """ - updateUserStatuses( - """sets the columns of the filtered rows to the given values""" - _set: userStatus_set_input - - """filter the rows which have to be updated""" - where: userStatus_bool_exp! - ): userStatus_mutation_response - - """ - update data of the table: "user" - """ - updateUsers( - """sets the columns of the filtered rows to the given values""" - _set: user_set_input - - """filter the rows which have to be updated""" - where: user_bool_exp! - ): user_mutation_response - - """ - update single row of the table: "webhook" - """ - updateWebhook( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: webhook_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: webhook_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: webhook_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: webhook_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: webhook_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: webhook_set_input - pk_columns: webhook_pk_columns_input! - ): webhook - - """ - update data of the table: "webhook" - """ - updateWebhooks( - """append existing jsonb value of filtered columns with new jsonb value""" - _append: webhook_append_input - - """ - delete the field or element with specified path (for JSON arrays, negative integers count from the end) - """ - _delete_at_path: webhook_delete_at_path_input - - """ - delete the array element with specified index (negative integers count from - the end). throws an error if top level container is not an array - """ - _delete_elem: webhook_delete_elem_input - - """ - delete key/value pair or string element. key/value pairs are matched based on their key value - """ - _delete_key: webhook_delete_key_input - - """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: webhook_prepend_input - - """sets the columns of the filtered rows to the given values""" - _set: webhook_set_input - - """filter the rows which have to be updated""" - where: webhook_bool_exp! - ): webhook_mutation_response - - """ - update data of the table: "booking_channel" - """ - update_booking_channel( - """sets the columns of the filtered rows to the given values""" - _set: booking_channel_set_input - - """filter the rows which have to be updated""" - where: booking_channel_bool_exp! - ): booking_channel_mutation_response - - """ - update single row of the table: "booking_channel" - """ - update_booking_channel_by_pk( - """sets the columns of the filtered rows to the given values""" - _set: booking_channel_set_input - pk_columns: booking_channel_pk_columns_input! - ): booking_channel -} - -enum normalized_type_enum { - booking - line - metric - payment - tag - unit -} - -""" -Boolean expression to compare columns of type "normalized_type_enum". All fields are combined with logical 'AND'. -""" -input normalized_type_enum_comparison_exp { - _eq: normalized_type_enum - _in: [normalized_type_enum!] - _is_null: Boolean - _neq: normalized_type_enum - _nin: [normalized_type_enum!] -} - -""" -columns and relationships of "normalized_type" -""" -type normalizedType { - name: String! -} - -""" -aggregated selection of "normalized_type" -""" -type normalizedType_aggregate { - aggregate: normalizedType_aggregate_fields - nodes: [normalizedType!]! -} - -""" -aggregate fields of "normalized_type" -""" -type normalizedType_aggregate_fields { - count(columns: [normalizedType_select_column!], distinct: Boolean): Int! - max: normalizedType_max_fields - min: normalizedType_min_fields -} - -""" -Boolean expression to filter rows from the table "normalized_type". All fields are combined with a logical 'AND'. -""" -input normalizedType_bool_exp { - _and: [normalizedType_bool_exp!] - _not: normalizedType_bool_exp - _or: [normalizedType_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "normalized_type" -""" -enum normalizedType_constraint { - """unique or primary key constraint""" - normalized_type_pkey -} - -""" -input type for inserting data into table "normalized_type" -""" -input normalizedType_insert_input { - name: String -} - -"""aggregate max on columns""" -type normalizedType_max_fields { - name: String -} - -"""aggregate min on columns""" -type normalizedType_min_fields { - name: String -} - -""" -response of any mutation on the table "normalized_type" -""" -type normalizedType_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [normalizedType!]! -} - -""" -on conflict condition type for table "normalized_type" -""" -input normalizedType_on_conflict { - constraint: normalizedType_constraint! - update_columns: [normalizedType_update_column!]! = [] - where: normalizedType_bool_exp -} - -"""Ordering options when selecting data from "normalized_type".""" -input normalizedType_order_by { - name: order_by -} - -"""primary key columns input for table: normalizedType""" -input normalizedType_pk_columns_input { - name: String! -} - -""" -select columns of table "normalized_type" -""" -enum normalizedType_select_column { - """column name""" - name -} - -""" -input type for updating data in table "normalized_type" -""" -input normalizedType_set_input { - name: String -} - -""" -update columns of table "normalized_type" -""" -enum normalizedType_update_column { - """column name""" - name -} - -scalar numeric - -""" -Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. -""" -input numeric_comparison_exp { - _eq: numeric - _gt: numeric - _gte: numeric - _in: [numeric!] - _is_null: Boolean - _lt: numeric - _lte: numeric - _neq: numeric - _nin: [numeric!] -} - -"""column ordering options""" -enum order_by { - """in ascending order, nulls last""" - asc - - """in ascending order, nulls first""" - asc_nulls_first - - """in ascending order, nulls last""" - asc_nulls_last - - """in descending order, nulls first""" - desc - - """in descending order, nulls first""" - desc_nulls_first - - """in descending order, nulls last""" - desc_nulls_last -} - -""" -columns and relationships of "payment" -""" -type payment { - arrivesAt: timestamptz - centTotal: Int - - """An object relationship""" - connection: connection - connectionId: uuid - createdAt: timestamptz - currency: currency_enum - description: String - - """An object relationship""" - entity: entity - entityId: uuid - id: uuid! - - """An array relationship""" - lines( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): [line!]! - - """An aggregate relationship""" - lines_aggregate( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): line_aggregate! - metadata( - """JSON select path""" - path: String - ): jsonb - paidAt: timestamptz - status: payment_status_enum - - """An array relationship""" - tags( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): [tag!]! - - """An aggregate relationship""" - tags_aggregate( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): tag_aggregate! - - """An object relationship""" - team: team - teamId: uuid - type: String - uniqueRef: String - updatedAt: timestamptz -} - -""" -aggregated selection of "payment" -""" -type payment_aggregate { - aggregate: payment_aggregate_fields - nodes: [payment!]! -} - -""" -aggregate fields of "payment" -""" -type payment_aggregate_fields { - avg: payment_avg_fields - count(columns: [payment_select_column!], distinct: Boolean): Int! - max: payment_max_fields - min: payment_min_fields - stddev: payment_stddev_fields - stddev_pop: payment_stddev_pop_fields - stddev_samp: payment_stddev_samp_fields - sum: payment_sum_fields - var_pop: payment_var_pop_fields - var_samp: payment_var_samp_fields - variance: payment_variance_fields -} - -""" -order by aggregate values of table "payment" -""" -input payment_aggregate_order_by { - avg: payment_avg_order_by - count: order_by - max: payment_max_order_by - min: payment_min_order_by - stddev: payment_stddev_order_by - stddev_pop: payment_stddev_pop_order_by - stddev_samp: payment_stddev_samp_order_by - sum: payment_sum_order_by - var_pop: payment_var_pop_order_by - var_samp: payment_var_samp_order_by - variance: payment_variance_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input payment_append_input { - metadata: jsonb -} - -""" -input type for inserting array relation for remote table "payment" -""" -input payment_arr_rel_insert_input { - data: [payment_insert_input!]! - - """on conflict condition""" - on_conflict: payment_on_conflict -} - -"""aggregate avg on columns""" -type payment_avg_fields { - centTotal: Float -} - -""" -order by avg() on columns of table "payment" -""" -input payment_avg_order_by { - centTotal: order_by -} - -""" -Boolean expression to filter rows from the table "payment". All fields are combined with a logical 'AND'. -""" -input payment_bool_exp { - _and: [payment_bool_exp!] - _not: payment_bool_exp - _or: [payment_bool_exp!] - arrivesAt: timestamptz_comparison_exp - centTotal: Int_comparison_exp - connection: connection_bool_exp - connectionId: uuid_comparison_exp - createdAt: timestamptz_comparison_exp - currency: currency_enum_comparison_exp - description: String_comparison_exp - entity: entity_bool_exp - entityId: uuid_comparison_exp - id: uuid_comparison_exp - lines: line_bool_exp - metadata: jsonb_comparison_exp - paidAt: timestamptz_comparison_exp - status: payment_status_enum_comparison_exp - tags: tag_bool_exp - team: team_bool_exp - teamId: uuid_comparison_exp - type: String_comparison_exp - uniqueRef: String_comparison_exp - updatedAt: timestamptz_comparison_exp -} - -""" -unique or primary key constraints on table "payment" -""" -enum payment_constraint { - """unique or primary key constraint""" - payment_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input payment_delete_at_path_input { - metadata: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input payment_delete_elem_input { - metadata: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input payment_delete_key_input { - metadata: String -} - -""" -input type for incrementing numeric columns in table "payment" -""" -input payment_inc_input { - centTotal: Int -} - -""" -input type for inserting data into table "payment" -""" -input payment_insert_input { - arrivesAt: timestamptz - centTotal: Int - connection: connection_obj_rel_insert_input - connectionId: uuid - createdAt: timestamptz - currency: currency_enum - description: String - entity: entity_obj_rel_insert_input - entityId: uuid - id: uuid - lines: line_arr_rel_insert_input - metadata: jsonb - paidAt: timestamptz - status: payment_status_enum - tags: tag_arr_rel_insert_input - team: team_obj_rel_insert_input - teamId: uuid - type: String - uniqueRef: String - updatedAt: timestamptz -} - -"""aggregate max on columns""" -type payment_max_fields { - arrivesAt: timestamptz - centTotal: Int - connectionId: uuid - createdAt: timestamptz - description: String - entityId: uuid - id: uuid - paidAt: timestamptz - teamId: uuid - type: String - uniqueRef: String - updatedAt: timestamptz -} - -""" -order by max() on columns of table "payment" -""" -input payment_max_order_by { - arrivesAt: order_by - centTotal: order_by - connectionId: order_by - createdAt: order_by - description: order_by - entityId: order_by - id: order_by - paidAt: order_by - teamId: order_by - type: order_by - uniqueRef: order_by - updatedAt: order_by -} - -"""aggregate min on columns""" -type payment_min_fields { - arrivesAt: timestamptz - centTotal: Int - connectionId: uuid - createdAt: timestamptz - description: String - entityId: uuid - id: uuid - paidAt: timestamptz - teamId: uuid - type: String - uniqueRef: String - updatedAt: timestamptz -} - -""" -order by min() on columns of table "payment" -""" -input payment_min_order_by { - arrivesAt: order_by - centTotal: order_by - connectionId: order_by - createdAt: order_by - description: order_by - entityId: order_by - id: order_by - paidAt: order_by - teamId: order_by - type: order_by - uniqueRef: order_by - updatedAt: order_by -} - -""" -response of any mutation on the table "payment" -""" -type payment_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [payment!]! -} - -""" -input type for inserting object relation for remote table "payment" -""" -input payment_obj_rel_insert_input { - data: payment_insert_input! - - """on conflict condition""" - on_conflict: payment_on_conflict -} - -""" -on conflict condition type for table "payment" -""" -input payment_on_conflict { - constraint: payment_constraint! - update_columns: [payment_update_column!]! = [] - where: payment_bool_exp -} - -"""Ordering options when selecting data from "payment".""" -input payment_order_by { - arrivesAt: order_by - centTotal: order_by - connection: connection_order_by - connectionId: order_by - createdAt: order_by - currency: order_by - description: order_by - entity: entity_order_by - entityId: order_by - id: order_by - lines_aggregate: line_aggregate_order_by - metadata: order_by - paidAt: order_by - status: order_by - tags_aggregate: tag_aggregate_order_by - team: team_order_by - teamId: order_by - type: order_by - uniqueRef: order_by - updatedAt: order_by -} - -"""primary key columns input for table: payment""" -input payment_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input payment_prepend_input { - metadata: jsonb -} - -""" -select columns of table "payment" -""" -enum payment_select_column { - """column name""" - arrivesAt - - """column name""" - centTotal - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - currency - - """column name""" - description - - """column name""" - entityId - - """column name""" - id - - """column name""" - metadata - - """column name""" - paidAt - - """column name""" - status - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - updatedAt -} - -""" -input type for updating data in table "payment" -""" -input payment_set_input { - arrivesAt: timestamptz - centTotal: Int - connectionId: uuid - createdAt: timestamptz - currency: currency_enum - description: String - entityId: uuid - id: uuid - metadata: jsonb - paidAt: timestamptz - status: payment_status_enum - teamId: uuid - type: String - uniqueRef: String - updatedAt: timestamptz -} - -enum payment_status_enum { - arrived - cancelled - pending -} - -""" -Boolean expression to compare columns of type "payment_status_enum". All fields are combined with logical 'AND'. -""" -input payment_status_enum_comparison_exp { - _eq: payment_status_enum - _in: [payment_status_enum!] - _is_null: Boolean - _neq: payment_status_enum - _nin: [payment_status_enum!] -} - -"""aggregate stddev on columns""" -type payment_stddev_fields { - centTotal: Float -} - -""" -order by stddev() on columns of table "payment" -""" -input payment_stddev_order_by { - centTotal: order_by -} - -"""aggregate stddev_pop on columns""" -type payment_stddev_pop_fields { - centTotal: Float -} - -""" -order by stddev_pop() on columns of table "payment" -""" -input payment_stddev_pop_order_by { - centTotal: order_by -} - -"""aggregate stddev_samp on columns""" -type payment_stddev_samp_fields { - centTotal: Float -} - -""" -order by stddev_samp() on columns of table "payment" -""" -input payment_stddev_samp_order_by { - centTotal: order_by -} - -"""aggregate sum on columns""" -type payment_sum_fields { - centTotal: Int -} - -""" -order by sum() on columns of table "payment" -""" -input payment_sum_order_by { - centTotal: order_by -} - -""" -update columns of table "payment" -""" -enum payment_update_column { - """column name""" - arrivesAt - - """column name""" - centTotal - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - currency - - """column name""" - description - - """column name""" - entityId - - """column name""" - id - - """column name""" - metadata - - """column name""" - paidAt - - """column name""" - status - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - updatedAt -} - -"""aggregate var_pop on columns""" -type payment_var_pop_fields { - centTotal: Float -} - -""" -order by var_pop() on columns of table "payment" -""" -input payment_var_pop_order_by { - centTotal: order_by -} - -"""aggregate var_samp on columns""" -type payment_var_samp_fields { - centTotal: Float -} - -""" -order by var_samp() on columns of table "payment" -""" -input payment_var_samp_order_by { - centTotal: order_by -} - -"""aggregate variance on columns""" -type payment_variance_fields { - centTotal: Float -} - -""" -order by variance() on columns of table "payment" -""" -input payment_variance_order_by { - centTotal: order_by -} - -""" -columns and relationships of "payment_status" -""" -type paymentStatus { - name: String! -} - -""" -aggregated selection of "payment_status" -""" -type paymentStatus_aggregate { - aggregate: paymentStatus_aggregate_fields - nodes: [paymentStatus!]! -} - -""" -aggregate fields of "payment_status" -""" -type paymentStatus_aggregate_fields { - count(columns: [paymentStatus_select_column!], distinct: Boolean): Int! - max: paymentStatus_max_fields - min: paymentStatus_min_fields -} - -""" -Boolean expression to filter rows from the table "payment_status". All fields are combined with a logical 'AND'. -""" -input paymentStatus_bool_exp { - _and: [paymentStatus_bool_exp!] - _not: paymentStatus_bool_exp - _or: [paymentStatus_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "payment_status" -""" -enum paymentStatus_constraint { - """unique or primary key constraint""" - payment_status_pkey -} - -""" -input type for inserting data into table "payment_status" -""" -input paymentStatus_insert_input { - name: String -} - -"""aggregate max on columns""" -type paymentStatus_max_fields { - name: String -} - -"""aggregate min on columns""" -type paymentStatus_min_fields { - name: String -} - -""" -response of any mutation on the table "payment_status" -""" -type paymentStatus_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [paymentStatus!]! -} - -""" -on conflict condition type for table "payment_status" -""" -input paymentStatus_on_conflict { - constraint: paymentStatus_constraint! - update_columns: [paymentStatus_update_column!]! = [] - where: paymentStatus_bool_exp -} - -"""Ordering options when selecting data from "payment_status".""" -input paymentStatus_order_by { - name: order_by -} - -"""primary key columns input for table: paymentStatus""" -input paymentStatus_pk_columns_input { - name: String! -} - -""" -select columns of table "payment_status" -""" -enum paymentStatus_select_column { - """column name""" - name -} - -""" -input type for updating data in table "payment_status" -""" -input paymentStatus_set_input { - name: String -} - -""" -update columns of table "payment_status" -""" -enum paymentStatus_update_column { - """column name""" - name -} - -""" -columns and relationships of "payment_type" -""" -type paymentType { - name: String! -} - -""" -aggregated selection of "payment_type" -""" -type paymentType_aggregate { - aggregate: paymentType_aggregate_fields - nodes: [paymentType!]! -} - -""" -aggregate fields of "payment_type" -""" -type paymentType_aggregate_fields { - count(columns: [paymentType_select_column!], distinct: Boolean): Int! - max: paymentType_max_fields - min: paymentType_min_fields -} - -""" -Boolean expression to filter rows from the table "payment_type". All fields are combined with a logical 'AND'. -""" -input paymentType_bool_exp { - _and: [paymentType_bool_exp!] - _not: paymentType_bool_exp - _or: [paymentType_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "payment_type" -""" -enum paymentType_constraint { - """unique or primary key constraint""" - payment_type_pkey -} - -""" -input type for inserting data into table "payment_type" -""" -input paymentType_insert_input { - name: String -} - -"""aggregate max on columns""" -type paymentType_max_fields { - name: String -} - -"""aggregate min on columns""" -type paymentType_min_fields { - name: String -} - -""" -response of any mutation on the table "payment_type" -""" -type paymentType_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [paymentType!]! -} - -""" -on conflict condition type for table "payment_type" -""" -input paymentType_on_conflict { - constraint: paymentType_constraint! - update_columns: [paymentType_update_column!]! = [] - where: paymentType_bool_exp -} - -"""Ordering options when selecting data from "payment_type".""" -input paymentType_order_by { - name: order_by -} - -"""primary key columns input for table: paymentType""" -input paymentType_pk_columns_input { - name: String! -} - -""" -select columns of table "payment_type" -""" -enum paymentType_select_column { - """column name""" - name -} - -""" -input type for updating data in table "payment_type" -""" -input paymentType_set_input { - name: String -} - -""" -update columns of table "payment_type" -""" -enum paymentType_update_column { - """column name""" - name -} - -type query_root { - """ - fetch aggregated fields from the table: "booking_status" - """ - aggregateBookingStatuses( - """distinct select on columns""" - distinct_on: [bookingStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [bookingStatus_order_by!] - - """filter the rows returned""" - where: bookingStatus_bool_exp - ): bookingStatus_aggregate! - - """ - fetch aggregated fields from the table: "booking" - """ - aggregateBookings( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): booking_aggregate! - - """ - fetch aggregated fields from the table: "classification" - """ - aggregateClassifications( - """distinct select on columns""" - distinct_on: [classification_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [classification_order_by!] - - """filter the rows returned""" - where: classification_bool_exp - ): classification_aggregate! - - """ - fetch aggregated fields from the table: "connection" - """ - aggregateConnections( - """distinct select on columns""" - distinct_on: [connection_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [connection_order_by!] - - """filter the rows returned""" - where: connection_bool_exp - ): connection_aggregate! - - """ - fetch aggregated fields from the table: "currency" - """ - aggregateCurrencies( - """distinct select on columns""" - distinct_on: [currency_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [currency_order_by!] - - """filter the rows returned""" - where: currency_bool_exp - ): currency_aggregate! - - """ - fetch aggregated fields from the table: "entity" - """ - aggregateEntities( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): entity_aggregate! - - """ - fetch aggregated fields from the table: "entity_status" - """ - aggregateEntityStatuses( - """distinct select on columns""" - distinct_on: [entityStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entityStatus_order_by!] - - """filter the rows returned""" - where: entityStatus_bool_exp - ): entityStatus_aggregate! - - """ - fetch aggregated fields from the table: "integration_type" - """ - aggregateIntegrationTypes( - """distinct select on columns""" - distinct_on: [integrationType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integrationType_order_by!] - - """filter the rows returned""" - where: integrationType_bool_exp - ): integrationType_aggregate! - - """ - fetch aggregated fields from the table: "integration" - """ - aggregateIntegrations( - """distinct select on columns""" - distinct_on: [integration_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integration_order_by!] - - """filter the rows returned""" - where: integration_bool_exp - ): integration_aggregate! - - """ - fetch aggregated fields from the table: "issue" - """ - aggregateIssues( - """distinct select on columns""" - distinct_on: [issue_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [issue_order_by!] - - """filter the rows returned""" - where: issue_bool_exp - ): issue_aggregate! - - """ - fetch aggregated fields from the table: "job_method" - """ - aggregateJobMethods( - """distinct select on columns""" - distinct_on: [jobMethod_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [jobMethod_order_by!] - - """filter the rows returned""" - where: jobMethod_bool_exp - ): jobMethod_aggregate! - - """ - fetch aggregated fields from the table: "job_status" - """ - aggregateJobStatuses( - """distinct select on columns""" - distinct_on: [jobStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [jobStatus_order_by!] - - """filter the rows returned""" - where: jobStatus_bool_exp - ): jobStatus_aggregate! - - """ - fetch aggregated fields from the table: "job" - """ - aggregateJobs( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): job_aggregate! - - """ - fetch aggregated fields from the table: "line" - """ - aggregateLines( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): line_aggregate! - - """ - fetch aggregated fields from the table: "metric" - """ - aggregateMetrics( - """distinct select on columns""" - distinct_on: [metric_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [metric_order_by!] - - """filter the rows returned""" - where: metric_bool_exp - ): metric_aggregate! - - """ - fetch aggregated fields from the table: "normalized_type" - """ - aggregateNormalizedTypes( - """distinct select on columns""" - distinct_on: [normalizedType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [normalizedType_order_by!] - - """filter the rows returned""" - where: normalizedType_bool_exp - ): normalizedType_aggregate! - - """ - fetch aggregated fields from the table: "payment_status" - """ - aggregatePaymentStatuses( - """distinct select on columns""" - distinct_on: [paymentStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [paymentStatus_order_by!] - - """filter the rows returned""" - where: paymentStatus_bool_exp - ): paymentStatus_aggregate! - - """ - fetch aggregated fields from the table: "payment_type" - """ - aggregatePaymentTypes( - """distinct select on columns""" - distinct_on: [paymentType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [paymentType_order_by!] - - """filter the rows returned""" - where: paymentType_bool_exp - ): paymentType_aggregate! - - """ - fetch aggregated fields from the table: "payment" - """ - aggregatePayments( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): payment_aggregate! - - """ - fetch aggregated fields from the table: "subclassification" - """ - aggregateSubclassifications( - """distinct select on columns""" - distinct_on: [subclassification_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [subclassification_order_by!] - - """filter the rows returned""" - where: subclassification_bool_exp - ): subclassification_aggregate! - - """ - fetch aggregated fields from the table: "tag" - """ - aggregateTags( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): tag_aggregate! - - """ - fetch aggregated fields from the table: "team_user" - """ - aggregateTeamUsers( - """distinct select on columns""" - distinct_on: [teamUser_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [teamUser_order_by!] - - """filter the rows returned""" - where: teamUser_bool_exp - ): teamUser_aggregate! - - """ - fetch aggregated fields from the table: "team" - """ - aggregateTeams( - """distinct select on columns""" - distinct_on: [team_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [team_order_by!] - - """filter the rows returned""" - where: team_bool_exp - ): team_aggregate! - - """ - fetch aggregated fields from the table: "unit" - """ - aggregateUnits( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): unit_aggregate! - - """ - fetch aggregated fields from the table: "user_status" - """ - aggregateUserStatuses( - """distinct select on columns""" - distinct_on: [userStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [userStatus_order_by!] - - """filter the rows returned""" - where: userStatus_bool_exp - ): userStatus_aggregate! - - """ - fetch aggregated fields from the table: "user" - """ - aggregateUsers( - """distinct select on columns""" - distinct_on: [user_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [user_order_by!] - - """filter the rows returned""" - where: user_bool_exp - ): user_aggregate! - - """ - fetch aggregated fields from the table: "webhook" - """ - aggregateWebhooks( - """distinct select on columns""" - distinct_on: [webhook_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [webhook_order_by!] - - """filter the rows returned""" - where: webhook_bool_exp - ): webhook_aggregate! - - """fetch data from the table: "booking" using primary key columns""" - booking(id: uuid!): booking - - """fetch data from the table: "booking_status" using primary key columns""" - bookingStatus(name: String!): bookingStatus - - """ - fetch data from the table: "booking_status" - """ - bookingStatuses( - """distinct select on columns""" - distinct_on: [bookingStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [bookingStatus_order_by!] - - """filter the rows returned""" - where: bookingStatus_bool_exp - ): [bookingStatus!]! - - """ - fetch data from the table: "booking_channel" - """ - booking_channel( - """distinct select on columns""" - distinct_on: [booking_channel_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_channel_order_by!] - - """filter the rows returned""" - where: booking_channel_bool_exp - ): [booking_channel!]! - - """ - fetch aggregated fields from the table: "booking_channel" - """ - booking_channel_aggregate( - """distinct select on columns""" - distinct_on: [booking_channel_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_channel_order_by!] - - """filter the rows returned""" - where: booking_channel_bool_exp - ): booking_channel_aggregate! - - """fetch data from the table: "booking_channel" using primary key columns""" - booking_channel_by_pk(name: String!): booking_channel - - """An array relationship""" - bookings( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): [booking!]! - - """fetch data from the table: "classification" using primary key columns""" - classification(name: String!): classification - - """ - fetch data from the table: "classification" - """ - classifications( - """distinct select on columns""" - distinct_on: [classification_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [classification_order_by!] - - """filter the rows returned""" - where: classification_bool_exp - ): [classification!]! - - """fetch data from the table: "connection" using primary key columns""" - connection(id: uuid!): connection - - """An array relationship""" - connections( - """distinct select on columns""" - distinct_on: [connection_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [connection_order_by!] - - """filter the rows returned""" - where: connection_bool_exp - ): [connection!]! - - """ - fetch data from the table: "currency" - """ - currencies( - """distinct select on columns""" - distinct_on: [currency_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [currency_order_by!] - - """filter the rows returned""" - where: currency_bool_exp - ): [currency!]! - - """fetch data from the table: "currency" using primary key columns""" - currency(name: String!): currency - - """An array relationship""" - entities( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): [entity!]! - - """fetch data from the table: "entity" using primary key columns""" - entity(id: uuid!): entity - - """fetch data from the table: "entity_status" using primary key columns""" - entityStatus(name: String!): entityStatus - - """ - fetch data from the table: "entity_status" - """ - entityStatuses( - """distinct select on columns""" - distinct_on: [entityStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entityStatus_order_by!] - - """filter the rows returned""" - where: entityStatus_bool_exp - ): [entityStatus!]! - - """fetch data from the table: "integration" using primary key columns""" - integration(id: uuid!): integration - - """ - fetch data from the table: "integration_type" using primary key columns - """ - integrationType(name: String!): integrationType - - """ - fetch data from the table: "integration_type" - """ - integrationTypes( - """distinct select on columns""" - distinct_on: [integrationType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integrationType_order_by!] - - """filter the rows returned""" - where: integrationType_bool_exp - ): [integrationType!]! - - """An array relationship""" - integrations( - """distinct select on columns""" - distinct_on: [integration_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integration_order_by!] - - """filter the rows returned""" - where: integration_bool_exp - ): [integration!]! - - """fetch data from the table: "issue" using primary key columns""" - issue(id: uuid!): issue - - """An array relationship""" - issues( - """distinct select on columns""" - distinct_on: [issue_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [issue_order_by!] - - """filter the rows returned""" - where: issue_bool_exp - ): [issue!]! - - """fetch data from the table: "job" using primary key columns""" - job(id: uuid!): job - - """fetch data from the table: "job_method" using primary key columns""" - jobMethod(name: String!): jobMethod - - """ - fetch data from the table: "job_method" - """ - jobMethods( - """distinct select on columns""" - distinct_on: [jobMethod_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [jobMethod_order_by!] - - """filter the rows returned""" - where: jobMethod_bool_exp - ): [jobMethod!]! - - """fetch data from the table: "job_status" using primary key columns""" - jobStatus(name: String!): jobStatus - - """ - fetch data from the table: "job_status" - """ - jobStatuses( - """distinct select on columns""" - distinct_on: [jobStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [jobStatus_order_by!] - - """filter the rows returned""" - where: jobStatus_bool_exp - ): [jobStatus!]! - - """An array relationship""" - jobs( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): [job!]! - - """fetch data from the table: "line" using primary key columns""" - line(id: uuid!): line - - """An array relationship""" - lines( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): [line!]! - - """fetch data from the table: "metric" using primary key columns""" - metric(id: uuid!): metric - - """An array relationship""" - metrics( - """distinct select on columns""" - distinct_on: [metric_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [metric_order_by!] - - """filter the rows returned""" - where: metric_bool_exp - ): [metric!]! - - """fetch data from the table: "normalized_type" using primary key columns""" - normalizedType(name: String!): normalizedType - - """ - fetch data from the table: "normalized_type" - """ - normalizedTypes( - """distinct select on columns""" - distinct_on: [normalizedType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [normalizedType_order_by!] - - """filter the rows returned""" - where: normalizedType_bool_exp - ): [normalizedType!]! - - """fetch data from the table: "payment" using primary key columns""" - payment(id: uuid!): payment - - """fetch data from the table: "payment_status" using primary key columns""" - paymentStatus(name: String!): paymentStatus - - """ - fetch data from the table: "payment_status" - """ - paymentStatuses( - """distinct select on columns""" - distinct_on: [paymentStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [paymentStatus_order_by!] - - """filter the rows returned""" - where: paymentStatus_bool_exp - ): [paymentStatus!]! - - """fetch data from the table: "payment_type" using primary key columns""" - paymentType(name: String!): paymentType - - """ - fetch data from the table: "payment_type" - """ - paymentTypes( - """distinct select on columns""" - distinct_on: [paymentType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [paymentType_order_by!] - - """filter the rows returned""" - where: paymentType_bool_exp - ): [paymentType!]! - - """An array relationship""" - payments( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): [payment!]! - - """ - fetch data from the table: "subclassification" using primary key columns - """ - subclassification(name: String!): subclassification - - """ - fetch data from the table: "subclassification" - """ - subclassifications( - """distinct select on columns""" - distinct_on: [subclassification_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [subclassification_order_by!] - - """filter the rows returned""" - where: subclassification_bool_exp - ): [subclassification!]! - - """fetch data from the table: "tag" using primary key columns""" - tag(id: uuid!): tag - - """An array relationship""" - tags( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): [tag!]! - - """fetch data from the table: "team" using primary key columns""" - team(id: uuid!): team - - """fetch data from the table: "team_user" using primary key columns""" - teamUser(id: uuid!): teamUser - - """ - fetch data from the table: "team_user" - """ - teamUsers( - """distinct select on columns""" - distinct_on: [teamUser_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [teamUser_order_by!] - - """filter the rows returned""" - where: teamUser_bool_exp - ): [teamUser!]! - - """ - fetch data from the table: "team" - """ - teams( - """distinct select on columns""" - distinct_on: [team_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [team_order_by!] - - """filter the rows returned""" - where: team_bool_exp - ): [team!]! - - """fetch data from the table: "unit" using primary key columns""" - unit(id: uuid!): unit - - """An array relationship""" - units( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): [unit!]! - - """fetch data from the table: "user" using primary key columns""" - user(id: uuid!): user - - """fetch data from the table: "user_status" using primary key columns""" - userStatus(name: String!): userStatus - - """ - fetch data from the table: "user_status" - """ - userStatuses( - """distinct select on columns""" - distinct_on: [userStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [userStatus_order_by!] - - """filter the rows returned""" - where: userStatus_bool_exp - ): [userStatus!]! - - """ - fetch data from the table: "user" - """ - users( - """distinct select on columns""" - distinct_on: [user_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [user_order_by!] - - """filter the rows returned""" - where: user_bool_exp - ): [user!]! - - """fetch data from the table: "webhook" using primary key columns""" - webhook(id: uuid!): webhook - - """An array relationship""" - webhooks( - """distinct select on columns""" - distinct_on: [webhook_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [webhook_order_by!] - - """filter the rows returned""" - where: webhook_bool_exp - ): [webhook!]! -} - -""" -Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. -""" -input String_comparison_exp { - _eq: String - _gt: String - _gte: String - - """does the column match the given case-insensitive pattern""" - _ilike: String - _in: [String!] - - """ - does the column match the given POSIX regular expression, case insensitive - """ - _iregex: String - _is_null: Boolean - - """does the column match the given pattern""" - _like: String - _lt: String - _lte: String - _neq: String - - """does the column NOT match the given case-insensitive pattern""" - _nilike: String - _nin: [String!] - - """ - does the column NOT match the given POSIX regular expression, case insensitive - """ - _niregex: String - - """does the column NOT match the given pattern""" - _nlike: String - - """ - does the column NOT match the given POSIX regular expression, case sensitive - """ - _nregex: String - - """does the column NOT match the given SQL regular expression""" - _nsimilar: String - - """ - does the column match the given POSIX regular expression, case sensitive - """ - _regex: String - - """does the column match the given SQL regular expression""" - _similar: String -} - -""" -columns and relationships of "subclassification" -""" -type subclassification { - name: String! -} - -""" -aggregated selection of "subclassification" -""" -type subclassification_aggregate { - aggregate: subclassification_aggregate_fields - nodes: [subclassification!]! -} - -""" -aggregate fields of "subclassification" -""" -type subclassification_aggregate_fields { - count(columns: [subclassification_select_column!], distinct: Boolean): Int! - max: subclassification_max_fields - min: subclassification_min_fields -} - -""" -Boolean expression to filter rows from the table "subclassification". All fields are combined with a logical 'AND'. -""" -input subclassification_bool_exp { - _and: [subclassification_bool_exp!] - _not: subclassification_bool_exp - _or: [subclassification_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "subclassification" -""" -enum subclassification_constraint { - """unique or primary key constraint""" - subclassification_pkey -} - -enum subclassification_enum { - adjustment_alteration - adjustment_cancellation - adjustment_deviation - adjustment_other - adjustment_resolution - commission_management - commission_ota - commission_other - commission_pms - exception_paymentDeviation - exception_reservationAmountZero - exception_reservationDeviation - paymentFee_card - paymentFee_currencyConversion - paymentFee_other - paymentFee_transaction - revenue_accommodation - revenue_cleaning - revenue_extra - revenue_other - securityDeposit_deposit - securityDeposit_fee - tax_city - tax_local - tax_other - tax_tourism - tax_vat -} - -""" -Boolean expression to compare columns of type "subclassification_enum". All fields are combined with logical 'AND'. -""" -input subclassification_enum_comparison_exp { - _eq: subclassification_enum - _in: [subclassification_enum!] - _is_null: Boolean - _neq: subclassification_enum - _nin: [subclassification_enum!] -} - -""" -input type for inserting data into table "subclassification" -""" -input subclassification_insert_input { - name: String -} - -"""aggregate max on columns""" -type subclassification_max_fields { - name: String -} - -"""aggregate min on columns""" -type subclassification_min_fields { - name: String -} - -""" -response of any mutation on the table "subclassification" -""" -type subclassification_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [subclassification!]! -} - -""" -on conflict condition type for table "subclassification" -""" -input subclassification_on_conflict { - constraint: subclassification_constraint! - update_columns: [subclassification_update_column!]! = [] - where: subclassification_bool_exp -} - -"""Ordering options when selecting data from "subclassification".""" -input subclassification_order_by { - name: order_by -} - -"""primary key columns input for table: subclassification""" -input subclassification_pk_columns_input { - name: String! -} - -""" -select columns of table "subclassification" -""" -enum subclassification_select_column { - """column name""" - name -} - -""" -input type for updating data in table "subclassification" -""" -input subclassification_set_input { - name: String -} - -""" -update columns of table "subclassification" -""" -enum subclassification_update_column { - """column name""" - name -} - -type subscription_root { - """ - fetch aggregated fields from the table: "booking_status" - """ - aggregateBookingStatuses( - """distinct select on columns""" - distinct_on: [bookingStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [bookingStatus_order_by!] - - """filter the rows returned""" - where: bookingStatus_bool_exp - ): bookingStatus_aggregate! - - """ - fetch aggregated fields from the table: "booking" - """ - aggregateBookings( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): booking_aggregate! - - """ - fetch aggregated fields from the table: "classification" - """ - aggregateClassifications( - """distinct select on columns""" - distinct_on: [classification_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [classification_order_by!] - - """filter the rows returned""" - where: classification_bool_exp - ): classification_aggregate! - - """ - fetch aggregated fields from the table: "connection" - """ - aggregateConnections( - """distinct select on columns""" - distinct_on: [connection_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [connection_order_by!] - - """filter the rows returned""" - where: connection_bool_exp - ): connection_aggregate! - - """ - fetch aggregated fields from the table: "currency" - """ - aggregateCurrencies( - """distinct select on columns""" - distinct_on: [currency_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [currency_order_by!] - - """filter the rows returned""" - where: currency_bool_exp - ): currency_aggregate! - - """ - fetch aggregated fields from the table: "entity" - """ - aggregateEntities( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): entity_aggregate! - - """ - fetch aggregated fields from the table: "entity_status" - """ - aggregateEntityStatuses( - """distinct select on columns""" - distinct_on: [entityStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entityStatus_order_by!] - - """filter the rows returned""" - where: entityStatus_bool_exp - ): entityStatus_aggregate! - - """ - fetch aggregated fields from the table: "integration_type" - """ - aggregateIntegrationTypes( - """distinct select on columns""" - distinct_on: [integrationType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integrationType_order_by!] - - """filter the rows returned""" - where: integrationType_bool_exp - ): integrationType_aggregate! - - """ - fetch aggregated fields from the table: "integration" - """ - aggregateIntegrations( - """distinct select on columns""" - distinct_on: [integration_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integration_order_by!] - - """filter the rows returned""" - where: integration_bool_exp - ): integration_aggregate! - - """ - fetch aggregated fields from the table: "issue" - """ - aggregateIssues( - """distinct select on columns""" - distinct_on: [issue_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [issue_order_by!] - - """filter the rows returned""" - where: issue_bool_exp - ): issue_aggregate! - - """ - fetch aggregated fields from the table: "job_method" - """ - aggregateJobMethods( - """distinct select on columns""" - distinct_on: [jobMethod_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [jobMethod_order_by!] - - """filter the rows returned""" - where: jobMethod_bool_exp - ): jobMethod_aggregate! - - """ - fetch aggregated fields from the table: "job_status" - """ - aggregateJobStatuses( - """distinct select on columns""" - distinct_on: [jobStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [jobStatus_order_by!] - - """filter the rows returned""" - where: jobStatus_bool_exp - ): jobStatus_aggregate! - - """ - fetch aggregated fields from the table: "job" - """ - aggregateJobs( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): job_aggregate! - - """ - fetch aggregated fields from the table: "line" - """ - aggregateLines( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): line_aggregate! - - """ - fetch aggregated fields from the table: "metric" - """ - aggregateMetrics( - """distinct select on columns""" - distinct_on: [metric_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [metric_order_by!] - - """filter the rows returned""" - where: metric_bool_exp - ): metric_aggregate! - - """ - fetch aggregated fields from the table: "normalized_type" - """ - aggregateNormalizedTypes( - """distinct select on columns""" - distinct_on: [normalizedType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [normalizedType_order_by!] - - """filter the rows returned""" - where: normalizedType_bool_exp - ): normalizedType_aggregate! - - """ - fetch aggregated fields from the table: "payment_status" - """ - aggregatePaymentStatuses( - """distinct select on columns""" - distinct_on: [paymentStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [paymentStatus_order_by!] - - """filter the rows returned""" - where: paymentStatus_bool_exp - ): paymentStatus_aggregate! - - """ - fetch aggregated fields from the table: "payment_type" - """ - aggregatePaymentTypes( - """distinct select on columns""" - distinct_on: [paymentType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [paymentType_order_by!] - - """filter the rows returned""" - where: paymentType_bool_exp - ): paymentType_aggregate! - - """ - fetch aggregated fields from the table: "payment" - """ - aggregatePayments( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): payment_aggregate! - - """ - fetch aggregated fields from the table: "subclassification" - """ - aggregateSubclassifications( - """distinct select on columns""" - distinct_on: [subclassification_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [subclassification_order_by!] - - """filter the rows returned""" - where: subclassification_bool_exp - ): subclassification_aggregate! - - """ - fetch aggregated fields from the table: "tag" - """ - aggregateTags( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): tag_aggregate! - - """ - fetch aggregated fields from the table: "team_user" - """ - aggregateTeamUsers( - """distinct select on columns""" - distinct_on: [teamUser_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [teamUser_order_by!] - - """filter the rows returned""" - where: teamUser_bool_exp - ): teamUser_aggregate! - - """ - fetch aggregated fields from the table: "team" - """ - aggregateTeams( - """distinct select on columns""" - distinct_on: [team_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [team_order_by!] - - """filter the rows returned""" - where: team_bool_exp - ): team_aggregate! - - """ - fetch aggregated fields from the table: "unit" - """ - aggregateUnits( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): unit_aggregate! - - """ - fetch aggregated fields from the table: "user_status" - """ - aggregateUserStatuses( - """distinct select on columns""" - distinct_on: [userStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [userStatus_order_by!] - - """filter the rows returned""" - where: userStatus_bool_exp - ): userStatus_aggregate! - - """ - fetch aggregated fields from the table: "user" - """ - aggregateUsers( - """distinct select on columns""" - distinct_on: [user_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [user_order_by!] - - """filter the rows returned""" - where: user_bool_exp - ): user_aggregate! - - """ - fetch aggregated fields from the table: "webhook" - """ - aggregateWebhooks( - """distinct select on columns""" - distinct_on: [webhook_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [webhook_order_by!] - - """filter the rows returned""" - where: webhook_bool_exp - ): webhook_aggregate! - - """fetch data from the table: "booking" using primary key columns""" - booking(id: uuid!): booking - - """fetch data from the table: "booking_status" using primary key columns""" - bookingStatus(name: String!): bookingStatus - - """ - fetch data from the table: "booking_status" - """ - bookingStatuses( - """distinct select on columns""" - distinct_on: [bookingStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [bookingStatus_order_by!] - - """filter the rows returned""" - where: bookingStatus_bool_exp - ): [bookingStatus!]! - - """ - fetch data from the table: "booking_channel" - """ - booking_channel( - """distinct select on columns""" - distinct_on: [booking_channel_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_channel_order_by!] - - """filter the rows returned""" - where: booking_channel_bool_exp - ): [booking_channel!]! - - """ - fetch aggregated fields from the table: "booking_channel" - """ - booking_channel_aggregate( - """distinct select on columns""" - distinct_on: [booking_channel_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_channel_order_by!] - - """filter the rows returned""" - where: booking_channel_bool_exp - ): booking_channel_aggregate! - - """fetch data from the table: "booking_channel" using primary key columns""" - booking_channel_by_pk(name: String!): booking_channel - - """An array relationship""" - bookings( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): [booking!]! - - """fetch data from the table: "classification" using primary key columns""" - classification(name: String!): classification - - """ - fetch data from the table: "classification" - """ - classifications( - """distinct select on columns""" - distinct_on: [classification_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [classification_order_by!] - - """filter the rows returned""" - where: classification_bool_exp - ): [classification!]! - - """fetch data from the table: "connection" using primary key columns""" - connection(id: uuid!): connection - - """An array relationship""" - connections( - """distinct select on columns""" - distinct_on: [connection_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [connection_order_by!] - - """filter the rows returned""" - where: connection_bool_exp - ): [connection!]! - - """ - fetch data from the table: "currency" - """ - currencies( - """distinct select on columns""" - distinct_on: [currency_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [currency_order_by!] - - """filter the rows returned""" - where: currency_bool_exp - ): [currency!]! - - """fetch data from the table: "currency" using primary key columns""" - currency(name: String!): currency - - """An array relationship""" - entities( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): [entity!]! - - """fetch data from the table: "entity" using primary key columns""" - entity(id: uuid!): entity - - """fetch data from the table: "entity_status" using primary key columns""" - entityStatus(name: String!): entityStatus - - """ - fetch data from the table: "entity_status" - """ - entityStatuses( - """distinct select on columns""" - distinct_on: [entityStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entityStatus_order_by!] - - """filter the rows returned""" - where: entityStatus_bool_exp - ): [entityStatus!]! - - """fetch data from the table: "integration" using primary key columns""" - integration(id: uuid!): integration - - """ - fetch data from the table: "integration_type" using primary key columns - """ - integrationType(name: String!): integrationType - - """ - fetch data from the table: "integration_type" - """ - integrationTypes( - """distinct select on columns""" - distinct_on: [integrationType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integrationType_order_by!] - - """filter the rows returned""" - where: integrationType_bool_exp - ): [integrationType!]! - - """An array relationship""" - integrations( - """distinct select on columns""" - distinct_on: [integration_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integration_order_by!] - - """filter the rows returned""" - where: integration_bool_exp - ): [integration!]! - - """fetch data from the table: "issue" using primary key columns""" - issue(id: uuid!): issue - - """An array relationship""" - issues( - """distinct select on columns""" - distinct_on: [issue_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [issue_order_by!] - - """filter the rows returned""" - where: issue_bool_exp - ): [issue!]! - - """fetch data from the table: "job" using primary key columns""" - job(id: uuid!): job - - """fetch data from the table: "job_method" using primary key columns""" - jobMethod(name: String!): jobMethod - - """ - fetch data from the table: "job_method" - """ - jobMethods( - """distinct select on columns""" - distinct_on: [jobMethod_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [jobMethod_order_by!] - - """filter the rows returned""" - where: jobMethod_bool_exp - ): [jobMethod!]! - - """fetch data from the table: "job_status" using primary key columns""" - jobStatus(name: String!): jobStatus - - """ - fetch data from the table: "job_status" - """ - jobStatuses( - """distinct select on columns""" - distinct_on: [jobStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [jobStatus_order_by!] - - """filter the rows returned""" - where: jobStatus_bool_exp - ): [jobStatus!]! - - """An array relationship""" - jobs( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): [job!]! - - """fetch data from the table: "line" using primary key columns""" - line(id: uuid!): line - - """An array relationship""" - lines( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): [line!]! - - """fetch data from the table: "metric" using primary key columns""" - metric(id: uuid!): metric - - """An array relationship""" - metrics( - """distinct select on columns""" - distinct_on: [metric_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [metric_order_by!] - - """filter the rows returned""" - where: metric_bool_exp - ): [metric!]! - - """fetch data from the table: "normalized_type" using primary key columns""" - normalizedType(name: String!): normalizedType - - """ - fetch data from the table: "normalized_type" - """ - normalizedTypes( - """distinct select on columns""" - distinct_on: [normalizedType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [normalizedType_order_by!] - - """filter the rows returned""" - where: normalizedType_bool_exp - ): [normalizedType!]! - - """fetch data from the table: "payment" using primary key columns""" - payment(id: uuid!): payment - - """fetch data from the table: "payment_status" using primary key columns""" - paymentStatus(name: String!): paymentStatus - - """ - fetch data from the table: "payment_status" - """ - paymentStatuses( - """distinct select on columns""" - distinct_on: [paymentStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [paymentStatus_order_by!] - - """filter the rows returned""" - where: paymentStatus_bool_exp - ): [paymentStatus!]! - - """fetch data from the table: "payment_type" using primary key columns""" - paymentType(name: String!): paymentType - - """ - fetch data from the table: "payment_type" - """ - paymentTypes( - """distinct select on columns""" - distinct_on: [paymentType_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [paymentType_order_by!] - - """filter the rows returned""" - where: paymentType_bool_exp - ): [paymentType!]! - - """An array relationship""" - payments( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): [payment!]! - - """ - fetch data from the table: "subclassification" using primary key columns - """ - subclassification(name: String!): subclassification - - """ - fetch data from the table: "subclassification" - """ - subclassifications( - """distinct select on columns""" - distinct_on: [subclassification_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [subclassification_order_by!] - - """filter the rows returned""" - where: subclassification_bool_exp - ): [subclassification!]! - - """fetch data from the table: "tag" using primary key columns""" - tag(id: uuid!): tag - - """An array relationship""" - tags( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): [tag!]! - - """fetch data from the table: "team" using primary key columns""" - team(id: uuid!): team - - """fetch data from the table: "team_user" using primary key columns""" - teamUser(id: uuid!): teamUser - - """ - fetch data from the table: "team_user" - """ - teamUsers( - """distinct select on columns""" - distinct_on: [teamUser_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [teamUser_order_by!] - - """filter the rows returned""" - where: teamUser_bool_exp - ): [teamUser!]! - - """ - fetch data from the table: "team" - """ - teams( - """distinct select on columns""" - distinct_on: [team_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [team_order_by!] - - """filter the rows returned""" - where: team_bool_exp - ): [team!]! - - """fetch data from the table: "unit" using primary key columns""" - unit(id: uuid!): unit - - """An array relationship""" - units( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): [unit!]! - - """fetch data from the table: "user" using primary key columns""" - user(id: uuid!): user - - """fetch data from the table: "user_status" using primary key columns""" - userStatus(name: String!): userStatus - - """ - fetch data from the table: "user_status" - """ - userStatuses( - """distinct select on columns""" - distinct_on: [userStatus_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [userStatus_order_by!] - - """filter the rows returned""" - where: userStatus_bool_exp - ): [userStatus!]! - - """ - fetch data from the table: "user" - """ - users( - """distinct select on columns""" - distinct_on: [user_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [user_order_by!] - - """filter the rows returned""" - where: user_bool_exp - ): [user!]! - - """fetch data from the table: "webhook" using primary key columns""" - webhook(id: uuid!): webhook - - """An array relationship""" - webhooks( - """distinct select on columns""" - distinct_on: [webhook_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [webhook_order_by!] - - """filter the rows returned""" - where: webhook_bool_exp - ): [webhook!]! -} - -""" -columns and relationships of "tag" -""" -type tag { - """An object relationship""" - booking: booking! - bookingId: uuid! - - """An object relationship""" - connection: connection! - connectionId: uuid! - createdAt: timestamptz - id: uuid! - json( - """JSON select path""" - path: String - ): jsonb! - - """An object relationship""" - payment: payment! - paymentId: uuid! - - """An object relationship""" - team: team! - teamId: uuid! - type: String! - uniqueRef: String! - - """An object relationship""" - unit: unit! - unitId: uuid! - updatedAt: timestamptz -} - -""" -aggregated selection of "tag" -""" -type tag_aggregate { - aggregate: tag_aggregate_fields - nodes: [tag!]! -} - -""" -aggregate fields of "tag" -""" -type tag_aggregate_fields { - count(columns: [tag_select_column!], distinct: Boolean): Int! - max: tag_max_fields - min: tag_min_fields -} - -""" -order by aggregate values of table "tag" -""" -input tag_aggregate_order_by { - count: order_by - max: tag_max_order_by - min: tag_min_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input tag_append_input { - json: jsonb -} - -""" -input type for inserting array relation for remote table "tag" -""" -input tag_arr_rel_insert_input { - data: [tag_insert_input!]! - - """on conflict condition""" - on_conflict: tag_on_conflict -} - -""" -Boolean expression to filter rows from the table "tag". All fields are combined with a logical 'AND'. -""" -input tag_bool_exp { - _and: [tag_bool_exp!] - _not: tag_bool_exp - _or: [tag_bool_exp!] - booking: booking_bool_exp - bookingId: uuid_comparison_exp - connection: connection_bool_exp - connectionId: uuid_comparison_exp - createdAt: timestamptz_comparison_exp - id: uuid_comparison_exp - json: jsonb_comparison_exp - payment: payment_bool_exp - paymentId: uuid_comparison_exp - team: team_bool_exp - teamId: uuid_comparison_exp - type: String_comparison_exp - uniqueRef: String_comparison_exp - unit: unit_bool_exp - unitId: uuid_comparison_exp - updatedAt: timestamptz_comparison_exp -} - -""" -unique or primary key constraints on table "tag" -""" -enum tag_constraint { - """unique or primary key constraint""" - tag_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input tag_delete_at_path_input { - json: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input tag_delete_elem_input { - json: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input tag_delete_key_input { - json: String -} - -""" -input type for inserting data into table "tag" -""" -input tag_insert_input { - booking: booking_obj_rel_insert_input - bookingId: uuid - connection: connection_obj_rel_insert_input - connectionId: uuid - createdAt: timestamptz - id: uuid - json: jsonb - payment: payment_obj_rel_insert_input - paymentId: uuid - team: team_obj_rel_insert_input - teamId: uuid - type: String - uniqueRef: String - unit: unit_obj_rel_insert_input - unitId: uuid - updatedAt: timestamptz -} - -"""aggregate max on columns""" -type tag_max_fields { - bookingId: uuid - connectionId: uuid - createdAt: timestamptz - id: uuid - paymentId: uuid - teamId: uuid - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -""" -order by max() on columns of table "tag" -""" -input tag_max_order_by { - bookingId: order_by - connectionId: order_by - createdAt: order_by - id: order_by - paymentId: order_by - teamId: order_by - type: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by -} - -"""aggregate min on columns""" -type tag_min_fields { - bookingId: uuid - connectionId: uuid - createdAt: timestamptz - id: uuid - paymentId: uuid - teamId: uuid - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -""" -order by min() on columns of table "tag" -""" -input tag_min_order_by { - bookingId: order_by - connectionId: order_by - createdAt: order_by - id: order_by - paymentId: order_by - teamId: order_by - type: order_by - uniqueRef: order_by - unitId: order_by - updatedAt: order_by -} - -""" -response of any mutation on the table "tag" -""" -type tag_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [tag!]! -} - -""" -on conflict condition type for table "tag" -""" -input tag_on_conflict { - constraint: tag_constraint! - update_columns: [tag_update_column!]! = [] - where: tag_bool_exp -} - -"""Ordering options when selecting data from "tag".""" -input tag_order_by { - booking: booking_order_by - bookingId: order_by - connection: connection_order_by - connectionId: order_by - createdAt: order_by - id: order_by - json: order_by - payment: payment_order_by - paymentId: order_by - team: team_order_by - teamId: order_by - type: order_by - uniqueRef: order_by - unit: unit_order_by - unitId: order_by - updatedAt: order_by -} - -"""primary key columns input for table: tag""" -input tag_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input tag_prepend_input { - json: jsonb -} - -""" -select columns of table "tag" -""" -enum tag_select_column { - """column name""" - bookingId - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - id - - """column name""" - json - - """column name""" - paymentId - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - unitId - - """column name""" - updatedAt -} - -""" -input type for updating data in table "tag" -""" -input tag_set_input { - bookingId: uuid - connectionId: uuid - createdAt: timestamptz - id: uuid - json: jsonb - paymentId: uuid - teamId: uuid - type: String - uniqueRef: String - unitId: uuid - updatedAt: timestamptz -} - -""" -update columns of table "tag" -""" -enum tag_update_column { - """column name""" - bookingId - - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - id - - """column name""" - json - - """column name""" - paymentId - - """column name""" - teamId - - """column name""" - type - - """column name""" - uniqueRef - - """column name""" - unitId - - """column name""" - updatedAt -} - -""" -columns and relationships of "team" -""" -type team { - address: String - - """An array relationship""" - bookings( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): [booking!]! - - """An aggregate relationship""" - bookings_aggregate( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): booking_aggregate! - commissionPercentage: numeric - - """An array relationship""" - connections( - """distinct select on columns""" - distinct_on: [connection_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [connection_order_by!] - - """filter the rows returned""" - where: connection_bool_exp - ): [connection!]! - - """An aggregate relationship""" - connections_aggregate( - """distinct select on columns""" - distinct_on: [connection_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [connection_order_by!] - - """filter the rows returned""" - where: connection_bool_exp - ): connection_aggregate! - createdAt: timestamptz! - email: String - - """An array relationship""" - entities( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): [entity!]! - - """An aggregate relationship""" - entities_aggregate( - """distinct select on columns""" - distinct_on: [entity_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [entity_order_by!] - - """filter the rows returned""" - where: entity_bool_exp - ): entity_aggregate! - id: uuid! - - """An array relationship""" - integrations( - """distinct select on columns""" - distinct_on: [integration_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integration_order_by!] - - """filter the rows returned""" - where: integration_bool_exp - ): [integration!]! - - """An aggregate relationship""" - integrations_aggregate( - """distinct select on columns""" - distinct_on: [integration_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [integration_order_by!] - - """filter the rows returned""" - where: integration_bool_exp - ): integration_aggregate! - isActive: Boolean - isTest: Boolean - - """An array relationship""" - issues( - """distinct select on columns""" - distinct_on: [issue_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [issue_order_by!] - - """filter the rows returned""" - where: issue_bool_exp - ): [issue!]! - - """An aggregate relationship""" - issues_aggregate( - """distinct select on columns""" - distinct_on: [issue_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [issue_order_by!] - - """filter the rows returned""" - where: issue_bool_exp - ): issue_aggregate! - - """An array relationship""" - jobs( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): [job!]! - - """An aggregate relationship""" - jobs_aggregate( - """distinct select on columns""" - distinct_on: [job_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [job_order_by!] - - """filter the rows returned""" - where: job_bool_exp - ): job_aggregate! - - """An array relationship""" - lines( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): [line!]! - - """An aggregate relationship""" - lines_aggregate( - """distinct select on columns""" - distinct_on: [line_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [line_order_by!] - - """filter the rows returned""" - where: line_bool_exp - ): line_aggregate! - - """An array relationship""" - members( - """distinct select on columns""" - distinct_on: [teamUser_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [teamUser_order_by!] - - """filter the rows returned""" - where: teamUser_bool_exp - ): [teamUser!]! - - """An aggregate relationship""" - members_aggregate( - """distinct select on columns""" - distinct_on: [teamUser_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [teamUser_order_by!] - - """filter the rows returned""" - where: teamUser_bool_exp - ): teamUser_aggregate! - - """An array relationship""" - metrics( - """distinct select on columns""" - distinct_on: [metric_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [metric_order_by!] - - """filter the rows returned""" - where: metric_bool_exp - ): [metric!]! - - """An aggregate relationship""" - metrics_aggregate( - """distinct select on columns""" - distinct_on: [metric_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [metric_order_by!] - - """filter the rows returned""" - where: metric_bool_exp - ): metric_aggregate! - name: String! - - """An array relationship""" - payments( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): [payment!]! - - """An aggregate relationship""" - payments_aggregate( - """distinct select on columns""" - distinct_on: [payment_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [payment_order_by!] - - """filter the rows returned""" - where: payment_bool_exp - ): payment_aggregate! - stripeId: String - stripeSubscriptionItemId: String - supportEmail: String - supportPhone: String - - """An array relationship""" - tags( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): [tag!]! - - """An aggregate relationship""" - tags_aggregate( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): tag_aggregate! - - """An array relationship""" - units( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): [unit!]! - - """An aggregate relationship""" - units_aggregate( - """distinct select on columns""" - distinct_on: [unit_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [unit_order_by!] - - """filter the rows returned""" - where: unit_bool_exp - ): unit_aggregate! - - """An array relationship""" - webhooks( - """distinct select on columns""" - distinct_on: [webhook_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [webhook_order_by!] - - """filter the rows returned""" - where: webhook_bool_exp - ): [webhook!]! - - """An aggregate relationship""" - webhooks_aggregate( - """distinct select on columns""" - distinct_on: [webhook_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [webhook_order_by!] - - """filter the rows returned""" - where: webhook_bool_exp - ): webhook_aggregate! - website: String -} - -""" -aggregated selection of "team" -""" -type team_aggregate { - aggregate: team_aggregate_fields - nodes: [team!]! -} - -""" -aggregate fields of "team" -""" -type team_aggregate_fields { - avg: team_avg_fields - count(columns: [team_select_column!], distinct: Boolean): Int! - max: team_max_fields - min: team_min_fields - stddev: team_stddev_fields - stddev_pop: team_stddev_pop_fields - stddev_samp: team_stddev_samp_fields - sum: team_sum_fields - var_pop: team_var_pop_fields - var_samp: team_var_samp_fields - variance: team_variance_fields -} - -"""aggregate avg on columns""" -type team_avg_fields { - commissionPercentage: Float -} - -""" -Boolean expression to filter rows from the table "team". All fields are combined with a logical 'AND'. -""" -input team_bool_exp { - _and: [team_bool_exp!] - _not: team_bool_exp - _or: [team_bool_exp!] - address: String_comparison_exp - bookings: booking_bool_exp - commissionPercentage: numeric_comparison_exp - connections: connection_bool_exp - createdAt: timestamptz_comparison_exp - email: String_comparison_exp - entities: entity_bool_exp - id: uuid_comparison_exp - integrations: integration_bool_exp - isActive: Boolean_comparison_exp - isTest: Boolean_comparison_exp - issues: issue_bool_exp - jobs: job_bool_exp - lines: line_bool_exp - members: teamUser_bool_exp - metrics: metric_bool_exp - name: String_comparison_exp - payments: payment_bool_exp - stripeId: String_comparison_exp - stripeSubscriptionItemId: String_comparison_exp - supportEmail: String_comparison_exp - supportPhone: String_comparison_exp - tags: tag_bool_exp - units: unit_bool_exp - webhooks: webhook_bool_exp - website: String_comparison_exp -} - -""" -unique or primary key constraints on table "team" -""" -enum team_constraint { - """unique or primary key constraint""" - team_pkey -} - -""" -input type for incrementing numeric columns in table "team" -""" -input team_inc_input { - commissionPercentage: numeric -} - -""" -input type for inserting data into table "team" -""" -input team_insert_input { - address: String - bookings: booking_arr_rel_insert_input - commissionPercentage: numeric - connections: connection_arr_rel_insert_input - createdAt: timestamptz - email: String - entities: entity_arr_rel_insert_input - id: uuid - integrations: integration_arr_rel_insert_input - isActive: Boolean - isTest: Boolean - issues: issue_arr_rel_insert_input - jobs: job_arr_rel_insert_input - lines: line_arr_rel_insert_input - members: teamUser_arr_rel_insert_input - metrics: metric_arr_rel_insert_input - name: String - payments: payment_arr_rel_insert_input - stripeId: String - stripeSubscriptionItemId: String - supportEmail: String - supportPhone: String - tags: tag_arr_rel_insert_input - units: unit_arr_rel_insert_input - webhooks: webhook_arr_rel_insert_input - website: String -} - -"""aggregate max on columns""" -type team_max_fields { - address: String - commissionPercentage: numeric - createdAt: timestamptz - email: String - id: uuid - name: String - stripeId: String - stripeSubscriptionItemId: String - supportEmail: String - supportPhone: String - website: String -} - -"""aggregate min on columns""" -type team_min_fields { - address: String - commissionPercentage: numeric - createdAt: timestamptz - email: String - id: uuid - name: String - stripeId: String - stripeSubscriptionItemId: String - supportEmail: String - supportPhone: String - website: String -} - -""" -response of any mutation on the table "team" -""" -type team_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [team!]! -} - -""" -input type for inserting object relation for remote table "team" -""" -input team_obj_rel_insert_input { - data: team_insert_input! - - """on conflict condition""" - on_conflict: team_on_conflict -} - -""" -on conflict condition type for table "team" -""" -input team_on_conflict { - constraint: team_constraint! - update_columns: [team_update_column!]! = [] - where: team_bool_exp -} - -"""Ordering options when selecting data from "team".""" -input team_order_by { - address: order_by - bookings_aggregate: booking_aggregate_order_by - commissionPercentage: order_by - connections_aggregate: connection_aggregate_order_by - createdAt: order_by - email: order_by - entities_aggregate: entity_aggregate_order_by - id: order_by - integrations_aggregate: integration_aggregate_order_by - isActive: order_by - isTest: order_by - issues_aggregate: issue_aggregate_order_by - jobs_aggregate: job_aggregate_order_by - lines_aggregate: line_aggregate_order_by - members_aggregate: teamUser_aggregate_order_by - metrics_aggregate: metric_aggregate_order_by - name: order_by - payments_aggregate: payment_aggregate_order_by - stripeId: order_by - stripeSubscriptionItemId: order_by - supportEmail: order_by - supportPhone: order_by - tags_aggregate: tag_aggregate_order_by - units_aggregate: unit_aggregate_order_by - webhooks_aggregate: webhook_aggregate_order_by - website: order_by -} - -"""primary key columns input for table: team""" -input team_pk_columns_input { - id: uuid! -} - -""" -select columns of table "team" -""" -enum team_select_column { - """column name""" - address - - """column name""" - commissionPercentage - - """column name""" - createdAt - - """column name""" - email - - """column name""" - id - - """column name""" - isActive - - """column name""" - isTest - - """column name""" - name - - """column name""" - stripeId - - """column name""" - stripeSubscriptionItemId - - """column name""" - supportEmail - - """column name""" - supportPhone - - """column name""" - website -} - -""" -input type for updating data in table "team" -""" -input team_set_input { - address: String - commissionPercentage: numeric - createdAt: timestamptz - email: String - id: uuid - isActive: Boolean - isTest: Boolean - name: String - stripeId: String - stripeSubscriptionItemId: String - supportEmail: String - supportPhone: String - website: String -} - -"""aggregate stddev on columns""" -type team_stddev_fields { - commissionPercentage: Float -} - -"""aggregate stddev_pop on columns""" -type team_stddev_pop_fields { - commissionPercentage: Float -} - -"""aggregate stddev_samp on columns""" -type team_stddev_samp_fields { - commissionPercentage: Float -} - -"""aggregate sum on columns""" -type team_sum_fields { - commissionPercentage: numeric -} - -""" -update columns of table "team" -""" -enum team_update_column { - """column name""" - address - - """column name""" - commissionPercentage - - """column name""" - createdAt - - """column name""" - email - - """column name""" - id - - """column name""" - isActive - - """column name""" - isTest - - """column name""" - name - - """column name""" - stripeId - - """column name""" - stripeSubscriptionItemId - - """column name""" - supportEmail - - """column name""" - supportPhone - - """column name""" - website -} - -"""aggregate var_pop on columns""" -type team_var_pop_fields { - commissionPercentage: Float -} - -"""aggregate var_samp on columns""" -type team_var_samp_fields { - commissionPercentage: Float -} - -"""aggregate variance on columns""" -type team_variance_fields { - commissionPercentage: Float -} - -""" -columns and relationships of "team_user" -""" -type teamUser { - createdAt: timestamptz - id: uuid! - role: String - - """An object relationship""" - team: team! - teamId: uuid! - updatedAt: timestamptz - - """An object relationship""" - user: user! - userId: uuid! -} - -""" -aggregated selection of "team_user" -""" -type teamUser_aggregate { - aggregate: teamUser_aggregate_fields - nodes: [teamUser!]! -} - -""" -aggregate fields of "team_user" -""" -type teamUser_aggregate_fields { - count(columns: [teamUser_select_column!], distinct: Boolean): Int! - max: teamUser_max_fields - min: teamUser_min_fields -} - -""" -order by aggregate values of table "team_user" -""" -input teamUser_aggregate_order_by { - count: order_by - max: teamUser_max_order_by - min: teamUser_min_order_by -} - -""" -input type for inserting array relation for remote table "team_user" -""" -input teamUser_arr_rel_insert_input { - data: [teamUser_insert_input!]! - - """on conflict condition""" - on_conflict: teamUser_on_conflict -} - -""" -Boolean expression to filter rows from the table "team_user". All fields are combined with a logical 'AND'. -""" -input teamUser_bool_exp { - _and: [teamUser_bool_exp!] - _not: teamUser_bool_exp - _or: [teamUser_bool_exp!] - createdAt: timestamptz_comparison_exp - id: uuid_comparison_exp - role: String_comparison_exp - team: team_bool_exp - teamId: uuid_comparison_exp - updatedAt: timestamptz_comparison_exp - user: user_bool_exp - userId: uuid_comparison_exp -} - -""" -unique or primary key constraints on table "team_user" -""" -enum teamUser_constraint { - """unique or primary key constraint""" - team_user_pkey -} - -""" -input type for inserting data into table "team_user" -""" -input teamUser_insert_input { - createdAt: timestamptz - id: uuid - role: String - team: team_obj_rel_insert_input - teamId: uuid - updatedAt: timestamptz - user: user_obj_rel_insert_input - userId: uuid -} - -"""aggregate max on columns""" -type teamUser_max_fields { - createdAt: timestamptz - id: uuid - role: String - teamId: uuid - updatedAt: timestamptz - userId: uuid -} - -""" -order by max() on columns of table "team_user" -""" -input teamUser_max_order_by { - createdAt: order_by - id: order_by - role: order_by - teamId: order_by - updatedAt: order_by - userId: order_by -} - -"""aggregate min on columns""" -type teamUser_min_fields { - createdAt: timestamptz - id: uuid - role: String - teamId: uuid - updatedAt: timestamptz - userId: uuid -} - -""" -order by min() on columns of table "team_user" -""" -input teamUser_min_order_by { - createdAt: order_by - id: order_by - role: order_by - teamId: order_by - updatedAt: order_by - userId: order_by -} - -""" -response of any mutation on the table "team_user" -""" -type teamUser_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [teamUser!]! -} - -""" -on conflict condition type for table "team_user" -""" -input teamUser_on_conflict { - constraint: teamUser_constraint! - update_columns: [teamUser_update_column!]! = [] - where: teamUser_bool_exp -} - -"""Ordering options when selecting data from "team_user".""" -input teamUser_order_by { - createdAt: order_by - id: order_by - role: order_by - team: team_order_by - teamId: order_by - updatedAt: order_by - user: user_order_by - userId: order_by -} - -"""primary key columns input for table: teamUser""" -input teamUser_pk_columns_input { - id: uuid! -} - -""" -select columns of table "team_user" -""" -enum teamUser_select_column { - """column name""" - createdAt - - """column name""" - id - - """column name""" - role - - """column name""" - teamId - - """column name""" - updatedAt - - """column name""" - userId -} - -""" -input type for updating data in table "team_user" -""" -input teamUser_set_input { - createdAt: timestamptz - id: uuid - role: String - teamId: uuid - updatedAt: timestamptz - userId: uuid -} - -""" -update columns of table "team_user" -""" -enum teamUser_update_column { - """column name""" - createdAt - - """column name""" - id - - """column name""" - role - - """column name""" - teamId - - """column name""" - updatedAt - - """column name""" - userId -} - -scalar timestamptz - -""" -Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. -""" -input timestamptz_comparison_exp { - _eq: timestamptz - _gt: timestamptz - _gte: timestamptz - _in: [timestamptz!] - _is_null: Boolean - _lt: timestamptz - _lte: timestamptz - _neq: timestamptz - _nin: [timestamptz!] -} - -""" -columns and relationships of "unit" -""" -type unit { - """An array relationship""" - bookings( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): [booking!]! - - """An aggregate relationship""" - bookings_aggregate( - """distinct select on columns""" - distinct_on: [booking_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [booking_order_by!] - - """filter the rows returned""" - where: booking_bool_exp - ): booking_aggregate! - - """An object relationship""" - connection: connection - connectionId: uuid - createdAt: timestamptz! - - """An object relationship""" - entity: entity - entityId: uuid - id: uuid! - metadata( - """JSON select path""" - path: String - ): jsonb - name: String - status: String - - """An array relationship""" - tags( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): [tag!]! - - """An aggregate relationship""" - tags_aggregate( - """distinct select on columns""" - distinct_on: [tag_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [tag_order_by!] - - """filter the rows returned""" - where: tag_bool_exp - ): tag_aggregate! - - """An object relationship""" - team: team - teamId: uuid - uniqueRef: String - updatedAt: timestamptz! -} - -""" -aggregated selection of "unit" -""" -type unit_aggregate { - aggregate: unit_aggregate_fields - nodes: [unit!]! -} - -""" -aggregate fields of "unit" -""" -type unit_aggregate_fields { - count(columns: [unit_select_column!], distinct: Boolean): Int! - max: unit_max_fields - min: unit_min_fields -} - -""" -order by aggregate values of table "unit" -""" -input unit_aggregate_order_by { - count: order_by - max: unit_max_order_by - min: unit_min_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input unit_append_input { - metadata: jsonb -} - -""" -input type for inserting array relation for remote table "unit" -""" -input unit_arr_rel_insert_input { - data: [unit_insert_input!]! - - """on conflict condition""" - on_conflict: unit_on_conflict -} - -""" -Boolean expression to filter rows from the table "unit". All fields are combined with a logical 'AND'. -""" -input unit_bool_exp { - _and: [unit_bool_exp!] - _not: unit_bool_exp - _or: [unit_bool_exp!] - bookings: booking_bool_exp - connection: connection_bool_exp - connectionId: uuid_comparison_exp - createdAt: timestamptz_comparison_exp - entity: entity_bool_exp - entityId: uuid_comparison_exp - id: uuid_comparison_exp - metadata: jsonb_comparison_exp - name: String_comparison_exp - status: String_comparison_exp - tags: tag_bool_exp - team: team_bool_exp - teamId: uuid_comparison_exp - uniqueRef: String_comparison_exp - updatedAt: timestamptz_comparison_exp -} - -""" -unique or primary key constraints on table "unit" -""" -enum unit_constraint { - """unique or primary key constraint""" - unit_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input unit_delete_at_path_input { - metadata: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input unit_delete_elem_input { - metadata: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input unit_delete_key_input { - metadata: String -} - -""" -input type for inserting data into table "unit" -""" -input unit_insert_input { - bookings: booking_arr_rel_insert_input - connection: connection_obj_rel_insert_input - connectionId: uuid - createdAt: timestamptz - entity: entity_obj_rel_insert_input - entityId: uuid - id: uuid - metadata: jsonb - name: String - status: String - tags: tag_arr_rel_insert_input - team: team_obj_rel_insert_input - teamId: uuid - uniqueRef: String - updatedAt: timestamptz -} - -"""aggregate max on columns""" -type unit_max_fields { - connectionId: uuid - createdAt: timestamptz - entityId: uuid - id: uuid - name: String - status: String - teamId: uuid - uniqueRef: String - updatedAt: timestamptz -} - -""" -order by max() on columns of table "unit" -""" -input unit_max_order_by { - connectionId: order_by - createdAt: order_by - entityId: order_by - id: order_by - name: order_by - status: order_by - teamId: order_by - uniqueRef: order_by - updatedAt: order_by -} - -"""aggregate min on columns""" -type unit_min_fields { - connectionId: uuid - createdAt: timestamptz - entityId: uuid - id: uuid - name: String - status: String - teamId: uuid - uniqueRef: String - updatedAt: timestamptz -} - -""" -order by min() on columns of table "unit" -""" -input unit_min_order_by { - connectionId: order_by - createdAt: order_by - entityId: order_by - id: order_by - name: order_by - status: order_by - teamId: order_by - uniqueRef: order_by - updatedAt: order_by -} - -""" -response of any mutation on the table "unit" -""" -type unit_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [unit!]! -} - -""" -input type for inserting object relation for remote table "unit" -""" -input unit_obj_rel_insert_input { - data: unit_insert_input! - - """on conflict condition""" - on_conflict: unit_on_conflict -} - -""" -on conflict condition type for table "unit" -""" -input unit_on_conflict { - constraint: unit_constraint! - update_columns: [unit_update_column!]! = [] - where: unit_bool_exp -} - -"""Ordering options when selecting data from "unit".""" -input unit_order_by { - bookings_aggregate: booking_aggregate_order_by - connection: connection_order_by - connectionId: order_by - createdAt: order_by - entity: entity_order_by - entityId: order_by - id: order_by - metadata: order_by - name: order_by - status: order_by - tags_aggregate: tag_aggregate_order_by - team: team_order_by - teamId: order_by - uniqueRef: order_by - updatedAt: order_by -} - -"""primary key columns input for table: unit""" -input unit_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input unit_prepend_input { - metadata: jsonb -} - -""" -select columns of table "unit" -""" -enum unit_select_column { - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - entityId - - """column name""" - id - - """column name""" - metadata - - """column name""" - name - - """column name""" - status - - """column name""" - teamId - - """column name""" - uniqueRef - - """column name""" - updatedAt -} - -""" -input type for updating data in table "unit" -""" -input unit_set_input { - connectionId: uuid - createdAt: timestamptz - entityId: uuid - id: uuid - metadata: jsonb - name: String - status: String - teamId: uuid - uniqueRef: String - updatedAt: timestamptz -} - -""" -update columns of table "unit" -""" -enum unit_update_column { - """column name""" - connectionId - - """column name""" - createdAt - - """column name""" - entityId - - """column name""" - id - - """column name""" - metadata - - """column name""" - name - - """column name""" - status - - """column name""" - teamId - - """column name""" - uniqueRef - - """column name""" - updatedAt -} - -""" -columns and relationships of "user" -""" -type user { - createdAt: timestamptz - email: String! - id: uuid! - isAdmin: Boolean! - - """An array relationship""" - memberships( - """distinct select on columns""" - distinct_on: [teamUser_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [teamUser_order_by!] - - """filter the rows returned""" - where: teamUser_bool_exp - ): [teamUser!]! - - """An aggregate relationship""" - memberships_aggregate( - """distinct select on columns""" - distinct_on: [teamUser_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [teamUser_order_by!] - - """filter the rows returned""" - where: teamUser_bool_exp - ): teamUser_aggregate! - name: String - status: user_status_enum - sub: String - trialExpiryAt: timestamptz -} - -""" -aggregated selection of "user" -""" -type user_aggregate { - aggregate: user_aggregate_fields - nodes: [user!]! -} - -""" -aggregate fields of "user" -""" -type user_aggregate_fields { - count(columns: [user_select_column!], distinct: Boolean): Int! - max: user_max_fields - min: user_min_fields -} - -""" -Boolean expression to filter rows from the table "user". All fields are combined with a logical 'AND'. -""" -input user_bool_exp { - _and: [user_bool_exp!] - _not: user_bool_exp - _or: [user_bool_exp!] - createdAt: timestamptz_comparison_exp - email: String_comparison_exp - id: uuid_comparison_exp - isAdmin: Boolean_comparison_exp - memberships: teamUser_bool_exp - name: String_comparison_exp - status: user_status_enum_comparison_exp - sub: String_comparison_exp - trialExpiryAt: timestamptz_comparison_exp -} - -""" -unique or primary key constraints on table "user" -""" -enum user_constraint { - """unique or primary key constraint""" - user_pkey -} - -""" -input type for inserting data into table "user" -""" -input user_insert_input { - createdAt: timestamptz - email: String - id: uuid - isAdmin: Boolean - memberships: teamUser_arr_rel_insert_input - name: String - status: user_status_enum - sub: String - trialExpiryAt: timestamptz -} - -"""aggregate max on columns""" -type user_max_fields { - createdAt: timestamptz - email: String - id: uuid - name: String - sub: String - trialExpiryAt: timestamptz -} - -"""aggregate min on columns""" -type user_min_fields { - createdAt: timestamptz - email: String - id: uuid - name: String - sub: String - trialExpiryAt: timestamptz -} - -""" -response of any mutation on the table "user" -""" -type user_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [user!]! -} - -""" -input type for inserting object relation for remote table "user" -""" -input user_obj_rel_insert_input { - data: user_insert_input! - - """on conflict condition""" - on_conflict: user_on_conflict -} - -""" -on conflict condition type for table "user" -""" -input user_on_conflict { - constraint: user_constraint! - update_columns: [user_update_column!]! = [] - where: user_bool_exp -} - -"""Ordering options when selecting data from "user".""" -input user_order_by { - createdAt: order_by - email: order_by - id: order_by - isAdmin: order_by - memberships_aggregate: teamUser_aggregate_order_by - name: order_by - status: order_by - sub: order_by - trialExpiryAt: order_by -} - -"""primary key columns input for table: user""" -input user_pk_columns_input { - id: uuid! -} - -""" -select columns of table "user" -""" -enum user_select_column { - """column name""" - createdAt - - """column name""" - email - - """column name""" - id - - """column name""" - isAdmin - - """column name""" - name - - """column name""" - status - - """column name""" - sub - - """column name""" - trialExpiryAt -} - -""" -input type for updating data in table "user" -""" -input user_set_input { - createdAt: timestamptz - email: String - id: uuid - isAdmin: Boolean - name: String - status: user_status_enum - sub: String - trialExpiryAt: timestamptz -} - -enum user_status_enum { - active - banned - disabled - trialExpired -} - -""" -Boolean expression to compare columns of type "user_status_enum". All fields are combined with logical 'AND'. -""" -input user_status_enum_comparison_exp { - _eq: user_status_enum - _in: [user_status_enum!] - _is_null: Boolean - _neq: user_status_enum - _nin: [user_status_enum!] -} - -""" -update columns of table "user" -""" -enum user_update_column { - """column name""" - createdAt - - """column name""" - email - - """column name""" - id - - """column name""" - isAdmin - - """column name""" - name - - """column name""" - status - - """column name""" - sub - - """column name""" - trialExpiryAt -} - -""" -columns and relationships of "user_status" -""" -type userStatus { - name: String! -} - -""" -aggregated selection of "user_status" -""" -type userStatus_aggregate { - aggregate: userStatus_aggregate_fields - nodes: [userStatus!]! -} - -""" -aggregate fields of "user_status" -""" -type userStatus_aggregate_fields { - count(columns: [userStatus_select_column!], distinct: Boolean): Int! - max: userStatus_max_fields - min: userStatus_min_fields -} - -""" -Boolean expression to filter rows from the table "user_status". All fields are combined with a logical 'AND'. -""" -input userStatus_bool_exp { - _and: [userStatus_bool_exp!] - _not: userStatus_bool_exp - _or: [userStatus_bool_exp!] - name: String_comparison_exp -} - -""" -unique or primary key constraints on table "user_status" -""" -enum userStatus_constraint { - """unique or primary key constraint""" - user_status_pkey -} - -""" -input type for inserting data into table "user_status" -""" -input userStatus_insert_input { - name: String -} - -"""aggregate max on columns""" -type userStatus_max_fields { - name: String -} - -"""aggregate min on columns""" -type userStatus_min_fields { - name: String -} - -""" -response of any mutation on the table "user_status" -""" -type userStatus_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [userStatus!]! -} - -""" -on conflict condition type for table "user_status" -""" -input userStatus_on_conflict { - constraint: userStatus_constraint! - update_columns: [userStatus_update_column!]! = [] - where: userStatus_bool_exp -} - -"""Ordering options when selecting data from "user_status".""" -input userStatus_order_by { - name: order_by -} - -"""primary key columns input for table: userStatus""" -input userStatus_pk_columns_input { - name: String! -} - -""" -select columns of table "user_status" -""" -enum userStatus_select_column { - """column name""" - name -} - -""" -input type for updating data in table "user_status" -""" -input userStatus_set_input { - name: String -} - -""" -update columns of table "user_status" -""" -enum userStatus_update_column { - """column name""" - name -} - -scalar uuid - -""" -Boolean expression to compare columns of type "uuid". All fields are combined with logical 'AND'. -""" -input uuid_comparison_exp { - _eq: uuid - _gt: uuid - _gte: uuid - _in: [uuid!] - _is_null: Boolean - _lt: uuid - _lte: uuid - _neq: uuid - _nin: [uuid!] -} - -""" -columns and relationships of "webhook" -""" -type webhook { - createdAt: timestamptz! - headers( - """JSON select path""" - path: String - ): jsonb - id: uuid! - - """An object relationship""" - team: team! - teamId: uuid! - types( - """JSON select path""" - path: String - ): jsonb! - types2: _text - url: String! -} - -""" -aggregated selection of "webhook" -""" -type webhook_aggregate { - aggregate: webhook_aggregate_fields - nodes: [webhook!]! -} - -""" -aggregate fields of "webhook" -""" -type webhook_aggregate_fields { - count(columns: [webhook_select_column!], distinct: Boolean): Int! - max: webhook_max_fields - min: webhook_min_fields -} - -""" -order by aggregate values of table "webhook" -""" -input webhook_aggregate_order_by { - count: order_by - max: webhook_max_order_by - min: webhook_min_order_by -} - -"""append existing jsonb value of filtered columns with new jsonb value""" -input webhook_append_input { - headers: jsonb - types: jsonb -} - -""" -input type for inserting array relation for remote table "webhook" -""" -input webhook_arr_rel_insert_input { - data: [webhook_insert_input!]! - - """on conflict condition""" - on_conflict: webhook_on_conflict -} - -""" -Boolean expression to filter rows from the table "webhook". All fields are combined with a logical 'AND'. -""" -input webhook_bool_exp { - _and: [webhook_bool_exp!] - _not: webhook_bool_exp - _or: [webhook_bool_exp!] - createdAt: timestamptz_comparison_exp - headers: jsonb_comparison_exp - id: uuid_comparison_exp - team: team_bool_exp - teamId: uuid_comparison_exp - types: jsonb_comparison_exp - types2: _text_comparison_exp - url: String_comparison_exp -} - -""" -unique or primary key constraints on table "webhook" -""" -enum webhook_constraint { - """unique or primary key constraint""" - webhook_pkey -} - -""" -delete the field or element with specified path (for JSON arrays, negative integers count from the end) -""" -input webhook_delete_at_path_input { - headers: [String!] - types: [String!] -} - -""" -delete the array element with specified index (negative integers count from the -end). throws an error if top level container is not an array -""" -input webhook_delete_elem_input { - headers: Int - types: Int -} - -""" -delete key/value pair or string element. key/value pairs are matched based on their key value -""" -input webhook_delete_key_input { - headers: String - types: String -} - -""" -input type for inserting data into table "webhook" -""" -input webhook_insert_input { - createdAt: timestamptz - headers: jsonb - id: uuid - team: team_obj_rel_insert_input - teamId: uuid - types: jsonb - types2: _text - url: String -} - -"""aggregate max on columns""" -type webhook_max_fields { - createdAt: timestamptz - id: uuid - teamId: uuid - url: String -} - -""" -order by max() on columns of table "webhook" -""" -input webhook_max_order_by { - createdAt: order_by - id: order_by - teamId: order_by - url: order_by -} - -"""aggregate min on columns""" -type webhook_min_fields { - createdAt: timestamptz - id: uuid - teamId: uuid - url: String -} - -""" -order by min() on columns of table "webhook" -""" -input webhook_min_order_by { - createdAt: order_by - id: order_by - teamId: order_by - url: order_by -} - -""" -response of any mutation on the table "webhook" -""" -type webhook_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [webhook!]! -} - -""" -on conflict condition type for table "webhook" -""" -input webhook_on_conflict { - constraint: webhook_constraint! - update_columns: [webhook_update_column!]! = [] - where: webhook_bool_exp -} - -"""Ordering options when selecting data from "webhook".""" -input webhook_order_by { - createdAt: order_by - headers: order_by - id: order_by - team: team_order_by - teamId: order_by - types: order_by - types2: order_by - url: order_by -} - -"""primary key columns input for table: webhook""" -input webhook_pk_columns_input { - id: uuid! -} - -"""prepend existing jsonb value of filtered columns with new jsonb value""" -input webhook_prepend_input { - headers: jsonb - types: jsonb -} - -""" -select columns of table "webhook" -""" -enum webhook_select_column { - """column name""" - createdAt - - """column name""" - headers - - """column name""" - id - - """column name""" - teamId - - """column name""" - types - - """column name""" - types2 - - """column name""" - url -} - -""" -input type for updating data in table "webhook" -""" -input webhook_set_input { - createdAt: timestamptz - headers: jsonb - id: uuid - teamId: uuid - types: jsonb - types2: _text - url: String -} - -""" -update columns of table "webhook" -""" -enum webhook_update_column { - """column name""" - createdAt - - """column name""" - headers - - """column name""" - id - - """column name""" - teamId - - """column name""" - types - - """column name""" - types2 - - """column name""" - url -} diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index 04b5e45f..f4e6fed8 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -1,6 +1,6 @@ import chalk from 'chalk'; import fetch from 'node-fetch'; -import { $, Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes } from './zeus'; +import { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus'; const sel = Selector('Query')({ drawCard: { @@ -159,16 +159,19 @@ const run = async () => { Attack: true, }, }, - 'ListCards', + { + operationName: 'ListCards', + }, ); printGQLString('operationName ListCards', operationName); + const { $, values, $params } = useZeusVariables({ cardIds: '[String!]!' })({ cardIds: ['1', '2'] }); const aliasedQueryExecute = await Gql('query')( { listCards: { __alias: { atak: { attack: [ - { cardID: $`cardIds` }, + { cardID: $('cardIds') }, { name: true, __alias: { @@ -187,7 +190,10 @@ const run = async () => { }, }, { - variables: { cardIds: ['1', '2'] }, + variables: { + $params, + values, + }, }, ); printQueryResult('aliasedQuery', aliasedQueryExecute); @@ -242,13 +248,18 @@ const run = async () => { printQueryResult('interfaceTest', interfaceTest); // Variable test + const mutationVars = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({ + Attack: 1, + Defense: 10, + }); + const test = await Gql('mutation')( { addCard: [ { card: { - Attack: $`Attack`, - Defense: $`Attack`, + Attack: mutationVars.$('Attack'), + Defense: mutationVars.$('Defense'), name: 'aa', description: 'aa', }, @@ -270,9 +281,7 @@ const run = async () => { ], }, { - variables: { - Attack: 4, - }, + variables: mutationVars, }, ); printQueryResult('variable Test', test); diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index c3e4f939..dd397ecb 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,6 +1,6 @@ /* eslint-disable */ -import { Zeus, GraphQLTypes, InputType, ValueTypes } from './index'; +import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client'; import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; @@ -8,28 +8,28 @@ import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, La export function useTypedMutation( mutation: Z | ValueTypes[O], options?: MutationHookOptions>, - operationName?: string, + operationOptions?: OperationOptions, ) { - return useMutation>(gql(Zeus("mutation",mutation, operationName)), options); + return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); } export function useTypedSubscription( subscription: Z | ValueTypes[O], options?: SubscriptionHookOptions>, - operationName?: string, + operationOptions?: OperationOptions, ) { - return useSubscription>(gql(Zeus("subscription",subscription, operationName)), options); + return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); } export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, - operationName?: string, + operationOptions?: OperationOptions, ) { - return useQuery>(gql(Zeus("query",query, operationName)), options); + return useQuery>(gql(Zeus("query",query, operationOptions)), options); } export function useTypedLazyQuery( LazyQuery: Z | ValueTypes[O], options?: LazyQueryHookOptions>, - operationName?: string, + operationOptions?: OperationOptions, ) { - return useLazyQuery>(gql(Zeus("query",LazyQuery, operationName)), options); + return useLazyQuery>(gql(Zeus("query",LazyQuery, operationOptions)), options); } diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 5044a7e9..2ef950be 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,85 +1,46 @@ /* eslint-disable */ export const AllTypesProps: Record = { - SpecialSkills: "enum", + createCard:{ + skills:"SpecialSkills" + }, Mutation:{ addCard:{ - card:{ - type:"createCard!" - } + card:"createCard" } }, - createCard:{ - Attack:{ - type:"Int!" - }, - Defense:{ - type:"Int!" - }, - skills:{ - type:"[SpecialSkills]!" - }, - name:{ - type:"String!" - }, - description:{ - type:"String!" - }, - Children:{ - type:"Int" + SpecialSkills: true, + Query:{ + cardById:{ + } }, Card:{ attack:{ - cardID:{ - type:"[String!]!" - } - } - }, - Query:{ - cardById:{ - cardId:{ - type:"String" - } + } } } export const ReturnTypes: Record = { + EffectCard:{ + effectSize:"Float", + name:"String" + }, Mutation:{ addCard:"Card" }, - Subscription:{ - deck:"Card" - }, - Card:{ - Attack:"Int", - Children:"Int", - Defense:"Int", - attack:"Card", - cardImage:"S3Object", - description:"String", - id:"ID", - image:"String", - name:"String", - skills:"SpecialSkills" + SpecialCard:{ + effect:"String", + name:"String" }, S3Object:{ bucket:"String", key:"String", region:"String" }, - SpecialCard:{ - effect:"String", - name:"String" - }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, - CardStack:{ - cards:"Card", - name:"String" + Subscription:{ + deck:"Card" }, Query:{ cardById:"Card", @@ -90,14 +51,36 @@ export const ReturnTypes: Record = { nameables:"Nameable" }, Nameable:{ - "...on Card": "Card", + "...on EffectCard": "EffectCard", "...on SpecialCard": "SpecialCard", "...on CardStack": "CardStack", - "...on EffectCard": "EffectCard", + "...on Card": "Card", name:"String" }, - EffectCard:{ - effectSize:"Float", + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" + }, + CardStack:{ + cards:"Card", name:"String" + }, + Card:{ + Attack:"Int", + Children:"Int", + Defense:"Int", + attack:"Card", + cardImage:"S3Object", + description:"String", + id:"ID", + image:"String", + name:"String", + skills:"SpecialSkills" } +} + +export const Ops = { + query: "Query" as const, + mutation: "Mutation" as const, + subscription: "Subscription" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 8f0dec62..8f2b33e8 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -1,617 +1,7 @@ /* eslint-disable */ -import { AllTypesProps, ReturnTypes } from './const'; -type ZEUS_INTERFACES = GraphQLTypes['Nameable']; -type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; - -export type ValueTypes = { - ['SpecialSkills']: SpecialSkills; - ['Mutation']: AliasType<{ - addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; - __typename?: boolean; - }>; - /** create card inputs
*/ - ['createCard']: { - /** The attack power
*/ - Attack: number; - /** The defense power
*/ - Defense: number; - /** input skills */ - skills?: ValueTypes['SpecialSkills'][]; - /** The name of a card
*/ - name: string; - /** Description of a card
*/ - description: string; - /**

How many children the greek god had
*/ - Children?: number | undefined | null; - }; - ['Subscription']: AliasType<{ - deck?: ValueTypes['Card']; - __typename?: boolean; - }>; - /** Card used in card game
*/ - ['Card']: AliasType<{ - /** The attack power
*/ - Attack?: boolean; - /**
How many children the greek god had
*/ - Children?: boolean; - /** The defense power
*/ - Defense?: boolean; - attack?: [ - { - /** Attacked card/card ids
*/ cardID: string[] | undefined | null; - }, - ValueTypes['Card'], - ]; - /** Put your description here */ - cardImage?: ValueTypes['S3Object']; - /** Description of a card
*/ - description?: boolean; - id?: boolean; - image?: boolean; - /** The name of a card
*/ - name?: boolean; - skills?: boolean; - __typename?: boolean; - }>; - /** Aws S3 File */ - ['S3Object']: AliasType<{ - bucket?: boolean; - key?: boolean; - region?: boolean; - __typename?: boolean; - }>; - ['SpecialCard']: AliasType<{ - effect?: boolean; - name?: boolean; - __typename?: boolean; - }>; - ['ChangeCard']: AliasType<{ - ['...on SpecialCard']: ValueTypes['SpecialCard']; - ['...on EffectCard']: ValueTypes['EffectCard']; - __typename?: boolean; - }>; - /** Stack of cards */ - ['CardStack']: AliasType<{ - cards?: ValueTypes['Card']; - name?: boolean; - __typename?: boolean; - }>; - ['Query']: AliasType<{ - cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; - /** Draw a card
*/ - drawCard?: ValueTypes['Card']; - drawChangeCard?: ValueTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards?: ValueTypes['Card']; - myStacks?: ValueTypes['CardStack']; - nameables?: ValueTypes['Nameable']; - __typename?: boolean; - }>; - ['Nameable']: AliasType<{ - name?: boolean; - ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on CardStack']?: Omit; - ['...on EffectCard']?: Omit; - __typename?: boolean; - }>; - ['EffectCard']: AliasType<{ - effectSize?: boolean; - name?: boolean; - __typename?: boolean; - }>; -}; - -export type ModelTypes = { - ['SpecialSkills']: GraphQLTypes['SpecialSkills']; - ['Mutation']: { - /** add Card to Cards database
*/ - addCard: GraphQLTypes['Card']; - }; - /** create card inputs
*/ - ['createCard']: GraphQLTypes['createCard']; - ['Subscription']: { - deck?: Array | undefined; - }; - /** Card used in card game
*/ - ['Card']: { - /** The attack power
*/ - Attack: number; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The defense power
*/ - Defense: number; - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined; - /** Put your description here */ - cardImage?: GraphQLTypes['S3Object'] | undefined; - /** Description of a card
*/ - description: string; - id: string; - image: string; - /** The name of a card
*/ - name: string; - skills?: Array | undefined; - }; - /** Aws S3 File */ - ['S3Object']: { - bucket: string; - key: string; - region: string; - }; - ['SpecialCard']: { - effect: string; - name: string; - }; - ['ChangeCard']: ModelTypes['SpecialCard'] | ModelTypes['EffectCard']; - /** Stack of cards */ - ['CardStack']: { - cards?: Array | undefined; - name: string; - }; - ['Query']: { - cardById?: GraphQLTypes['Card'] | undefined; - /** Draw a card
*/ - drawCard: GraphQLTypes['Card']; - drawChangeCard: GraphQLTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards: Array; - myStacks?: Array | undefined; - nameables: Array; - }; - ['Nameable']: ModelTypes['Card'] | ModelTypes['SpecialCard'] | ModelTypes['CardStack'] | ModelTypes['EffectCard']; - ['EffectCard']: { - effectSize: number; - name: string; - }; -}; - -export type GraphQLTypes = { - ['SpecialSkills']: SpecialSkills; - ['Mutation']: { - __typename: 'Mutation'; - /** add Card to Cards database
*/ - addCard: GraphQLTypes['Card']; - }; - /** create card inputs
*/ - ['createCard']: { - /** The attack power
*/ - Attack: number; - /** The defense power
*/ - Defense: number; - /** input skills */ - skills?: Array | undefined; - /** The name of a card
*/ - name: string; - /** Description of a card
*/ - description: string; - /**
How many children the greek god had
*/ - Children?: number | undefined; - }; - ['Subscription']: { - __typename: 'Subscription'; - deck?: Array | undefined; - }; - /** Card used in card game
*/ - ['Card']: { - __typename: 'Card'; - /** The attack power
*/ - Attack: number; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The defense power
*/ - Defense: number; - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined; - /** Put your description here */ - cardImage?: GraphQLTypes['S3Object'] | undefined; - /** Description of a card
*/ - description: string; - id: string; - image: string; - /** The name of a card
*/ - name: string; - skills?: Array | undefined; - }; - /** Aws S3 File */ - ['S3Object']: { - __typename: 'S3Object'; - bucket: string; - key: string; - region: string; - }; - ['SpecialCard']: { - __typename: 'SpecialCard'; - effect: string; - name: string; - }; - ['ChangeCard']: { - __typename: 'SpecialCard' | 'EffectCard'; - ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; - ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; - }; - /** Stack of cards */ - ['CardStack']: { - __typename: 'CardStack'; - cards?: Array | undefined; - name: string; - }; - ['Query']: { - __typename: 'Query'; - cardById?: GraphQLTypes['Card'] | undefined; - /** Draw a card
*/ - drawCard: GraphQLTypes['Card']; - drawChangeCard: GraphQLTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards: Array; - myStacks?: Array | undefined; - nameables: Array; - }; - ['Nameable']: { - __typename: 'Card' | 'SpecialCard' | 'CardStack' | 'EffectCard'; - name: string; - ['...on Card']: '__union' & GraphQLTypes['Card']; - ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; - ['...on CardStack']: '__union' & GraphQLTypes['CardStack']; - ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; - }; - ['EffectCard']: { - __typename: 'EffectCard'; - effectSize: number; - name: string; - }; -}; -export const enum SpecialSkills { - THUNDER = 'THUNDER', - RAIN = 'RAIN', - FIRE = 'FIRE', -} -export class GraphQLError extends Error { - constructor(public response: GraphQLResponse) { - super(''); - console.error(response); - } - toString() { - return 'GraphQL Response Error'; - } -} - -export type UnwrapPromise = T extends Promise ? R : T; -export type ZeusState Promise> = NonNullable>>; -export type ZeusHook< - T extends (...args: any[]) => Record Promise>, - N extends keyof ReturnType -> = ZeusState[N]>; - -type WithTypeNameValue = T & { - __typename?: boolean; -}; -type AliasType = WithTypeNameValue & { - __alias?: Record>; -}; -export interface GraphQLResponse { - data?: Record; - errors?: Array<{ - message: string; - }>; -} -type DeepAnify = { - [P in keyof T]?: any; -}; -type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; -type IsArray = T extends Array ? InputType[] : InputType; -type FlattenArray = T extends Array ? R : T; - -type IsInterfaced, DST> = FlattenArray extends ZEUS_INTERFACES | ZEUS_UNIONS - ? { - [P in keyof SRC]: SRC[P] extends '__union' & infer R - ? P extends keyof DST - ? IsArray - : {} - : never; - }[keyof DST] & - { - [P in keyof Omit< - Pick< - SRC, - { - [P in keyof DST]: SRC[P] extends '__union' & infer R ? never : P; - }[keyof DST] - >, - '__typename' - >]: IsPayLoad extends boolean ? SRC[P] : IsArray; - } - : { - [P in keyof Pick]: IsPayLoad extends boolean ? SRC[P] : IsArray; - }; - -export type MapType = SRC extends DeepAnify ? IsInterfaced : never; -export type InputType = IsPayLoad extends { __alias: infer R } - ? { - [P in keyof R]: MapType; - } & - MapType, '__alias'>> - : MapType>; -export type InputValueType = { - [x: string]: boolean | [any, boolean | InputValueType] | InputValueType; -}; -type Func

= (...args: P) => R; -type AnyFunc = Func; -export type ArgsType = F extends Func ? P : never; -export type OperationOptions = { - variables?: Record; - operationName?: string; -}; -export type SubscriptionToGraphQL = { - ws: WebSocket; - on: (fn: (args: InputType) => void) => void; - off: (fn: (e: { data?: InputType; code?: number; reason?: string; message?: string }) => void) => void; - error: (fn: (e: { data?: InputType; errors?: string[] }) => void) => void; - open: () => void; -}; -export type SelectionFunction = (t: T | V) => T; -export type fetchOptions = ArgsType; -type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; -export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; -export type FetchFunction = (query: string, variables?: Record) => Promise; -export type SubscriptionFunction = (query: string) => any; -type NotUndefined = T extends undefined ? never : T; -export type ResolverType = NotUndefined; - -export const ZeusSelect = () => ((t: any) => t) as SelectionFunction; - -export const ScalarResolver = (scalar: string, value: any) => { - switch (scalar) { - case 'String': - return `${JSON.stringify(value)}`; - case 'Int': - return `${value}`; - case 'Float': - return `${value}`; - case 'Boolean': - return `${value}`; - case 'ID': - return `"${value}"`; - case 'enum': - return `${value}`; - case 'scalar': - return `${value}`; - default: - return false; - } -}; - -export const TypesPropsResolver = ({ - value, - type, - name, - key, - blockArrays, -}: { - value: any; - type: string; - name: string; - key?: string; - blockArrays?: boolean; -}): string => { - if (value === null) { - return `null`; - } - let resolvedValue = AllTypesProps[type][name]; - if (key) { - resolvedValue = resolvedValue[key]; - } - if (!resolvedValue) { - throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`); - } - const typeResolved = resolvedValue.type; - const isArray = resolvedValue.array; - const isArrayRequired = resolvedValue.arrayRequired; - if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { - const isRequired = resolvedValue.required ? '!' : ''; - let t = `${typeResolved}`; - if (isArray) { - if (isRequired) { - t = `${t}!`; - } - t = `[${t}]`; - if (isArrayRequired) { - t = `${t}!`; - } - } else { - if (isRequired) { - t = `${t}!`; - } - } - return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; - } - if (isArray && !blockArrays) { - return `[${value.map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })).join(',')}]`; - } - const reslovedScalar = ScalarResolver(typeResolved, value); - if (!reslovedScalar) { - const resolvedType = AllTypesProps[typeResolved]; - if (typeof resolvedType === 'object') { - const argsKeys = Object.keys(resolvedType); - return `{${argsKeys - .filter((ak) => value[ak] !== undefined) - .map((ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}`)}}`; - } - return ScalarResolver(AllTypesProps[typeResolved], value) as string; - } - return reslovedScalar; -}; - -const isArrayFunction = (parent: string[], a: any[]) => { - const [values, r] = a; - const [mainKey, key, ...keys] = parent; - const keyValues = Object.keys(values).filter((k) => typeof values[k] !== 'undefined'); - - if (!keys.length) { - return keyValues.length > 0 - ? `(${keyValues - .map( - (v) => - `${v}:${TypesPropsResolver({ - value: values[v], - type: mainKey, - name: key, - key: v, - })}`, - ) - .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` - : traverseToSeekArrays(parent, r); - } - - const [typeResolverKey] = keys.splice(keys.length - 1, 1); - let valueToResolve = ReturnTypes[mainKey][key]; - for (const k of keys) { - valueToResolve = ReturnTypes[valueToResolve][k]; - } - - const argumentString = - keyValues.length > 0 - ? `(${keyValues - .map( - (v) => - `${v}:${TypesPropsResolver({ - value: values[v], - type: valueToResolve, - name: typeResolverKey, - key: v, - })}`, - ) - .join(',')})${r ? traverseToSeekArrays(parent, r) : ''}` - : traverseToSeekArrays(parent, r); - return argumentString; -}; - -const resolveKV = (k: string, v: boolean | string | { [x: string]: boolean | string }) => - typeof v === 'boolean' ? k : typeof v === 'object' ? `${k}{${objectToTree(v)}}` : `${k}${v}`; - -const objectToTree = (o: { [x: string]: boolean | string }): string => - `{${Object.keys(o) - .map((k) => `${resolveKV(k, o[k])}`) - .join(' ')}}`; - -const traverseToSeekArrays = (parent: string[], a?: any): string => { - if (!a) return ''; - if (Object.keys(a).length === 0) { - return ''; - } - let b: Record = {}; - if (Array.isArray(a)) { - return isArrayFunction([...parent], a); - } else { - if (typeof a === 'object') { - Object.keys(a) - .filter((k) => typeof a[k] !== 'undefined') - .forEach((k) => { - if (k === '__alias') { - Object.keys(a[k]).forEach((aliasKey) => { - const aliasOperations = a[k][aliasKey]; - const aliasOperationName = Object.keys(aliasOperations)[0]; - const aliasOperation = aliasOperations[aliasOperationName]; - b[`${aliasOperationName}__alias__${aliasKey}: ${aliasOperationName}`] = traverseToSeekArrays( - [...parent, aliasOperationName], - aliasOperation, - ); - }); - } else { - b[k] = traverseToSeekArrays([...parent, k], a[k]); - } - }); - } else { - return ''; - } - } - return objectToTree(b); -}; - -const buildQuery = (type: string, a?: Record) => traverseToSeekArrays([type], a); - -const inspectVariables = (query: string) => { - const regex = /\$\b\w*__ZEUS_VAR__\[?[^!^\]^\s^,^\)^\}]*[!]?[\]]?[!]?/g; - let result; - const AllVariables: string[] = []; - while ((result = regex.exec(query))) { - if (AllVariables.includes(result[0])) { - continue; - } - AllVariables.push(result[0]); - } - if (!AllVariables.length) { - return query; - } - let filteredQuery = query; - AllVariables.forEach((variable) => { - while (filteredQuery.includes(variable)) { - filteredQuery = filteredQuery.replace(variable, variable.split('__ZEUS_VAR__')[0]); - } - }); - return `(${AllVariables.map((a) => a.split('__ZEUS_VAR__')) - .map(([variableName, variableType]) => `${variableName}:${variableType}`) - .join(', ')})${filteredQuery}`; -}; - -export const queryConstruct = (t: 'query' | 'mutation' | 'subscription', tName: string, operationName?: string) => ( - o: Record, -) => `${t.toLowerCase()}${operationName ? ' ' + operationName : ''}${inspectVariables(buildQuery(tName, o))}`; - -export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription', tName: string) => ( - o: Record, - options?: OperationOptions, -) => - fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r: any) => { - seekForAliases(r); - return r; - }); - -export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => ( - t: 'query' | 'mutation' | 'subscription', - tName: string, -) => (o: Record, options?: OperationOptions) => fn(queryConstruct(t, tName, options?.operationName)(o)); - -const seekForAliases = (response: any) => { - const traverseAlias = (value: any) => { - if (Array.isArray(value)) { - value.forEach(seekForAliases); - } else { - if (typeof value === 'object') { - seekForAliases(value); - } - } - }; - if (typeof response === 'object' && response) { - const keys = Object.keys(response); - if (keys.length < 1) { - return; - } - keys.forEach((k) => { - const value = response[k]; - if (k.indexOf('__alias__') !== -1) { - const [operation, alias] = k.split('__alias__'); - response[alias] = { - [operation]: value, - }; - delete response[k]; - } - traverseAlias(value); - }); - } -}; - -export const $ = (t: TemplateStringsArray): any => `ZEUS_VAR$${t.join('')}`; - -export const resolverFor = ( - type: T, - field: Z, - fn: ( - args: Required[Z] extends [infer Input, any] ? Input : any, - source: any, - ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, -) => fn as (args?: any, source?: any) => any; +import { AllTypesProps, ReturnTypes, Ops } from './const'; +export const HOST = 'https://faker.graphqleditor.com/a-team/olympus/graphql'; const handleFetchResponse = ( response: Parameters['then']>[0], Function>>[0], @@ -689,9 +79,6 @@ export const apiSubscription = (options: chainOptions) => (query: string) => { if (event.data) { const parsed = JSON.parse(event.data); const data = parsed.data; - if (data) { - seekForAliases(data); - } return e(data); } }; @@ -705,51 +92,658 @@ export const apiSubscription = (options: chainOptions) => (query: string) => { open: (e: () => void) => { ws.onopen = e; }, - }; - } catch { - throw new Error('No websockets implemented. Please install ws'); - } + }; + } catch { + throw new Error('No websockets implemented. Please install ws'); + } +}; + +export const InternalsBuildQuery = ( + props: AllTypesPropsType, + returns: ReturnTypesType, + ops: Operations, + options?: OperationOptions, +) => { + const ibb = (k: string, o: InputValueType | VType, p = '', root = true): string => { + const keyForPath = purifyGraphQLKey(k); + const newPath = [p, keyForPath].join(SEPARATOR); + if (!o) { + return ''; + } + if (typeof o === 'boolean') { + return k; + } + if (Array.isArray(o)) { + return `${ibb( + `${k}(${InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath)})`, + o[1], + p, + false, + )}`; + } + if (k === '__alias') { + const alias = Object.keys(o)[0]; + const objectUnderAlias = o[alias]; + if (typeof objectUnderAlias !== 'object' || Array.isArray(objectUnderAlias)) { + throw new Error('Invalid alias it should be __alias:{ YOUR_ALIAS_NAME: { OPERATION_NAME: { ...selectors }}}'); + } + const operationName = Object.keys(objectUnderAlias)[0]; + const operation = objectUnderAlias[operationName]; + return ibb(`${alias}:${operationName}`, operation, p, false); + } + const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; + const hasVariables = root && options?.variables?.$params ? `(${options.variables?.$params})` : ''; + + return `${k}${hasOperationName}${hasVariables}{${Object.entries(o) + .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join(SEPARATOR), false)) + .join('\n')}}`; + }; + return ibb; +}; + +export const Thunder = (fn: FetchFunction) => < + O extends keyof typeof Ops, + R extends keyof ValueTypes = GenericOperation +>( + operation: O, +) => (o: Z | ValueTypes[R], ops?: OperationOptions) => + fullChainConstruct(fn)(operation)(o as any, ops) as Promise>; + +export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); + +export const SubscriptionThunder = (fn: SubscriptionFunction) => < + O extends keyof typeof Ops, + R extends keyof ValueTypes = GenericOperation +>( + operation: O, +) => (o: Z | ValueTypes[R], ops?: OperationOptions) => + fullSubscriptionConstruct(fn)(operation)(o as any, ops) as SubscriptionToGraphQL; + +export const Subscription = (...options: chainOptions) => SubscriptionThunder(apiSubscription(options)); +export const Zeus = < + Z extends ValueTypes[R], + O extends keyof typeof Ops, + R extends keyof ValueTypes = GenericOperation +>( + operation: O, + o: Z | ValueTypes[R], + ops?: OperationOptions, +) => InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, ops)(operation, o as any); +export const Selector = (key: T) => ZeusSelect(); + +export const Gql = Chain(HOST); + +export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription') => ( + o: Record, + options?: OperationOptions, +) => { + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, options); + return fn(builder(t, o), options?.variables?.values); +}; + +export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => (t: 'query' | 'mutation' | 'subscription') => ( + o: Record, + options?: OperationOptions, +) => { + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, options); + return fn(builder(t, o)); +}; + +export type AllTypesPropsType = { + [x: string]: + | undefined + | boolean + | { + [x: string]: + | undefined + | string + | { + [x: string]: string | undefined; + }; + }; +}; + +export type ReturnTypesType = { + [x: string]: + | { + [x: string]: string | undefined; + } + | undefined; +}; +export type InputValueType = { + [x: string]: undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; +}; +export type VType = undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; + +export type PlainType = boolean | number | string | null | undefined; +export type ZeusArgsType = + | PlainType + | { + [x: string]: ZeusArgsType; + } + | Array; + +export type Operations = Record; + +export type VariableDefinition = { + [x: string]: unknown; +}; + +export const SEPARATOR = '|'; + +export type fetchOptions = Parameters; +type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; +export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; +export type FetchFunction = (query: string, variables?: Record) => Promise; +export type SubscriptionFunction = (query: string) => any; +type NotUndefined = T extends undefined ? never : T; +export type ResolverType = NotUndefined; + +export type OperationOptions = { + variables?: VariableInput; + operationName?: string; +}; +export interface GraphQLResponse { + data?: Record; + errors?: Array<{ + message: string; + }>; +} +export class GraphQLError extends Error { + constructor(public response: GraphQLResponse) { + super(''); + console.error(response); + } + toString() { + return 'GraphQL Response Error'; + } +} +export type GenericOperation = O extends keyof typeof Ops ? typeof Ops[O] : never; + +export const purifyGraphQLKey = (k: string) => k.replace(/\([^)]*\)/g, '').replace(/^[^:]*\:/g, ''); + +const mapPart = (p: string) => { + const [isArg, isField] = p.split('<>'); + if (isField) { + return { + v: isField, + __type: 'field', + } as const; + } + return { + v: isArg, + __type: 'arg', + } as const; +}; + +type Part = ReturnType; + +export const ResolveFromPath = (props: AllTypesPropsType, returns: ReturnTypesType, ops: Operations) => { + const ResolvePropsType = (mappedParts: Part[]) => { + const oKey = ops[mappedParts[0].v]; + const propsP1 = oKey ? props[oKey] : props[mappedParts[0].v]; + if (typeof propsP1 === 'boolean' && mappedParts.length === 1) { + return 'enum'; + } + if (typeof propsP1 === 'object') { + const propsP2 = propsP1[mappedParts[1].v]; + if (typeof propsP2 === 'string') { + return rpp( + `${propsP2}${SEPARATOR}${mappedParts + .slice(2) + .map((mp) => mp.v) + .join(SEPARATOR)}`, + ); + } + if (typeof propsP2 === 'object') { + const propsP3 = propsP2[mappedParts[2].v]; + if (propsP3 && mappedParts[2].__type === 'arg') { + return rpp( + `${propsP3}${SEPARATOR}${mappedParts + .slice(3) + .map((mp) => mp.v) + .join(SEPARATOR)}`, + ); + } + } + } + }; + const ResolveReturnType = (mappedParts: Part[]) => { + const oKey = ops[mappedParts[0].v]; + const returnP1 = oKey ? returns[oKey] : returns[mappedParts[0].v]; + if (typeof returnP1 === 'object') { + const returnP2 = returnP1[mappedParts[1].v]; + if (returnP2) { + return rpp( + `${returnP2}${SEPARATOR}${mappedParts + .slice(2) + .map((mp) => mp.v) + .join(SEPARATOR)}`, + ); + } + } + }; + const rpp = (path: string): 'enum' | 'not' => { + const parts = path.split(SEPARATOR).filter((l) => l.length > 0); + const mappedParts = parts.map(mapPart); + const propsP1 = ResolvePropsType(mappedParts); + if (propsP1) { + return propsP1; + } + const returnP1 = ResolveReturnType(mappedParts); + if (returnP1) { + return returnP1; + } + return 'not'; + }; + return rpp; +}; + +export const InternalArgsBuilt = ( + props: AllTypesPropsType, + returns: ReturnTypesType, + ops: Operations, + variables?: Record, +) => { + const arb = (a: ZeusArgsType, p = '', root = true): string => { + if (Array.isArray(a)) { + return `[${a.map((arr) => arb(arr, p)).join(', ')}]`; + } + if (typeof a === 'string') { + if (a.startsWith('$') && variables?.[a.slice(1)]) { + return a; + } + const checkType = ResolveFromPath(props, returns, ops)(p); + if (checkType === 'enum') { + return a; + } + return `${JSON.stringify(a)}`; + } + if (typeof a === 'object') { + if (a === null) { + return `null`; + } + const returnedObjectString = Object.entries(a) + .filter(([, v]) => typeof v !== 'undefined') + .map(([k, v]) => `${k}: ${arb(v, [p, k].join(SEPARATOR), false)}`) + .join(',\n'); + if (!root) { + return `{${returnedObjectString}}`; + } + return returnedObjectString; + } + return `${a}`; + }; + return arb; +}; + +export const resolverFor = ( + type: T, + field: Z, + fn: ( + args: Required[Z] extends [infer Input, any] ? Input : any, + source: any, + ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, +) => fn as (args?: any, source?: any) => any; + +export type SelectionFunction = (t: T | V) => T; +export const ZeusSelect = () => ((t: unknown) => t) as SelectionFunction; + +export type UnwrapPromise = T extends Promise ? R : T; +export type ZeusState Promise> = NonNullable>>; +export type ZeusHook< + T extends (...args: any[]) => Record Promise>, + N extends keyof ReturnType +> = ZeusState[N]>; + +export type WithTypeNameValue = T & { + __typename?: boolean; +}; +export type AliasType = WithTypeNameValue & { + __alias?: Record>; +}; +type DeepAnify = { + [P in keyof T]?: any; +}; +type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; +type IsArray = T extends Array ? InputType[] : InputType; +type FlattenArray = T extends Array ? R : T; + +type IsInterfaced, DST> = FlattenArray extends ZEUS_INTERFACES | ZEUS_UNIONS + ? { + [P in keyof SRC]: SRC[P] extends '__union' & infer R + ? P extends keyof DST + ? IsArray + : Record + : never; + }[keyof DST] & + { + [P in keyof Omit< + Pick< + SRC, + { + [P in keyof DST]: SRC[P] extends '__union' & infer R ? never : P; + }[keyof DST] + >, + '__typename' + >]: IsPayLoad extends boolean ? SRC[P] : IsArray; + } + : { + [P in keyof Pick]: IsPayLoad extends boolean ? SRC[P] : IsArray; + }; + +export type MapType = SRC extends DeepAnify ? IsInterfaced : never; +export type InputType = IsPayLoad extends { __alias: infer R } + ? { + [P in keyof R]: MapType; + } & + MapType, '__alias'>> + : MapType>; +export type SubscriptionToGraphQL = { + ws: WebSocket; + on: (fn: (args: InputType) => void) => void; + off: (fn: (e: { data?: InputType; code?: number; reason?: string; message?: string }) => void) => void; + error: (fn: (e: { data?: InputType; errors?: string[] }) => void) => void; + open: () => void; +}; + +export const useZeusVariables = (variables: T) => < + Z extends { + [P in keyof T]: unknown; + } +>( + values: Z, +) => { + return { + $params: Object.keys(variables) + .map((k) => `$${k}: ${variables[k as keyof T]}`) + .join(', '), + $: (variable: U) => { + return (`$${variable}` as unknown) as Z[U]; + }, + values, + }; +}; + +export type VariableInput = { + $params: ReturnType>['$params']; + values: Record; +}; + +export const VariableParameters = (variables: T) => ( + values: { + // eslint-disable-next-line prettier/prettier + [P in keyof T]: string; + }, +) => { + return Object.keys(variables) + .map((k) => `${k}: ${values[k as keyof T]}`) + .join(', '); +}; + +type ZEUS_INTERFACES = GraphQLTypes['Nameable']; +type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; + +export type ValueTypes = { + /** create card inputs
*/ + ['createCard']: { + /**

How many children the greek god had
*/ + Children?: number | undefined | null; + /** The attack power
*/ + Attack: number; + /** The defense power
*/ + Defense: number; + /** input skills */ + skills?: ValueTypes['SpecialSkills'][]; + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + }; + ['EffectCard']: AliasType<{ + effectSize?: boolean; + name?: boolean; + __typename?: boolean; + }>; + ['Mutation']: AliasType<{ + addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; + __typename?: boolean; + }>; + ['SpecialCard']: AliasType<{ + effect?: boolean; + name?: boolean; + __typename?: boolean; + }>; + ['SpecialSkills']: SpecialSkills; + /** Aws S3 File */ + ['S3Object']: AliasType<{ + bucket?: boolean; + key?: boolean; + region?: boolean; + __typename?: boolean; + }>; + ['Subscription']: AliasType<{ + deck?: ValueTypes['Card']; + __typename?: boolean; + }>; + ['Query']: AliasType<{ + cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; + /** Draw a card
*/ + drawCard?: ValueTypes['Card']; + drawChangeCard?: ValueTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards?: ValueTypes['Card']; + myStacks?: ValueTypes['CardStack']; + nameables?: ValueTypes['Nameable']; + __typename?: boolean; + }>; + ['Nameable']: AliasType<{ + name?: boolean; + ['...on EffectCard']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on CardStack']?: Omit; + ['...on Card']?: Omit; + __typename?: boolean; + }>; + ['ChangeCard']: AliasType<{ + ['...on SpecialCard']: ValueTypes['SpecialCard']; + ['...on EffectCard']: ValueTypes['EffectCard']; + __typename?: boolean; + }>; + /** Stack of cards */ + ['CardStack']: AliasType<{ + cards?: ValueTypes['Card']; + name?: boolean; + __typename?: boolean; + }>; + /** Card used in card game
*/ + ['Card']: AliasType<{ + /** The attack power
*/ + Attack?: boolean; + /**
How many children the greek god had
*/ + Children?: boolean; + /** The defense power
*/ + Defense?: boolean; + attack?: [ + { + /** Attacked card/card ids
*/ cardID: string[] | undefined | null; + }, + ValueTypes['Card'], + ]; + /** Put your description here */ + cardImage?: ValueTypes['S3Object']; + /** Description of a card
*/ + description?: boolean; + id?: boolean; + image?: boolean; + /** The name of a card
*/ + name?: boolean; + skills?: boolean; + __typename?: boolean; + }>; }; -const allOperations = { - query: 'Query', - mutation: 'Mutation', - subscription: 'Subscription', +export type ModelTypes = { + /** create card inputs
*/ + ['createCard']: GraphQLTypes['createCard']; + ['EffectCard']: { + effectSize: number; + name: string; + }; + ['Mutation']: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes['Card']; + }; + ['SpecialCard']: { + effect: string; + name: string; + }; + ['SpecialSkills']: GraphQLTypes['SpecialSkills']; + /** Aws S3 File */ + ['S3Object']: { + bucket: string; + key: string; + region: string; + }; + ['Subscription']: { + deck?: Array | undefined; + }; + ['Query']: { + cardById?: GraphQLTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: GraphQLTypes['Card']; + drawChangeCard: GraphQLTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array; + myStacks?: Array | undefined; + nameables: Array; + }; + ['Nameable']: ModelTypes['EffectCard'] | ModelTypes['SpecialCard'] | ModelTypes['CardStack'] | ModelTypes['Card']; + ['ChangeCard']: ModelTypes['SpecialCard'] | ModelTypes['EffectCard']; + /** Stack of cards */ + ['CardStack']: { + cards?: Array | undefined; + name: string; + }; + /** Card used in card game
*/ + ['Card']: { + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined; + /** Put your description here */ + cardImage?: GraphQLTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array | undefined; + }; }; -export type GenericOperation = O extends 'query' ? 'Query' : O extends 'mutation' ? 'Mutation' : 'Subscription'; - -export const Thunder = (fn: FetchFunction) => < - O extends 'query' | 'mutation' | 'subscription', - R extends keyof ValueTypes = GenericOperation ->( - operation: O, -) => (o: Z | ValueTypes[R], ops?: OperationOptions) => - fullChainConstruct(fn)(operation, allOperations[operation])(o as any, ops) as Promise>; - -export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); - -export const SubscriptionThunder = (fn: SubscriptionFunction) => < - O extends 'query' | 'mutation' | 'subscription', - R extends keyof ValueTypes = GenericOperation ->( - operation: O, -) => (o: Z | ValueTypes[R], ops?: OperationOptions) => - fullSubscriptionConstruct(fn)(operation, allOperations[operation])(o as any, ops) as SubscriptionToGraphQL< - Z, - GraphQLTypes[R] - >; - -export const Subscription = (...options: chainOptions) => SubscriptionThunder(apiSubscription(options)); -export const Zeus = < - Z extends ValueTypes[R], - O extends 'query' | 'mutation' | 'subscription', - R extends keyof ValueTypes = GenericOperation ->( - operation: O, - o: Z | ValueTypes[R], - operationName?: string, -) => queryConstruct(operation, allOperations[operation], operationName)(o as any); -export const Selector = (key: T) => ZeusSelect(); - -export const Gql = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql'); +export type GraphQLTypes = { + /** create card inputs
*/ + ['createCard']: { + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The attack power
*/ + Attack: number; + /** The defense power
*/ + Defense: number; + /** input skills */ + skills?: Array | undefined; + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + }; + ['EffectCard']: { + __typename: 'EffectCard'; + effectSize: number; + name: string; + }; + ['Mutation']: { + __typename: 'Mutation'; + /** add Card to Cards database
*/ + addCard: GraphQLTypes['Card']; + }; + ['SpecialCard']: { + __typename: 'SpecialCard'; + effect: string; + name: string; + }; + ['SpecialSkills']: SpecialSkills; + /** Aws S3 File */ + ['S3Object']: { + __typename: 'S3Object'; + bucket: string; + key: string; + region: string; + }; + ['Subscription']: { + __typename: 'Subscription'; + deck?: Array | undefined; + }; + ['Query']: { + __typename: 'Query'; + cardById?: GraphQLTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: GraphQLTypes['Card']; + drawChangeCard: GraphQLTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array; + myStacks?: Array | undefined; + nameables: Array; + }; + ['Nameable']: { + __typename: 'EffectCard' | 'SpecialCard' | 'CardStack' | 'Card'; + name: string; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on CardStack']: '__union' & GraphQLTypes['CardStack']; + ['...on Card']: '__union' & GraphQLTypes['Card']; + }; + ['ChangeCard']: { + __typename: 'SpecialCard' | 'EffectCard'; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + }; + /** Stack of cards */ + ['CardStack']: { + __typename: 'CardStack'; + cards?: Array | undefined; + name: string; + }; + /** Card used in card game
*/ + ['Card']: { + __typename: 'Card'; + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined; + /** Put your description here */ + cardImage?: GraphQLTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array | undefined; + }; +}; +export const enum SpecialSkills { + THUNDER = 'THUNDER', + RAIN = 'RAIN', + FIRE = 'FIRE', +} diff --git a/examples/typescript-node/src/zeus/newIndex.ts b/examples/typescript-node/src/zeus/newIndex.ts deleted file mode 100644 index 3bbef334..00000000 --- a/examples/typescript-node/src/zeus/newIndex.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { AllTypesProps } from './const'; - -export const ScalarResolver = (scalar: string, value: string) => { - switch (scalar) { - case 'String': - return `${JSON.stringify(value)}`; - case 'Int': - return `${value}`; - case 'Float': - return `${value}`; - case 'Boolean': - return `${value}`; - case 'ID': - return `"${value}"`; - case 'enum': - return `${value}`; - case 'scalar': - return `${value}`; - default: - return false; - } -}; - -export const extractType = (t: string) => { - const chars = t.split(''); -}; -export const TypesPropsResolver = ({ - value, - type, - name, - key, - blockArrays, -}: { - value: any; - type: string; - name: string; - key?: string; - blockArrays?: boolean; -}): string => { - if (value === null) { - return `null`; - } - let resolvedValue: Record | string = AllTypesProps[type][name]; - if (key && typeof resolvedValue === 'object') { - resolvedValue = resolvedValue[key as keyof typeof resolvedValue]; - } - if (!resolvedValue) { - throw new Error(`Cannot resolve ${type} ${name}${key ? ` ${key}` : ''}`); - } - // resolvedValue moze byc np [SpecialSkills!] - const typeResolved = resolvedValue.type; - const isArray = resolvedValue.array; - const isArrayRequired = resolvedValue.arrayRequired; - if (typeof value === 'string' && value.startsWith(`ZEUS_VAR$`)) { - const isRequired = resolvedValue.required ? '!' : ''; - let t = `${typeResolved}`; - if (isArray) { - if (isRequired) { - t = `${t}!`; - } - t = `[${t}]`; - if (isArrayRequired) { - t = `${t}!`; - } - } else { - if (isRequired) { - t = `${t}!`; - } - } - return `\$${value.split(`ZEUS_VAR$`)[1]}__ZEUS_VAR__${t}`; - } - if (isArray && !blockArrays) { - return `[${value.map((v: any) => TypesPropsResolver({ value: v, type, name, key, blockArrays: true })).join(',')}]`; - } - const reslovedScalar = ScalarResolver(typeResolved, value); - if (!reslovedScalar) { - const resolvedType = AllTypesProps[typeResolved]; - if (typeof resolvedType === 'object') { - const argsKeys = Object.keys(resolvedType); - return `{${argsKeys - .filter((ak) => value[ak] !== undefined) - .map((ak) => `${ak}:${TypesPropsResolver({ value: value[ak], type: typeResolved, name: ak })}`)}}`; - } - return ScalarResolver(AllTypesProps[typeResolved], value) as string; - } - return reslovedScalar; -}; - -export const getTypeName = (f: FieldType): string => { - if (f.type === Options.name) { - return f.name; - } - return getTypeName(f.nest); -}; - -export const compileType = (f: FieldType, fn: (x: string) => string = (x) => x): string => { - if (f.type === Options.name) { - return fn(f.name); - } else if (f.type === Options.array) { - return compileType(f.nest, (x) => `[${fn(x)}]`); - } else { - return compileType(f.nest, (x) => `${fn(x)}!`); - } -}; - -export type FieldType = - | { type: Options.name; name: string } - | { type: Options.required; nest: FieldType } - | { type: Options.array; nest: FieldType }; - -export enum Options { - array = 'array', - required = 'required', - name = 'name', -} diff --git a/examples/typescript-node/src/zeus/stuccoSubscriptions.ts b/examples/typescript-node/src/zeus/stuccoSubscriptions.ts index 14a4f226..1f2115a6 100644 --- a/examples/typescript-node/src/zeus/stuccoSubscriptions.ts +++ b/examples/typescript-node/src/zeus/stuccoSubscriptions.ts @@ -38,4 +38,4 @@ export const stuccoSubscriptions = ( }); }, }; - })('subscription', 'Subscription')(o as any, ops) as SubscriptionToGraphQL; + })('subscription')(o as any, ops) as SubscriptionToGraphQL; diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 755e0794..3e42de8b 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,23 +1,8 @@ -"""""" -enum SpecialSkills { - """Lower enemy defense -5
""" - THUNDER - - """Attack multiple Cards at once
""" - RAIN - - """50% chance to avoid any attack
""" - FIRE -} - -"""""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! -} - """create card inputs
""" input createCard { + """
How many children the greek god had
""" + Children: Int + """The attack power
""" Attack: Int! @@ -32,51 +17,42 @@ input createCard { """Description of a card
""" description: String! - - """
How many children the greek god had
""" - Children: Int } """""" -type Subscription { +type EffectCard implements Nameable { """""" - deck: [Card!] -} - -"""Card used in card game
""" -type Card implements Nameable { - """The attack power
""" - Attack: Int! - - """
How many children the greek god had
""" - Children: Int - - """The defense power
""" - Defense: Int! - - """Attack other cards on the table , returns Cards after attack
""" - attack( - """Attacked card/card ids
""" - cardID: [String!]! - ): [Card!] + effectSize: Float! - """Put your description here""" - cardImage: S3Object + """""" + name: String! +} - """Description of a card
""" - description: String! +"""""" +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! +} +"""""" +type SpecialCard implements Nameable { """""" - id: ID! + effect: String! """""" - image: String! - - """The name of a card
""" name: String! +} - """""" - skills: [SpecialSkills!] +"""""" +enum SpecialSkills { + """Lower enemy defense -5
""" + THUNDER + + """Attack multiple Cards at once
""" + RAIN + + """50% chance to avoid any attack
""" + FIRE } """Aws S3 File""" @@ -92,24 +68,9 @@ type S3Object { } """""" -type SpecialCard implements Nameable { - """""" - effect: String! - - """""" - name: String! -} - -"""""" -union ChangeCard = SpecialCard | EffectCard - -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - +type Subscription { """""" - name: String! + deck: [Card!] } """""" @@ -140,12 +101,51 @@ interface Nameable { } """""" -type EffectCard implements Nameable { +union ChangeCard = SpecialCard | EffectCard + +"""Stack of cards""" +type CardStack implements Nameable { """""" - effectSize: Float! + cards: [Card!] + + """""" + name: String! +} + +"""Card used in card game
""" +type Card implements Nameable { + """The attack power
""" + Attack: Int! + + """
How many children the greek god had
""" + Children: Int + + """The defense power
""" + Defense: Int! + + """Attack other cards on the table , returns Cards after attack
""" + attack( + """Attacked card/card ids
""" + cardID: [String!]! + ): [Card!] + + """Put your description here""" + cardImage: S3Object + + """Description of a card
""" + description: String! """""" + id: ID! + + """""" + image: String! + + """The name of a card
""" name: String! + + """""" + skills: [SpecialSkills!] } schema{ diff --git a/package.json b/package.json index 8f16319f..eea02583 100644 --- a/package.json +++ b/package.json @@ -17,11 +17,10 @@ "cli": "node ./lib/CLI/index.js", "examples-generate": "npm run generate-typescript-node && npm run generate-typescript-node-big", "generate-typescript-node": "node ./lib/CLI/index.js https://faker.graphqleditor.com/a-team/olympus/graphql examples/typescript-node/src --ts --n -g examples/typescript-node/zeus.graphql --apollo --reactQuery --stuccoSubscriptions", - "generate-typescript-node-big": "node ./lib/CLI/index.js examples/typescript-node-big-schema/x.gql examples/typescript-node-big-schema/src --ts --n --apollo --reactQuery --stuccoSubscriptions", "run-example-typescript-node": "./run-example.sh examples/typescript-node", "lint": "ttsc && eslint \"./src/**/*.{ts,js}\" --quiet --fix", "doc:ci": "cd doc && npm i && npm run build", - "produce-lib": "ts-node src/CLI/libBuilder.ts" + "produce-lib": "ts-node src/CLI/libBuilder.ts && eslint src/TreeToTS/functions/generated.ts --quiet --fix" }, "repository": { "type": "git", diff --git a/src/CLI/libBuilder.ts b/src/CLI/libBuilder.ts index e08b7b21..02c31c38 100644 --- a/src/CLI/libBuilder.ts +++ b/src/CLI/libBuilder.ts @@ -2,6 +2,9 @@ import * as fs from 'fs'; import path = require('path'); +const toTemplateString = (s: string) => '`' + s.replace(/\$\{/gm, '\\${').replace(/`/gm, '\\`') + '`'; +const toExport = (s: string) => `export default ${s};`; + const bundleFunctions = () => { const baseDirFunctions = path.join(process.cwd(), 'src/TreeToTS/functions'); const baseDir = path.join(baseDirFunctions, 'new'); @@ -12,13 +15,16 @@ const bundleFunctions = () => { .map((d) => path.join(baseDir, d)) .map((d) => { const content = fs.readFileSync(d); - return content - .toString('utf-8') - .replace(/import.*$/gm, '') - .replace(/export\s/gm, ''); + return ( + content + .toString('utf-8') + .replace(/import\s(\n|\w|{|}|\s|,)*.*;/gm, '') + // .replace(/export\s/gm, '') + .replace(/\\/gm, '\\\\') + ); }); - const content = allFunctions.join('\n\n'); - fs.writeFileSync(path.join(baseDirFunctions, 'generated.ts'), content); + const content = toTemplateString(allFunctions.join('\n\n')); + fs.writeFileSync(path.join(baseDirFunctions, 'generated.ts'), toExport(content)); }; bundleFunctions(); diff --git a/src/TreeToTS/functions/ZeusSelect.ts b/src/TreeToTS/functions/ZeusSelect.ts deleted file mode 100644 index 6b0fe5dc..00000000 --- a/src/TreeToTS/functions/ZeusSelect.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { StringFunction } from './models'; - -export const ZeusSelectFunction: StringFunction = { - ts: `export const ZeusSelect = () => ((t: any) => t) as SelectionFunction;`, -}; diff --git a/src/TreeToTS/functions/fullChainConstruct.ts b/src/TreeToTS/functions/fullChainConstruct.ts deleted file mode 100644 index 5f5c0e12..00000000 --- a/src/TreeToTS/functions/fullChainConstruct.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { StringFunction } from './models'; - -export const fullChainConstructFunction: StringFunction = { - ts: ` -export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription', tName: string) => ( - o: Record, - options?: OperationOptions, -) => fn(queryConstruct(t, tName, options?.operationName)(o), options?.variables).then((r:any) => { - seekForAliases(r) - return r -}); -`, -}; diff --git a/src/TreeToTS/functions/fullSubscriptionConstruct.ts b/src/TreeToTS/functions/fullSubscriptionConstruct.ts deleted file mode 100644 index 3dc8a8d4..00000000 --- a/src/TreeToTS/functions/fullSubscriptionConstruct.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { StringFunction } from './models'; - -export const fullSubscriptionConstruct: StringFunction = { - ts: ` -export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => ( - t: 'query' | 'mutation' | 'subscription', - tName: string, -) => (o: Record, options?: OperationOptions) => - fn(queryConstruct(t, tName, options?.operationName)(o)); -`, -}; diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts new file mode 100644 index 00000000..fce7fa8f --- /dev/null +++ b/src/TreeToTS/functions/generated.ts @@ -0,0 +1,423 @@ +export default ` + + + +export const InternalsBuildQuery = ( + props: AllTypesPropsType, + returns: ReturnTypesType, + ops: Operations, + options?: OperationOptions, +) => { + const ibb = (k: string, o: InputValueType | VType, p = '', root = true): string => { + const keyForPath = purifyGraphQLKey(k); + const newPath = [p, keyForPath].join(SEPARATOR); + if (!o) { + return ''; + } + if (typeof o === 'boolean') { + return k; + } + if (Array.isArray(o)) { + return \`\${ibb( + \`\${k}(\${InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath)})\`, + o[1], + p, + false, + )}\`; + } + if (k === '__alias') { + const alias = Object.keys(o)[0]; + const objectUnderAlias = o[alias]; + if (typeof objectUnderAlias !== 'object' || Array.isArray(objectUnderAlias)) { + throw new Error('Invalid alias it should be __alias:{ YOUR_ALIAS_NAME: { OPERATION_NAME: { ...selectors }}}'); + } + const operationName = Object.keys(objectUnderAlias)[0]; + const operation = objectUnderAlias[operationName]; + return ibb(\`\${alias}:\${operationName}\`, operation, p, false); + } + const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; + const hasVariables = root && options?.variables?.$params ? \`(\${options.variables?.$params})\` : ''; + + return \`\${k}\${hasOperationName}\${hasVariables}{\${Object.entries(o) + .map((e) => ibb(...e, [p, \`field<>\${keyForPath}\`].join(SEPARATOR), false)) + .join('\\n')}}\`; + }; + return ibb; +}; + + + + + + + + + + +export const Thunder = (fn: FetchFunction) => < + O extends keyof typeof Ops, + R extends keyof ValueTypes = GenericOperation +>( + operation: O, +) => (o: Z | ValueTypes[R], ops?: OperationOptions) => + fullChainConstruct(fn)(operation)(o as any, ops) as Promise>; + +export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); + +export const SubscriptionThunder = (fn: SubscriptionFunction) => < + O extends keyof typeof Ops, + R extends keyof ValueTypes = GenericOperation +>( + operation: O, +) => (o: Z | ValueTypes[R], ops?: OperationOptions) => + fullSubscriptionConstruct(fn)(operation)(o as any, ops) as SubscriptionToGraphQL; + +export const Subscription = (...options: chainOptions) => SubscriptionThunder(apiSubscription(options)); +export const Zeus = < + Z extends ValueTypes[R], + O extends keyof typeof Ops, + R extends keyof ValueTypes = GenericOperation +>( + operation: O, + o: Z | ValueTypes[R], + ops?: OperationOptions, +) => InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, ops)(operation, o as any); +export const Selector = (key: T) => ZeusSelect(); + +export const Gql = Chain(HOST); + + + + + + +export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription') => ( + o: Record, + options?: OperationOptions, +) => { + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, options); + return fn(builder(t, o), options?.variables?.values); +}; + + + + + + +export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => (t: 'query' | 'mutation' | 'subscription') => ( + o: Record, + options?: OperationOptions, +) => { + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, options); + return fn(builder(t, o)); +}; + + + + + +export type AllTypesPropsType = { + [x: string]: + | undefined + | boolean + | { + [x: string]: + | undefined + | string + | { + [x: string]: string | undefined; + }; + }; +}; + +export type ReturnTypesType = { + [x: string]: + | { + [x: string]: string | undefined; + } + | undefined; +}; +export type InputValueType = { + [x: string]: undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; +}; +export type VType = undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; + +export type PlainType = boolean | number | string | null | undefined; +export type ZeusArgsType = + | PlainType + | { + [x: string]: ZeusArgsType; + } + | Array; + +export type Operations = Record; + +export type VariableDefinition = { + [x: string]: unknown; +}; + +export const SEPARATOR = '|'; + +export type fetchOptions = Parameters; +type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; +export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; +export type FetchFunction = (query: string, variables?: Record) => Promise; +export type SubscriptionFunction = (query: string) => any; +type NotUndefined = T extends undefined ? never : T; +export type ResolverType = NotUndefined; + +export type OperationOptions = { + variables?: VariableInput; + operationName?: string; +}; +export interface GraphQLResponse { + data?: Record; + errors?: Array<{ + message: string; + }>; +} +export class GraphQLError extends Error { + constructor(public response: GraphQLResponse) { + super(''); + console.error(response); + } + toString() { + return 'GraphQL Response Error'; + } +} +export type GenericOperation = O extends keyof typeof Ops ? typeof Ops[O] : never; + + +export const purifyGraphQLKey = (k: string) => k.replace(/\\([^)]*\\)/g, '').replace(/^[^:]*\\:/g, ''); + + + + +const mapPart = (p: string) => { + const [isArg, isField] = p.split('<>'); + if (isField) { + return { + v: isField, + __type: 'field', + } as const; + } + return { + v: isArg, + __type: 'arg', + } as const; +}; + +type Part = ReturnType; + +export const ResolveFromPath = (props: AllTypesPropsType, returns: ReturnTypesType, ops: Operations) => { + const ResolvePropsType = (mappedParts: Part[]) => { + const oKey = ops[mappedParts[0].v]; + const propsP1 = oKey ? props[oKey] : props[mappedParts[0].v]; + if (typeof propsP1 === 'boolean' && mappedParts.length === 1) { + return 'enum'; + } + if (typeof propsP1 === 'object') { + const propsP2 = propsP1[mappedParts[1].v]; + if (typeof propsP2 === 'string') { + return rpp( + \`\${propsP2}\${SEPARATOR}\${mappedParts + .slice(2) + .map((mp) => mp.v) + .join(SEPARATOR)}\`, + ); + } + if (typeof propsP2 === 'object') { + const propsP3 = propsP2[mappedParts[2].v]; + if (propsP3 && mappedParts[2].__type === 'arg') { + return rpp( + \`\${propsP3}\${SEPARATOR}\${mappedParts + .slice(3) + .map((mp) => mp.v) + .join(SEPARATOR)}\`, + ); + } + } + } + }; + const ResolveReturnType = (mappedParts: Part[]) => { + const oKey = ops[mappedParts[0].v]; + const returnP1 = oKey ? returns[oKey] : returns[mappedParts[0].v]; + if (typeof returnP1 === 'object') { + const returnP2 = returnP1[mappedParts[1].v]; + if (returnP2) { + return rpp( + \`\${returnP2}\${SEPARATOR}\${mappedParts + .slice(2) + .map((mp) => mp.v) + .join(SEPARATOR)}\`, + ); + } + } + }; + const rpp = (path: string): 'enum' | 'not' => { + const parts = path.split(SEPARATOR).filter((l) => l.length > 0); + const mappedParts = parts.map(mapPart); + const propsP1 = ResolvePropsType(mappedParts); + if (propsP1) { + return propsP1; + } + const returnP1 = ResolveReturnType(mappedParts); + if (returnP1) { + return returnP1; + } + return 'not'; + }; + return rpp; +}; + +export const InternalArgsBuilt = ( + props: AllTypesPropsType, + returns: ReturnTypesType, + ops: Operations, + variables?: Record, +) => { + const arb = (a: ZeusArgsType, p = '', root = true): string => { + if (Array.isArray(a)) { + return \`[\${a.map((arr) => arb(arr, p)).join(', ')}]\`; + } + if (typeof a === 'string') { + if (a.startsWith('$') && variables?.[a.slice(1)]) { + return a; + } + const checkType = ResolveFromPath(props, returns, ops)(p); + if (checkType === 'enum') { + return a; + } + return \`\${JSON.stringify(a)}\`; + } + if (typeof a === 'object') { + if (a === null) { + return \`null\`; + } + const returnedObjectString = Object.entries(a) + .filter(([, v]) => typeof v !== 'undefined') + .map(([k, v]) => \`\${k}: \${arb(v, [p, k].join(SEPARATOR), false)}\`) + .join(',\\n'); + if (!root) { + return \`{\${returnedObjectString}}\`; + } + return returnedObjectString; + } + return \`\${a}\`; + }; + return arb; +}; + + + + +export const resolverFor = ( + type: T, + field: Z, + fn: ( + args: Required[Z] extends [infer Input, any] ? Input : any, + source: any, + ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, +) => fn as (args?: any, source?: any) => any; + + +export type SelectionFunction = (t: T | V) => T; +export const ZeusSelect = () => ((t: unknown) => t) as SelectionFunction; + + + + +export type UnwrapPromise = T extends Promise ? R : T; +export type ZeusState Promise> = NonNullable>>; +export type ZeusHook< + T extends (...args: any[]) => Record Promise>, + N extends keyof ReturnType +> = ZeusState[N]>; + +export type WithTypeNameValue = T & { + __typename?: boolean; +}; +export type AliasType = WithTypeNameValue & { + __alias?: Record>; +}; +type DeepAnify = { + [P in keyof T]?: any; +}; +type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; +type IsArray = T extends Array ? InputType[] : InputType; +type FlattenArray = T extends Array ? R : T; + +type IsInterfaced, DST> = FlattenArray extends ZEUS_INTERFACES | ZEUS_UNIONS + ? { + [P in keyof SRC]: SRC[P] extends '__union' & infer R + ? P extends keyof DST + ? IsArray + : {} + : never; + }[keyof DST] & + { + [P in keyof Omit< + Pick< + SRC, + { + [P in keyof DST]: SRC[P] extends '__union' & infer R ? never : P; + }[keyof DST] + >, + '__typename' + >]: IsPayLoad extends boolean ? SRC[P] : IsArray; + } + : { + [P in keyof Pick]: IsPayLoad extends boolean ? SRC[P] : IsArray; + }; + +export type MapType = SRC extends DeepAnify ? IsInterfaced : never; +export type InputType = IsPayLoad extends { __alias: infer R } + ? { + [P in keyof R]: MapType; + } & + MapType, '__alias'>> + : MapType>; +export type SubscriptionToGraphQL = { + ws: WebSocket; + on: (fn: (args: InputType) => void) => void; + off: (fn: (e: { data?: InputType; code?: number; reason?: string; message?: string }) => void) => void; + error: (fn: (e: { data?: InputType; errors?: string[] }) => void) => void; + open: () => void; +}; + + +export const useZeusVariables = (variables: T) => < + Z extends { + [P in keyof T]: unknown; + } +>( + values: Z, +) => { + return { + $params: Object.keys(variables) + .map((k) => \`$\${k}: \${variables[k as keyof T]}\`) + .join(', '), + $: (variable: U) => { + return (\`$\${variable}\` as unknown) as Z[U]; + }, + values, + }; +}; + +export type VariableInput = { + $params: ReturnType>['$params']; + values: Record; +}; + + +export const VariableParameters = (variables: T) => ( + values: { + // eslint-disable-next-line prettier/prettier + [P in keyof T]: string; + }, +) => { + return Object.keys(variables) + .map((k) => \`\${k}: \${values[k as keyof T]}\`) + .join(', '); +}; +`; diff --git a/src/TreeToTS/functions/index.ts b/src/TreeToTS/functions/index.ts deleted file mode 100644 index 693fc15f..00000000 --- a/src/TreeToTS/functions/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './ZeusSelect'; -export * from './fullChainConstruct'; -export * from './fullSubscriptionConstruct'; -export * from './models'; -export * from './resolverFor'; diff --git a/src/TreeToTS/functions/models.ts b/src/TreeToTS/functions/models.ts deleted file mode 100644 index faf590da..00000000 --- a/src/TreeToTS/functions/models.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface StringFunction { - ts: string; -} diff --git a/src/TreeToTS/functions/new/buildQuery.spec.ts b/src/TreeToTS/functions/new/buildQuery.spec.ts index 146c77fa..7c271001 100644 --- a/src/TreeToTS/functions/new/buildQuery.spec.ts +++ b/src/TreeToTS/functions/new/buildQuery.spec.ts @@ -1,5 +1,6 @@ import { InternalsBuildQuery } from '@/TreeToTS/functions/new/buildQuery'; import { AllTypesProps, Ops, ReturnTypes } from '@/TreeToTS/functions/new/mocks'; +import { useZeusVariables } from '@/TreeToTS/functions/new/useZeusVariables'; import { replSpace } from '@/__tests__/TestUtils'; const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops); @@ -23,6 +24,25 @@ describe('Test generated function buildQuery', () => { } }`); }); + test('Simple query with operation name', () => { + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, { operationName: 'MyQuery' }); + const matchExact = replSpace( + builder('query', { + cards: { + name: true, + age: true, + bio: true, + }, + }), + ); + matchExact(`query MyQuery{ + cards{ + name + age + bio + } + }`); + }); test('Query with arguments', () => { const matchExact = replSpace( builder('query', { @@ -49,6 +69,39 @@ describe('Test generated function buildQuery', () => { } }`); }); + test('Query with arguments and variables', () => { + const variables = useZeusVariables({ id: 'String!' })({ + id: 'a1', + }); + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, { + variables, + }); + const { $ } = variables; + const matchExact = replSpace( + builder('query', { + cardById: [ + { + id: $('id'), + name: 'blabla', + age: 123, + me: true, + }, + { + name: true, + age: true, + bio: true, + }, + ], + }), + ); + matchExact(`query($id: String!){ + cardById(id: $id, name: "blabla", age: 123, me: true){ + name + age + bio + } + }`); + }); test('Mutation with arguments', () => { const enum Status { CREATED = 'CREATED', @@ -78,6 +131,72 @@ describe('Test generated function buildQuery', () => { } }`); }); + test('Mutation with complicated string', () => { + const complicated = 'lorem """ \' ipsum \n lorem ipsum'; + const matchExact = replSpace( + builder('mutation', { + createCard: [ + { + card: { + name: complicated, + }, + }, + { + name: true, + }, + ], + }), + ); + matchExact(`mutation{ + createCard(card:{ + name: ${JSON.stringify(complicated)} + }){ + name + } + }`); + }); + test('Undefined param', () => { + const Children = undefined; + const matchExact = replSpace( + builder('mutation', { + addCard: [ + { + card: { + Attack: 1, + Children, + }, + }, + { + id: true, + }, + ], + }), + ); + matchExact(`mutation { + addCard(card: {Attack:1}){id} + }`); + }); + test('Undefined getter', () => { + const Children: boolean | undefined = undefined; + const matchExact = replSpace( + builder('mutation', { + addCard: [ + { + card: { + Attack: 1, + }, + }, + { + id: true, + Children, + }, + ], + }), + ); + matchExact(`mutation { + addCard(card: {Attack:1}){id} + }`); + }); test('Simple query with alias', () => { const matchExact = replSpace( builder('query', { diff --git a/src/TreeToTS/functions/new/buildQuery.ts b/src/TreeToTS/functions/new/buildQuery.ts index 32e39aae..ddd3501d 100644 --- a/src/TreeToTS/functions/new/buildQuery.ts +++ b/src/TreeToTS/functions/new/buildQuery.ts @@ -1,16 +1,37 @@ -import { AllTypesPropsType, ReturnTypesType, InputValueType, VType, Operations } from '@/TreeToTS/functions/new/models'; +import { + AllTypesPropsType, + ReturnTypesType, + InputValueType, + VType, + Operations, + SEPARATOR, + OperationOptions, +} from '@/TreeToTS/functions/new/models'; import { purifyGraphQLKey } from '@/TreeToTS/functions/new/purifyGraphQLKey'; import { InternalArgsBuilt } from '@/TreeToTS/functions/new/resolvePath'; -export const InternalsBuildQuery = (props: AllTypesPropsType, returns: ReturnTypesType, ops: Operations) => { - const ibb = (k: string, o: InputValueType | VType, p = ''): string => { +export const InternalsBuildQuery = ( + props: AllTypesPropsType, + returns: ReturnTypesType, + ops: Operations, + options?: OperationOptions, +) => { + const ibb = (k: string, o: InputValueType | VType, p = '', root = true): string => { const keyForPath = purifyGraphQLKey(k); - const newPath = [p, keyForPath].join('.'); + const newPath = [p, keyForPath].join(SEPARATOR); + if (!o) { + return ''; + } if (typeof o === 'boolean') { return k; } if (Array.isArray(o)) { - return `${ibb(`${k}(${InternalArgsBuilt(props, returns, ops)(o[0], newPath)})`, o[1], p)}`; + return `${ibb( + `${k}(${InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath)})`, + o[1], + p, + false, + )}`; } if (k === '__alias') { const alias = Object.keys(o)[0]; @@ -20,10 +41,13 @@ export const InternalsBuildQuery = (props: AllTypesPropsType, returns: ReturnTyp } const operationName = Object.keys(objectUnderAlias)[0]; const operation = objectUnderAlias[operationName]; - return ibb(`${alias}:${operationName}`, operation, p); + return ibb(`${alias}:${operationName}`, operation, p, false); } - return `${k}{${Object.entries(o) - .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join('.'))) + const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; + const hasVariables = root && options?.variables?.$params ? `(${options.variables?.$params})` : ''; + + return `${k}${hasOperationName}${hasVariables}{${Object.entries(o) + .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join(SEPARATOR), false)) .join('\n')}}`; }; return ibb; diff --git a/src/TreeToTS/functions/new/clientFunctions.ts b/src/TreeToTS/functions/new/clientFunctions.ts new file mode 100644 index 00000000..ad4ce33b --- /dev/null +++ b/src/TreeToTS/functions/new/clientFunctions.ts @@ -0,0 +1,54 @@ +import { InternalsBuildQuery } from '@/TreeToTS/functions/new/buildQuery'; +import { fullChainConstruct } from '@/TreeToTS/functions/new/fullChainConstruct'; +import { fullSubscriptionConstruct } from '@/TreeToTS/functions/new/fullSubscriptionConstruct'; +import { + AllTypesProps, + GraphQLTypes, + Ops, + ReturnTypes, + ValueTypes, + apiFetch, + apiSubscription, + HOST, +} from '@/TreeToTS/functions/new/mocks'; +import { + chainOptions, + FetchFunction, + GenericOperation, + OperationOptions, + SubscriptionFunction, +} from '@/TreeToTS/functions/new/models'; +import { ZeusSelect } from '@/TreeToTS/functions/new/selectFunction'; +import { InputType, SubscriptionToGraphQL } from '@/TreeToTS/functions/new/types'; + +export const Thunder = (fn: FetchFunction) => < + O extends keyof typeof Ops, + R extends keyof ValueTypes = GenericOperation +>( + operation: O, +) => (o: Z | ValueTypes[R], ops?: OperationOptions) => + fullChainConstruct(fn)(operation)(o as any, ops) as Promise>; + +export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); + +export const SubscriptionThunder = (fn: SubscriptionFunction) => < + O extends keyof typeof Ops, + R extends keyof ValueTypes = GenericOperation +>( + operation: O, +) => (o: Z | ValueTypes[R], ops?: OperationOptions) => + fullSubscriptionConstruct(fn)(operation)(o as any, ops) as SubscriptionToGraphQL; + +export const Subscription = (...options: chainOptions) => SubscriptionThunder(apiSubscription(options)); +export const Zeus = < + Z extends ValueTypes[R], + O extends keyof typeof Ops, + R extends keyof ValueTypes = GenericOperation +>( + operation: O, + o: Z | ValueTypes[R], + ops?: OperationOptions, +) => InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, ops)(operation, o as any); +export const Selector = (key: T) => ZeusSelect(); + +export const Gql = Chain(HOST); diff --git a/src/TreeToTS/functions/new/fullChainConstruct.ts b/src/TreeToTS/functions/new/fullChainConstruct.ts new file mode 100644 index 00000000..a4e6abad --- /dev/null +++ b/src/TreeToTS/functions/new/fullChainConstruct.ts @@ -0,0 +1,11 @@ +import { InternalsBuildQuery } from '@/TreeToTS/functions/new/buildQuery'; +import { AllTypesProps, Ops, ReturnTypes } from '@/TreeToTS/functions/new/mocks'; +import { FetchFunction, OperationOptions } from '@/TreeToTS/functions/new/models'; + +export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation' | 'subscription') => ( + o: Record, + options?: OperationOptions, +) => { + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, options); + return fn(builder(t, o), options?.variables?.values); +}; diff --git a/src/TreeToTS/functions/new/fullSubscriptionConstruct.ts b/src/TreeToTS/functions/new/fullSubscriptionConstruct.ts new file mode 100644 index 00000000..d9c37615 --- /dev/null +++ b/src/TreeToTS/functions/new/fullSubscriptionConstruct.ts @@ -0,0 +1,11 @@ +import { InternalsBuildQuery } from '@/TreeToTS/functions/new/buildQuery'; +import { AllTypesProps, Ops, ReturnTypes } from '@/TreeToTS/functions/new/mocks'; +import { OperationOptions, SubscriptionFunction } from '@/TreeToTS/functions/new/models'; + +export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => (t: 'query' | 'mutation' | 'subscription') => ( + o: Record, + options?: OperationOptions, +) => { + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, options); + return fn(builder(t, o)); +}; diff --git a/src/TreeToTS/functions/new/mocks.ts b/src/TreeToTS/functions/new/mocks.ts index 052d2117..3e1cfafb 100644 --- a/src/TreeToTS/functions/new/mocks.ts +++ b/src/TreeToTS/functions/new/mocks.ts @@ -1,3 +1,6 @@ +import { chainOptions, FetchFunction, SubscriptionFunction } from '@/TreeToTS/functions/new/models'; +import { AliasType } from '@/TreeToTS/functions/new/types'; + export const AllTypesProps = { Query: { cardByStatus: { @@ -35,6 +38,279 @@ export const ReturnTypes = { }; export const Ops = { - query: 'Query', - mutation: 'Mutation', + query: 'Query' as const, + mutation: 'Mutation' as const, }; + +export type ZEUS_INTERFACES = GraphQLTypes['Nameable']; +export type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; + +export type ValueTypes = { + ['Nameable']: AliasType<{ + name?: boolean; + ['...on EffectCard']?: Omit; + ['...on Card']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on CardStack']?: Omit; + __typename?: boolean; + }>; + /** Aws S3 File */ + ['S3Object']: AliasType<{ + bucket?: boolean; + key?: boolean; + region?: boolean; + __typename?: boolean; + }>; + ['ChangeCard']: AliasType<{ + ['...on SpecialCard']: ValueTypes['SpecialCard']; + ['...on EffectCard']: ValueTypes['EffectCard']; + __typename?: boolean; + }>; + ['EffectCard']: AliasType<{ + effectSize?: boolean; + name?: boolean; + __typename?: boolean; + }>; + ['Subscription']: AliasType<{ + deck?: ValueTypes['Card']; + __typename?: boolean; + }>; + ['Query']: AliasType<{ + cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; + /** Draw a card
*/ + drawCard?: ValueTypes['Card']; + drawChangeCard?: ValueTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards?: ValueTypes['Card']; + myStacks?: ValueTypes['CardStack']; + nameables?: ValueTypes['Nameable']; + __typename?: boolean; + }>; + /** Card used in card game
*/ + ['Card']: AliasType<{ + /** The attack power
*/ + Attack?: boolean; + /**
How many children the greek god had
*/ + Children?: boolean; + /** The defense power
*/ + Defense?: boolean; + attack?: [ + { + /** Attacked card/card ids
*/ cardID: string[] | undefined | null; + }, + ValueTypes['Card'], + ]; + /** Put your description here */ + cardImage?: ValueTypes['S3Object']; + /** Description of a card
*/ + description?: boolean; + id?: boolean; + image?: boolean; + /** The name of a card
*/ + name?: boolean; + skills?: boolean; + __typename?: boolean; + }>; + ['SpecialSkills']: SpecialSkills; + ['SpecialCard']: AliasType<{ + effect?: boolean; + name?: boolean; + __typename?: boolean; + }>; + ['Mutation']: AliasType<{ + addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; + __typename?: boolean; + }>; + /** Stack of cards */ + ['CardStack']: AliasType<{ + cards?: ValueTypes['Card']; + name?: boolean; + __typename?: boolean; + }>; + /** create card inputs
*/ + ['createCard']: { + /** The defense power
*/ + Defense: number; + /** input skills */ + skills?: ValueTypes['SpecialSkills'][]; + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + /**
How many children the greek god had
*/ + Children?: number | undefined | null; + /** The attack power
*/ + Attack: number; + }; +}; + +export type ModelTypes = { + ['Nameable']: ModelTypes['EffectCard'] | ModelTypes['Card'] | ModelTypes['SpecialCard'] | ModelTypes['CardStack']; + /** Aws S3 File */ + ['S3Object']: { + bucket: string; + key: string; + region: string; + }; + ['ChangeCard']: ModelTypes['SpecialCard'] | ModelTypes['EffectCard']; + ['EffectCard']: { + effectSize: number; + name: string; + }; + ['Subscription']: { + deck?: Array | undefined; + }; + ['Query']: { + cardById?: GraphQLTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: GraphQLTypes['Card']; + drawChangeCard: GraphQLTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array; + myStacks?: Array | undefined; + nameables: Array; + }; + /** Card used in card game
*/ + ['Card']: { + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined; + /** Put your description here */ + cardImage?: GraphQLTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array | undefined; + }; + ['SpecialSkills']: GraphQLTypes['SpecialSkills']; + ['SpecialCard']: { + effect: string; + name: string; + }; + ['Mutation']: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes['Card']; + }; + /** Stack of cards */ + ['CardStack']: { + cards?: Array | undefined; + name: string; + }; + /** create card inputs
*/ + ['createCard']: GraphQLTypes['createCard']; +}; + +export type GraphQLTypes = { + ['Nameable']: { + __typename: 'EffectCard' | 'Card' | 'SpecialCard' | 'CardStack'; + name: string; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + ['...on Card']: '__union' & GraphQLTypes['Card']; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on CardStack']: '__union' & GraphQLTypes['CardStack']; + }; + /** Aws S3 File */ + ['S3Object']: { + __typename: 'S3Object'; + bucket: string; + key: string; + region: string; + }; + ['ChangeCard']: { + __typename: 'SpecialCard' | 'EffectCard'; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + }; + ['EffectCard']: { + __typename: 'EffectCard'; + effectSize: number; + name: string; + }; + ['Subscription']: { + __typename: 'Subscription'; + deck?: Array | undefined; + }; + ['Query']: { + __typename: 'Query'; + cardById?: GraphQLTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: GraphQLTypes['Card']; + drawChangeCard: GraphQLTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array; + myStacks?: Array | undefined; + nameables: Array; + }; + /** Card used in card game
*/ + ['Card']: { + __typename: 'Card'; + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined; + /** Put your description here */ + cardImage?: GraphQLTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array | undefined; + }; + ['SpecialSkills']: SpecialSkills; + ['SpecialCard']: { + __typename: 'SpecialCard'; + effect: string; + name: string; + }; + ['Mutation']: { + __typename: 'Mutation'; + /** add Card to Cards database
*/ + addCard: GraphQLTypes['Card']; + }; + /** Stack of cards */ + ['CardStack']: { + __typename: 'CardStack'; + cards?: Array | undefined; + name: string; + }; + /** create card inputs
*/ + ['createCard']: { + /** The defense power
*/ + Defense: number; + /** input skills */ + skills?: Array | undefined; + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The attack power
*/ + Attack: number; + }; +}; +export const enum SpecialSkills { + THUNDER = 'THUNDER', + RAIN = 'RAIN', + FIRE = 'FIRE', +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export const apiSubscription = (opts: chainOptions) => (((q: string) => 1) as unknown) as SubscriptionFunction; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export const apiFetch = (options: chainOptions) => (((q: string, vars?: unknown) => 1) as unknown) as FetchFunction; +export const HOST = 'https://faker.graphqleditor.com/a-team/olympus/graphql'; diff --git a/src/TreeToTS/functions/new/models.ts b/src/TreeToTS/functions/new/models.ts index 6049dbba..05128e27 100644 --- a/src/TreeToTS/functions/new/models.ts +++ b/src/TreeToTS/functions/new/models.ts @@ -1,3 +1,6 @@ +import { Ops } from '@/TreeToTS/functions/new/mocks'; +import { VariableInput } from '@/TreeToTS/functions/new/useZeusVariables'; + export type AllTypesPropsType = { [x: string]: | undefined @@ -20,16 +23,51 @@ export type ReturnTypesType = { | undefined; }; export type InputValueType = { - [x: string]: boolean | [any, boolean | InputValueType] | InputValueType; + [x: string]: undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; }; -export type VType = boolean | [any, boolean | InputValueType] | InputValueType; +export type VType = undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; export type PlainType = boolean | number | string | null | undefined; export type ZeusArgsType = | PlainType - | Array | { [x: string]: ZeusArgsType; - }; + } + | Array; export type Operations = Record; + +export type VariableDefinition = { + [x: string]: unknown; +}; + +export const SEPARATOR = '|'; + +export type fetchOptions = Parameters; +type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; +export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; +export type FetchFunction = (query: string, variables?: Record) => Promise; +export type SubscriptionFunction = (query: string) => any; +type NotUndefined = T extends undefined ? never : T; +export type ResolverType = NotUndefined; + +export type OperationOptions = { + variables?: VariableInput; + operationName?: string; +}; +export interface GraphQLResponse { + data?: Record; + errors?: Array<{ + message: string; + }>; +} +export class GraphQLError extends Error { + constructor(public response: GraphQLResponse) { + super(''); + console.error(response); + } + toString() { + return 'GraphQL Response Error'; + } +} +export type GenericOperation = O extends keyof typeof Ops ? typeof Ops[O] : never; diff --git a/src/TreeToTS/functions/new/resolvePath.spec.ts b/src/TreeToTS/functions/new/resolvePath.spec.ts index 85b2d335..a22cb39a 100644 --- a/src/TreeToTS/functions/new/resolvePath.spec.ts +++ b/src/TreeToTS/functions/new/resolvePath.spec.ts @@ -5,27 +5,27 @@ const resolver = ResolveFromPath(AllTypesProps, ReturnTypes, Ops); describe(`Resolves correct type from pregenerated AllTypesProps and ReturnTypes`, () => { test('It correctly resolves path for field argument', () => { - const r = resolver('.field<>Query.field<>cardByStatus.status'); + const r = resolver('|field<>Query|field<>cardByStatus|status'); expect(r).toEqual('enum'); }); test('It correctly resolves path for input field', () => { - const r = resolver('.field<>Mutation.field<>createCard.card.status'); + const r = resolver('|field<>Mutation|field<>createCard|card|status'); expect(r).toEqual('enum'); }); test('It correctly resolves path for input field which is not enum', () => { - const r = resolver('.field<>Mutation.field<>createCard.card.name'); + const r = resolver('|field<>Mutation|field<>createCard|card|name'); expect(r).toEqual('not'); }); test('It correctly resolves path for TypeOfAttack enum', () => { - const r = resolver('.field<>Query.field<>cards.attack'); + const r = resolver('|field<>Query|field<>cards|attack'); expect(r).toEqual('enum'); }); test('It correctly resolves path for type field argument', () => { - const r = resolver('.field<>Query.field<>cards.field<>attack.by'); + const r = resolver('|field<>Query|field<>cards|field<>attack|by'); expect(r).toEqual('enum'); }); test('It correctly resolves path for nested type field argument', () => { - const r = resolver('.field<>Query.field<>cards.field<>attack.field<>attack.by'); + const r = resolver('|field<>Query|field<>cards|field<>attack|field<>attack|by'); expect(r).toEqual('enum'); }); }); diff --git a/src/TreeToTS/functions/new/resolvePath.ts b/src/TreeToTS/functions/new/resolvePath.ts index a1e05559..e6d71be5 100644 --- a/src/TreeToTS/functions/new/resolvePath.ts +++ b/src/TreeToTS/functions/new/resolvePath.ts @@ -1,4 +1,10 @@ -import { AllTypesPropsType, Operations, ReturnTypesType, ZeusArgsType } from '@/TreeToTS/functions/new/models'; +import { + AllTypesPropsType, + Operations, + ReturnTypesType, + SEPARATOR, + ZeusArgsType, +} from '@/TreeToTS/functions/new/models'; const mapPart = (p: string) => { const [isArg, isField] = p.split('<>'); @@ -27,20 +33,20 @@ export const ResolveFromPath = (props: AllTypesPropsType, returns: ReturnTypesTy const propsP2 = propsP1[mappedParts[1].v]; if (typeof propsP2 === 'string') { return rpp( - `${propsP2}.${mappedParts + `${propsP2}${SEPARATOR}${mappedParts .slice(2) .map((mp) => mp.v) - .join('.')}`, + .join(SEPARATOR)}`, ); } if (typeof propsP2 === 'object') { const propsP3 = propsP2[mappedParts[2].v]; if (propsP3 && mappedParts[2].__type === 'arg') { return rpp( - `${propsP3}.${mappedParts + `${propsP3}${SEPARATOR}${mappedParts .slice(3) .map((mp) => mp.v) - .join('.')}`, + .join(SEPARATOR)}`, ); } } @@ -53,16 +59,16 @@ export const ResolveFromPath = (props: AllTypesPropsType, returns: ReturnTypesTy const returnP2 = returnP1[mappedParts[1].v]; if (returnP2) { return rpp( - `${returnP2}.${mappedParts + `${returnP2}${SEPARATOR}${mappedParts .slice(2) .map((mp) => mp.v) - .join('.')}`, + .join(SEPARATOR)}`, ); } } }; const rpp = (path: string): 'enum' | 'not' => { - const parts = path.split('.').filter((l) => l.length > 0); + const parts = path.split(SEPARATOR).filter((l) => l.length > 0); const mappedParts = parts.map(mapPart); const propsP1 = ResolvePropsType(mappedParts); if (propsP1) { @@ -77,24 +83,33 @@ export const ResolveFromPath = (props: AllTypesPropsType, returns: ReturnTypesTy return rpp; }; -export const InternalArgsBuilt = (props: AllTypesPropsType, returns: ReturnTypesType, ops: Operations) => { +export const InternalArgsBuilt = ( + props: AllTypesPropsType, + returns: ReturnTypesType, + ops: Operations, + variables?: Record, +) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { if (Array.isArray(a)) { return `[${a.map((arr) => arb(arr, p)).join(', ')}]`; } if (typeof a === 'string') { + if (a.startsWith('$') && variables?.[a.slice(1)]) { + return a; + } const checkType = ResolveFromPath(props, returns, ops)(p); if (checkType === 'enum') { - return `${a}`; + return a; } - return `"${a}"`; + return `${JSON.stringify(a)}`; } if (typeof a === 'object') { if (a === null) { return `null`; } const returnedObjectString = Object.entries(a) - .map(([k, v]) => `${k}: ${arb(v, [p, k].join('.'), false)}`) + .filter(([, v]) => typeof v !== 'undefined') + .map(([k, v]) => `${k}: ${arb(v, [p, k].join(SEPARATOR), false)}`) .join(',\n'); if (!root) { return `{${returnedObjectString}}`; diff --git a/src/TreeToTS/functions/new/resolverFor.ts b/src/TreeToTS/functions/new/resolverFor.ts new file mode 100644 index 00000000..67fe2ff6 --- /dev/null +++ b/src/TreeToTS/functions/new/resolverFor.ts @@ -0,0 +1,10 @@ +import { ValueTypes, ModelTypes } from '@/TreeToTS/functions/new/mocks'; + +export const resolverFor = ( + type: T, + field: Z, + fn: ( + args: Required[Z] extends [infer Input, any] ? Input : any, + source: any, + ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, +) => fn as (args?: any, source?: any) => any; diff --git a/src/TreeToTS/functions/new/selectFunction.ts b/src/TreeToTS/functions/new/selectFunction.ts new file mode 100644 index 00000000..8f92b82a --- /dev/null +++ b/src/TreeToTS/functions/new/selectFunction.ts @@ -0,0 +1,2 @@ +export type SelectionFunction = (t: T | V) => T; +export const ZeusSelect = () => ((t: unknown) => t) as SelectionFunction; diff --git a/src/TreeToTS/templates/typescript/types.ts b/src/TreeToTS/functions/new/types.ts similarity index 54% rename from src/TreeToTS/templates/typescript/types.ts rename to src/TreeToTS/functions/new/types.ts index d5ccc2bf..cd7ec464 100644 --- a/src/TreeToTS/templates/typescript/types.ts +++ b/src/TreeToTS/functions/new/types.ts @@ -1,29 +1,18 @@ -import { truthyType } from '@/TreeToTS/templates/truthy'; +import { ZEUS_INTERFACES, ZEUS_UNIONS } from '@/TreeToTS/functions/new/mocks'; -export const constantTypesTypescript = ` export type UnwrapPromise = T extends Promise ? R : T; -export type ZeusState Promise> = NonNullable< - UnwrapPromise> ->; +export type ZeusState Promise> = NonNullable>>; export type ZeusHook< - T extends ( - ...args: any[] - ) => Record Promise>, + T extends (...args: any[]) => Record Promise>, N extends keyof ReturnType > = ZeusState[N]>; -type WithTypeNameValue = T & { - __typename?: ${truthyType}; +export type WithTypeNameValue = T & { + __typename?: boolean; }; -type AliasType = WithTypeNameValue & { +export type AliasType = WithTypeNameValue & { __alias?: Record>; }; -export interface GraphQLResponse { - data?: Record; - errors?: Array<{ - message: string; - }>; -} type DeepAnify = { [P in keyof T]?: any; }; @@ -36,7 +25,7 @@ type IsInterfaced, DST> = FlattenArray extends Z [P in keyof SRC]: SRC[P] extends '__union' & infer R ? P extends keyof DST ? IsArray - : {} + : Record : never; }[keyof DST] & { @@ -48,10 +37,10 @@ type IsInterfaced, DST> = FlattenArray extends Z }[keyof DST] >, '__typename' - >]: IsPayLoad extends ${truthyType} ? SRC[P] : IsArray; + >]: IsPayLoad extends boolean ? SRC[P] : IsArray; } : { - [P in keyof Pick]: IsPayLoad extends ${truthyType} ? SRC[P] : IsArray; + [P in keyof Pick]: IsPayLoad extends boolean ? SRC[P] : IsArray; }; export type MapType = SRC extends DeepAnify ? IsInterfaced : never; @@ -61,13 +50,6 @@ export type InputType = IsPayLoad extends { __alias: infer R } } & MapType, '__alias'>> : MapType>; -type Func

= (...args: P) => R; -type AnyFunc = Func; -export type ArgsType = F extends Func ? P : never; -export type OperationOptions = { - variables?: Record; - operationName?: string; -}; export type SubscriptionToGraphQL = { ws: WebSocket; on: (fn: (args: InputType) => void) => void; @@ -75,21 +57,3 @@ export type SubscriptionToGraphQL = { error: (fn: (e: { data?: InputType; errors?: string[] }) => void) => void; open: () => void; }; -export type SelectionFunction = (t: T | V) => T; -export type fetchOptions = ArgsType; -type websocketOptions = typeof WebSocket extends new ( - ...args: infer R -) => WebSocket - ? R - : never; -export type chainOptions = - | [fetchOptions[0], fetchOptions[1] & {websocket?: websocketOptions}] - | [fetchOptions[0]]; -export type FetchFunction = ( - query: string, - variables?: Record, -) => Promise; -export type SubscriptionFunction = (query: string) => any; -type NotUndefined = T extends undefined ? never : T; -export type ResolverType = NotUndefined; -`; diff --git a/src/TreeToTS/functions/new/useZeusVariables.spec.ts b/src/TreeToTS/functions/new/useZeusVariables.spec.ts new file mode 100644 index 00000000..f64b9314 --- /dev/null +++ b/src/TreeToTS/functions/new/useZeusVariables.spec.ts @@ -0,0 +1,14 @@ +import { useZeusVariables } from '@/TreeToTS/functions/new/useZeusVariables'; +import { replSpace } from '@/__tests__/TestUtils'; +const { $params, $ } = useZeusVariables({ name: 'String!', age: 'Int' })({ name: 'dasds', age: 12 }); + +describe('Test variable parameters', () => { + it('Creates correct params', () => { + const m = replSpace($params); + m(`$name: String!, $age: Int`); + }); + it('Creates correct variabbles', () => { + const castedVar = $('name'); + expect(castedVar).toEqual('$name'); + }); +}); diff --git a/src/TreeToTS/functions/new/useZeusVariables.ts b/src/TreeToTS/functions/new/useZeusVariables.ts new file mode 100644 index 00000000..22400926 --- /dev/null +++ b/src/TreeToTS/functions/new/useZeusVariables.ts @@ -0,0 +1,22 @@ +export const useZeusVariables = (variables: T) => < + Z extends { + [P in keyof T]: unknown; + } +>( + values: Z, +) => { + return { + $params: Object.keys(variables) + .map((k) => `$${k}: ${variables[k as keyof T]}`) + .join(', '), + $: (variable: U) => { + return (`$${variable}` as unknown) as Z[U]; + }, + values, + }; +}; + +export type VariableInput = { + $params: ReturnType>['$params']; + values: Record; +}; diff --git a/src/TreeToTS/functions/new/variableParameter.sts b/src/TreeToTS/functions/new/variableParameter.sts new file mode 100644 index 00000000..c734e62b --- /dev/null +++ b/src/TreeToTS/functions/new/variableParameter.sts @@ -0,0 +1,10 @@ +export const VariableParameters = (variables: T) => ( + values: { + // eslint-disable-next-line prettier/prettier + [P in keyof T]: string; + }, +) => { + return Object.keys(variables) + .map((k) => `${k}: ${values[k as keyof T]}`) + .join(', '); +}; diff --git a/src/TreeToTS/functions/new/variablizer.ts b/src/TreeToTS/functions/new/variablizer.ts deleted file mode 100644 index d8c4c147..00000000 --- a/src/TreeToTS/functions/new/variablizer.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const variablizer = (variablesDict: T) => (variable: Z) => { - return `$${variable}}` as any; -}; diff --git a/src/TreeToTS/functions/resolverFor.ts b/src/TreeToTS/functions/resolverFor.ts deleted file mode 100644 index 01f3039b..00000000 --- a/src/TreeToTS/functions/resolverFor.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { MODEL_TYPES } from '@/TreeToTS/templates/modelTypes'; -import { StringFunction } from './models'; - -export const resolverForFunction: StringFunction = { - ts: ` -export const resolverFor = < - X, - T extends keyof ValueTypes, - Z extends keyof ValueTypes[T], ->( - type: T, - field: Z, - fn: ( - args: Required[Z] extends [infer Input, any] ? Input : any, - source: any, - ) => Z extends keyof ${MODEL_TYPES}[T] ? ${MODEL_TYPES}[T][Z] | Promise<${MODEL_TYPES}[T][Z]> | X : any, -) => fn as (args?: any,source?: any) => any; -`, -}; diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index ec6761b2..d98525e4 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -7,12 +7,7 @@ import { Environment } from '../Models'; import { resolvePropTypeFromRoot } from './templates/returnedPropTypes'; import { resolveReturnFromRoot } from './templates/returnedReturns'; import { resolveTypes } from './templates/returnedTypes'; -import { - bodyTypeScript, - constantTypesTypescript, - graphqlErrorTypeScript, - typescriptFunctions, -} from './templates/typescript'; +import { typescriptFunctions } from './templates/typescript'; export interface OperationName { name: string; @@ -93,7 +88,15 @@ export class TreeToTS { ) .filter((pt) => pt) .join(',\n')}\n}`; - return propTypes.concat('\n\n').concat(returnTypes); + const Ops = TreeToTS.resolveOperations(tree); + const opsString = `export const Ops = { + query: ${Ops.query.operationName?.name ? `"${Ops.query.operationName.name}" as const` : `never`}, + mutation: ${Ops.mutation.operationName?.name ? `"${Ops.mutation.operationName.name}" as const` : `never`}, + subscription: ${ + Ops.subscription.operationName?.name ? `"${Ops.subscription.operationName.name}" as const` : `never` + } +}`; + return propTypes.concat('\n\n').concat(returnTypes).concat('\n\n').concat(opsString); } static resolveBasisTypes(tree: ParserTree): string { const rootTypes = resolveTypes(tree.nodes); @@ -125,16 +128,15 @@ export class TreeToTS { host?: string; esModule?: boolean; }) { - const operations = bodyTypeScript(env, TreeToTS.resolveOperations(tree)); return { - indexImports: `import { AllTypesProps, ReturnTypes } from './const${esModule ? '.js' : ''}';`, + indexImports: `import { AllTypesProps, ReturnTypes, Ops } from './const${esModule ? '.js' : ''}';`, const: TreeToTS.resolveBasisCode(tree), - index: TreeToTS.resolveBasisTypes(tree) - .concat(graphqlErrorTypeScript.concat('\n').concat(constantTypesTypescript).concat('\n\n')) + index: '' + .concat(host ? `export const HOST = "${host}"` : '\n\nexport const HOST="Specify host"') + .concat('\n') .concat(typescriptFunctions(env)) - .concat(operations) - .concat(host ? '\n\n' : '') - .concat(host ? `export const Gql = Chain('${host}')` : ''), + .concat('\n') + .concat(TreeToTS.resolveBasisTypes(tree)), }; } static resolveTree({ tree, env = 'browser', host }: { tree: ParserTree; env?: Environment; host?: string }) { diff --git a/src/TreeToTS/templates/returnedPropTypes.ts b/src/TreeToTS/templates/returnedPropTypes.ts index 10b949d3..15be727c 100644 --- a/src/TreeToTS/templates/returnedPropTypes.ts +++ b/src/TreeToTS/templates/returnedPropTypes.ts @@ -1,12 +1,14 @@ -import { ParserField, TypeSystemDefinition, TypeDefinition, compileType } from 'graphql-js-tree'; +import { ParserField, TypeSystemDefinition, TypeDefinition, getTypeName, ScalarTypes } from 'graphql-js-tree'; const resolveArg = (f: ParserField, tabs = '\t\t\t'): string => { const { type: { fieldType }, } = f; - const aTabs = `\n${tabs}\t`; - - return `${tabs}${f.name}:{${aTabs}type:"${compileType(fieldType)}"\n${tabs}}`; + const fType = getTypeName(fieldType); + if (Object.keys(ScalarTypes).includes(fType)) { + return ''; + } + return `${tabs}${f.name}:"${fType}"`; }; const resolveField = (f: ParserField): string => { const { args, name } = f; @@ -18,13 +20,16 @@ export const resolvePropTypeFromRoot = (i: ParserField): string => { return ''; } if (i.data.type === TypeDefinition.EnumTypeDefinition) { - return `\t${i.name}: "enum"`; + return `\t${i.name}: true`; } if (i.data.type === TypeDefinition.ScalarTypeDefinition) { return `\t${i.name}: "String"`; } if (i.data.type === TypeDefinition.InputObjectTypeDefinition) { - return `\t${i.name}:{\n${i.args.map((f) => resolveArg(f, '\t\t')).join(',\n')}\n\t}`; + return `\t${i.name}:{\n${i.args + .map((f) => resolveArg(f, '\t\t')) + .filter((f) => !!f) + .join(',\n')}\n\t}`; } if (!i.args.length) { return ''; diff --git a/src/TreeToTS/templates/typescript/browser/apiSubscription.ts b/src/TreeToTS/templates/typescript/browser/apiSubscription.ts index 83975d74..cb7c3422 100644 --- a/src/TreeToTS/templates/typescript/browser/apiSubscription.ts +++ b/src/TreeToTS/templates/typescript/browser/apiSubscription.ts @@ -15,9 +15,6 @@ export const apiSubscription = (options: chainOptions) => ( if(event.data){ const parsed = JSON.parse(event.data) const data = parsed.data - if (data) { - seekForAliases(data); - } return e(data); } }; diff --git a/src/TreeToTS/templates/typescript/error.ts b/src/TreeToTS/templates/typescript/error.ts deleted file mode 100644 index c827313d..00000000 --- a/src/TreeToTS/templates/typescript/error.ts +++ /dev/null @@ -1,11 +0,0 @@ -export const graphqlErrorTypeScript = ` -export class GraphQLError extends Error { - constructor(public response: GraphQLResponse) { - super(""); - console.error(response); - } - toString() { - return "GraphQL Response Error"; - } - } -`; diff --git a/src/TreeToTS/templates/typescript/functions.ts b/src/TreeToTS/templates/typescript/functions.ts index 435ce0e5..bf92e844 100644 --- a/src/TreeToTS/templates/typescript/functions.ts +++ b/src/TreeToTS/templates/typescript/functions.ts @@ -1,16 +1,8 @@ import { Environment } from '@/Models'; -import { - ZeusSelectFunction, - fullChainConstructFunction, - resolverForFunction, - fullSubscriptionConstruct, -} from '@/TreeToTS/functions'; +import generated from '@/TreeToTS/functions/generated'; export const typescriptFunctions = (env: Environment): string => ` -${ZeusSelectFunction.ts} -${fullChainConstructFunction.ts} -${fullSubscriptionConstruct.ts} -${resolverForFunction.ts} ${require(`./${env}/fetchFunction`).default} ${require(`./${env}/apiSubscription`).default} +${generated} `; diff --git a/src/TreeToTS/templates/typescript/index.ts b/src/TreeToTS/templates/typescript/index.ts index 6a90a1f8..484b7159 100644 --- a/src/TreeToTS/templates/typescript/index.ts +++ b/src/TreeToTS/templates/typescript/index.ts @@ -1,4 +1 @@ export * from './functions'; -export * from './error'; -export * from './types'; -export * from './operations'; diff --git a/src/TreeToTS/templates/typescript/node/apiSubscription.ts b/src/TreeToTS/templates/typescript/node/apiSubscription.ts index 8ae8e09e..4fd32bdd 100644 --- a/src/TreeToTS/templates/typescript/node/apiSubscription.ts +++ b/src/TreeToTS/templates/typescript/node/apiSubscription.ts @@ -16,9 +16,6 @@ export const apiSubscription = (options: chainOptions) => ( if(event.data){ const parsed = JSON.parse(event.data) const data = parsed.data - if (data) { - seekForAliases(data); - } return e(data); } }; diff --git a/src/TreeToTS/templates/typescript/operations.ts b/src/TreeToTS/templates/typescript/operations.ts deleted file mode 100644 index 42c846ba..00000000 --- a/src/TreeToTS/templates/typescript/operations.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { ResolvedOperations } from 'TreeToTS'; -import { Environment } from '@/Models'; -import { OperationType } from 'graphql-js-tree'; -import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; -import { VALUETYPES } from '@/TreeToTS/templates/valueTypes/models'; - -export const generateOperationsChaining = ({ query, mutation, subscription }: Partial) => { - const allOps: Record = { - query: query?.operationName?.name && query.operations.length ? query.operationName.name : undefined, - mutation: mutation?.operationName?.name && mutation.operations.length ? mutation.operationName.name : undefined, - subscription: - subscription?.operationName?.name && subscription.operations.length ? subscription.operationName.name : undefined, - }; - const orOpsType = [ - query?.operationName?.name ? `'query'` : undefined, - mutation?.operationName?.name ? `'mutation'` : undefined, - subscription?.operationName?.name ? `'subscription'` : undefined, - ] - .filter((o) => !!o) - .join(' | '); - return ` -const allOperations = ${JSON.stringify(allOps, null, 4)} - -export type GenericOperation = O extends 'query' - ? ${allOps.query ? `"${allOps.query}"` : 'never'} - : O extends 'mutation' - ? ${allOps.mutation ? `"${allOps.mutation}"` : 'never'} - : ${allOps.subscription ? `"${allOps.subscription}"` : 'never'} - -export const Thunder = (fn: FetchFunction) => < - O extends ${orOpsType}, - R extends keyof ${VALUETYPES} = GenericOperation ->( - operation: O, -) => (o: Z | ${VALUETYPES}[R], ops?: OperationOptions) => - fullChainConstruct(fn)(operation, allOperations[operation])(o as any, ops) as Promise>; - -export const Chain = (...options: chainOptions) => Thunder(apiFetch(options)); - -export const SubscriptionThunder = (fn: SubscriptionFunction) => < - O extends ${orOpsType}, - R extends keyof ValueTypes = GenericOperation ->( - operation: O, -) => ( - o: Z | ${VALUETYPES}[R], - ops?: OperationOptions -)=> - fullSubscriptionConstruct(fn)(operation, allOperations[operation])( - o as any, - ops, - ) as SubscriptionToGraphQL; - -export const Subscription = (...options: chainOptions) => SubscriptionThunder(apiSubscription(options));`; -}; - -const generateOperationsZeusTypeScript = ({ query, mutation, subscription }: Partial): string => { - const orOpsType = [ - query?.operationName?.name ? `'query'` : undefined, - mutation?.operationName?.name ? `'mutation'` : undefined, - subscription?.operationName?.name ? `'subscription'` : undefined, - ] - .filter((o) => !!o) - .join(' | '); - return `export const Zeus = < - Z extends ${VALUETYPES}[R], - O extends ${orOpsType}, - R extends keyof ValueTypes = GenericOperation ->( - operation: O, - o: Z | ${VALUETYPES}[R], - operationName?: string, -) => queryConstruct(operation, allOperations[operation], operationName)(o as any);`; -}; - -const generateSelectorsZeusTypeScript = () => { - return `export const Selector = (key: T) => ZeusSelect<${VALUETYPES}[T]>();`; -}; - -export const bodyTypeScript = (env: Environment, resolvedOperations: ResolvedOperations): string => ` -${generateOperationsChaining(resolvedOperations)} -${generateOperationsZeusTypeScript(resolvedOperations)} -${generateSelectorsZeusTypeScript()} - `; diff --git a/src/__tests__/TreeToTS/Chain.spec.ts b/src/__tests__/TreeToTS/Chain.spec.ts deleted file mode 100644 index 66007ea8..00000000 --- a/src/__tests__/TreeToTS/Chain.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { replSpace } from '@/__tests__/TestUtils'; -import { Parser } from 'graphql-js-tree'; -import { TreeToTS } from '../../TreeToTS'; - -describe('Chain tests', () => { - it('TypeScript: ChainDefinitions', () => { - const schema = ` - type Person{ name:String } - type Query{ people: [Person] } - schema{ - query: Query - } - `; - const tree = Parser.parseAddExtensions(schema); - const m = replSpace(TreeToTS.resolveTreeSplit({ tree }).index); - m(`Chain = (...options: chainOptions) => Thunder(apiFetch(options));`); - }); -}); diff --git a/src/__tests__/TreeToTS/EsModule.spec.ts b/src/__tests__/TreeToTS/EsModule.spec.ts deleted file mode 100644 index 0888f620..00000000 --- a/src/__tests__/TreeToTS/EsModule.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { replSpace } from '@/__tests__/TestUtils'; -import { Parser } from 'graphql-js-tree'; -import { TreeToTS } from '../../TreeToTS'; - -const schema = ` -type Query{ people: [String] } -schema{ - query: Query -} -`; -describe('Esmodule flag tests', () => { - it('With esModule flag it should contain js import', () => { - const tree = Parser.parseAddExtensions(schema); - const m = replSpace(TreeToTS.resolveTreeSplit({ tree, esModule: true }).indexImports); - m(`'./const.js'`); - }); - it('Without esModule flag it should not contain js import', () => { - const tree = Parser.parseAddExtensions(schema); - const typeScriptCode = TreeToTS.resolveTreeSplit({ tree, esModule: false }); - expect(typeScriptCode.indexImports).toContain(`'./const'`); - expect(typeScriptCode.indexImports).not.toContain(`'./const.js'`); - }); -}); diff --git a/src/__tests__/TreeToTS/Extend.spec.ts b/src/__tests__/TreeToTS/Extend.spec.ts deleted file mode 100644 index 106531fd..00000000 --- a/src/__tests__/TreeToTS/Extend.spec.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { replSpace } from '@/__tests__/TestUtils'; -import { Parser } from 'graphql-js-tree'; -import { TreeToTS } from '../../TreeToTS'; - -describe('Extend tests on parser', () => { - it('Extends Person type', () => { - const schema = ` - type Person{ name:String } - extend type Person { - age: Int - } - `; - const tree = Parser.parseAddExtensions(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`age?:number`); - }); -}); diff --git a/src/__tests__/TreeToTS/Field.spec.ts b/src/__tests__/TreeToTS/Field.spec.ts deleted file mode 100644 index fc1ed95d..00000000 --- a/src/__tests__/TreeToTS/Field.spec.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; -import { replSpace } from '@/__tests__/TestUtils'; -import { Parser, ScalarTypes } from 'graphql-js-tree'; -import { TreeToTS } from '../../TreeToTS'; - -describe('Fields tests on TypeScript code', () => { - test(`Built in ScalarTypes - ${Object.keys(ScalarTypes).join(', ')}`, () => { - const schema = `type Person{ - id: ${ScalarTypes.ID} - name: ${ScalarTypes.String} - age: ${ScalarTypes.Int} - weight: ${ScalarTypes.Float} - verified: ${ScalarTypes.Boolean} - }`; - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - const mockFields = [`id?: string`, `name?: string`, `age?: number`, `weight?: number`, `verified?: boolean`]; - mockFields.forEach((mf) => m(mf)); - }); - test('Type objects', () => { - const schema = ` - type Car - type Person{ - car: Car - }`; - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`car?: ${TYPES}["Car"]`); - }); - test('Interface objects', () => { - const schema = ` - interface Car - type Person{ - car: Car - }`; - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`car?: ${TYPES}["Car"]`); - }); - test('Enum objects', () => { - const schema = ` - enum Car - type Person{ - car: Car - }`; - - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`car?: ${TYPES}["Car"]`); - }); - test('Custom scalar objects', () => { - const schema = ` - scalar Car - type Person{ - car: Car - }`; - - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`car?: ${TYPES}["Car"]`); - }); - test('Union objects', () => { - const schema = ` - type Car - type Plane - union Machine = Car | Plane - type Person{ - machine: Machine - }`; - - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`machine?: ${TYPES}["Machine"]`); - }); - test(`Required fields`, () => { - const schema = `type Person{ - id: ${ScalarTypes.ID}! - }`; - - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`id: string`); - }); - test(`ListType fields`, () => { - const schema = `type Person{ - name: [${ScalarTypes.String}] - friends: [Person!]! - }`; - - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`name?: Array`); - m(`friends: Array<${TYPES}["Person"]>`); - }); - test(`Arguments`, () => { - const schema = `type Person{ - searchFriends(name: String): [Person!]! - }`; - - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`name?: string | undefined | null`); - }); -}); diff --git a/src/__tests__/TreeToTS/Interface.spec.ts b/src/__tests__/TreeToTS/Interface.spec.ts deleted file mode 100644 index 0a184d9d..00000000 --- a/src/__tests__/TreeToTS/Interface.spec.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { replSpace } from '@/__tests__/TestUtils'; -import { Parser } from 'graphql-js-tree'; -import { TreeToTS } from '../../TreeToTS'; - -const schemaWithUnique = ` -interface Vehicle { - wheels: Int -} - -type Car implements Vehicle { - wheels: Int - color: String -} - -type Motorcycle implements Vehicle { - wheels: Int - visor: Boolean -} -`; - -const schema = ` -interface Vehicle { - wheels: Int -} - -type Car implements Vehicle { - wheels: Int -} - -type Motorcycle implements Vehicle { - wheels: Int -} -`; -describe('Interface tests', () => { - it('TypeScript: Interfaces with Unique Fields', () => { - const tree = Parser.parseAddExtensions(schemaWithUnique); - const m = replSpace(TreeToTS.resolveTree({ tree })); - // should have wheels as a field on vehicle - m( - `["Vehicle"]:AliasType<{ - wheels?:boolean; ['...on Car']?: Omit; - ['...on Motorcycle']?: Omit; - __typename?: boolean - }>;`, - ); - - // since wheels already exists on vehicle and is common, should not be on subtypes - m(`["Car"]: AliasType<{wheels?:boolean,color?:boolean, __typename?: boolean }>`); - m(`["Motorcycle"]: AliasType<{wheels?:boolean,visor?:boolean, __typename?: boolean }>`); - - // full type should have all the fields - m(`["Car"]: {__typename: "Car",wheels?: number | undefined,color?: string | undefined }`); - m(`["Motorcycle"]: {__typename: "Motorcycle",wheels?: number | undefined,visor?: boolean | undefined}`); - }); - - it('TypeScript: Interfaces without Unique Fields', () => { - const tree = Parser.parseAddExtensions(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - - // should have wheels as a field on vehicle - m( - `["Vehicle"]:AliasType<{ wheels?:boolean; ['...on Car']?: Omit; ['...on Motorcycle']?: Omit; __typename?: boolean }>;`, - ); - - // should support an empty subtype - m(`["Car"]: AliasType<{wheels?:boolean, __typename?: boolean }>`); - m(`["Motorcycle"]: AliasType<{wheels?:boolean, __typename?: boolean }>`); - - // full type should have all the fields - m(`["Car"]: {__typename: "Car",wheels?: number | undefined }`); - m(`["Motorcycle"]: {__typename: "Motorcycle",wheels?: number | undefined }`); - }); -}); diff --git a/src/__tests__/TreeToTS/Selectors.spec.ts b/src/__tests__/TreeToTS/Selectors.spec.ts deleted file mode 100644 index 4ec9b315..00000000 --- a/src/__tests__/TreeToTS/Selectors.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { replSpace } from '@/__tests__/TestUtils'; -import { Parser } from 'graphql-js-tree'; -import { TreeToTS } from '../../TreeToTS'; - -const schema = ` -type Person{ name:String } -type Query{ people: [Person] } -schema{ - query: Query -} -`; -describe('Thunder tests', () => { - it('TypeScript: Selectors', () => { - const tree = Parser.parseAddExtensions(schema); - const m = replSpace(TreeToTS.resolveTreeSplit({ tree }).index); - m(`Selector =`); - }); -}); diff --git a/src/__tests__/TreeToTS/Thunder.spec.ts b/src/__tests__/TreeToTS/Thunder.spec.ts deleted file mode 100644 index 1df16eed..00000000 --- a/src/__tests__/TreeToTS/Thunder.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { replSpace } from '@/__tests__/TestUtils'; -import { Parser } from 'graphql-js-tree'; -import { TreeToTS } from '../../TreeToTS'; - -const schema = ` -type Person{ name:String } -type Query{ people: [Person] } -schema{ - query: Query -} -`; -describe('Thunder tests', () => { - it('TypeScript: ThunderDefinitions', () => { - const tree = Parser.parseAddExtensions(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - m(`export const Thunder = (fn: FetchFunction) => < - O extends 'query', - R extends keyof ValueTypes = GenericOperation - >( - operation: O, - ) => (o: Z | ValueTypes[R], ops?: OperationOptions) => - fullChainConstruct(fn)(operation, allOperations[operation])(o as any, ops) as Promise>; -`); - }); -}); diff --git a/src/__tests__/TreeToTS/TypeDefinitions.spec.ts b/src/__tests__/TreeToTS/TypeDefinitions.spec.ts deleted file mode 100644 index b1257966..00000000 --- a/src/__tests__/TreeToTS/TypeDefinitions.spec.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { replSpace } from '@/__tests__/TestUtils'; -import { Parser } from 'graphql-js-tree'; -import { TreeToTS } from '../../TreeToTS'; - -describe('TypeDefintion declarations tests on TypeScript type generator', () => { - test('ObjectTypeDefinition - type keyword', () => { - const schema = 'type Person'; - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - const mockType = `["Person"]`; - m(mockType); - }); - test('InterfaceTypeDefinition - interface keyword', () => { - const schema = 'interface Person'; - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - const mockType = `["Person"]`; - m(mockType); - }); - test('InputObjectTypeDefinition - input keyword', () => { - const schema = 'input Person'; - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - const mockType = `["Person"]`; - m(mockType); - }); - test('EnumTypeDefinition - enum keyword', () => { - const schema = `enum Status{ - ACTIVE - PAUSED - }`; - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - const mockType = `enum Status`; - const mockValueActive = `ACTIVE = "ACTIVE"`; - const mockValuePaused = `PAUSED = "PAUSED"`; - m(mockValueActive); - m(mockValuePaused); - m(mockType); - }); - test('UnionTypeDefinition - union keyword', () => { - const schema = 'union Person'; - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - const mockType = `["Person"]`; - m(mockType); - }); - test('ScalarTypeDefinition - scalar keyword', () => { - const schema = 'scalar Person'; - const tree = Parser.parse(schema); - const m = replSpace(TreeToTS.resolveTree({ tree })); - const mockType = `["Person"]`; - m(mockType); - }); -}); diff --git a/src/plugins/apollo/index.spec.ts b/src/plugins/apollo/index.spec.ts deleted file mode 100644 index 393e0775..00000000 --- a/src/plugins/apollo/index.spec.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { pluginApollo } from '@/plugins/apollo'; -import { Parser } from 'graphql-js-tree'; - -describe('plugin apollo test', () => { - it('generates correct apollo plugin from the schema', () => { - const schema = ` -type Query{ - people: [String!]! -} -type Mutation{ - register(name: String!): String! -} -type Subscription{ - registrations: [String!]! -} -schema{ - query: Query - mutation: Mutation - subscription: Subscription -} -`; - const tree = Parser.parse(schema); - const apolloResult = pluginApollo({ tree }); - expect(apolloResult.ts).toContain(`import { Zeus, GraphQLTypes, InputType, ValueTypes } from './index'; -import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; -import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client';`); - expect(apolloResult.ts).toContain(`export function useTypedQuery`); - expect(apolloResult.ts).toContain(`export function useTypedLazyQuery`); - expect(apolloResult.ts).toContain( - `export function useTypedMutation`, - ); - expect(apolloResult.ts).toContain( - `export function useTypedSubscription`, - ); - }); -}); diff --git a/src/plugins/apollo/index.ts b/src/plugins/apollo/index.ts index e485c196..d33e4cff 100644 --- a/src/plugins/apollo/index.ts +++ b/src/plugins/apollo/index.ts @@ -10,9 +10,9 @@ const pluginApolloOps = ({ queryName, operation }: { queryName: string; operatio ts: `export function useTyped${capitalized}( ${operation}: Z | ValueTypes[O], options?: ${capitalized}HookOptions>, - operationName?: string, + operationOptions?: OperationOptions, ) { - return use${capitalized}>(gql(Zeus("${zeusOperation}",${operation}, operationName)), options); + return use${capitalized}>(gql(Zeus("${zeusOperation}",${operation}, operationOptions)), options); }`, }; }; @@ -49,7 +49,7 @@ export const pluginApollo = ({ tree, esModule }: { tree: ParserTree; esModule?: return { ts: `/* eslint-disable */ -import { Zeus, GraphQLTypes, InputType, ValueTypes } from './index${esModule ? '.js' : ''}'; +import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index${esModule ? '.js' : ''}'; import { gql, ${capitalizedOps.map((o) => `use${o}`).join(', ')} } from '@apollo/client'; import type { ${capitalizedOps.map((o) => `${o}HookOptions`).join(', ')} } from '@apollo/client'; diff --git a/src/plugins/react-query/index.spec.ts b/src/plugins/react-query/index.spec.ts deleted file mode 100644 index 5d5f0a89..00000000 --- a/src/plugins/react-query/index.spec.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { pluginReactQuery } from '@/plugins/react-query'; -import { Parser } from 'graphql-js-tree'; - -describe('plugin react-query test', () => { - it('generates correct react-query plugin from the schema', () => { - const schema = ` -type Query{ - people: [String!]! -} -type Mutation{ - register(name: String!): String! -} -schema{ - query: Query - mutation: Mutation -} -`; - const tree = Parser.parse(schema); - const pluginResult = pluginReactQuery({ tree }); - expect(pluginResult.ts).toContain( - `import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index';`, - ); - expect(pluginResult.ts).toContain(`react-query`); - expect(pluginResult.ts).toContain(`useMutation`); - expect(pluginResult.ts).toContain(`useQuery`); - expect(pluginResult.ts).toContain(`UseQueryOptions`); - expect(pluginResult.ts).toContain(`UseMutationOptions`); - expect(pluginResult.ts).toContain( - `export function useTypedQuery>`, - ); - expect(pluginResult.ts).toContain( - `export function useTypedMutation>`, - ); - }); -}); diff --git a/src/plugins/stuccoSubscriptions/index.spec.ts b/src/plugins/stuccoSubscriptions/index.spec.ts deleted file mode 100644 index 1fbd5772..00000000 --- a/src/plugins/stuccoSubscriptions/index.spec.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { pluginStucco } from '@/plugins/stuccoSubscriptions'; -import { Parser } from 'graphql-js-tree'; - -describe('plugin react-query test', () => { - it('generates correct react-query plugin from the schema', () => { - const schema = ` -type Query{ - people: [String!]! -} -type Mutation{ - register(name: String!): String! -} -type Subscription{ - register(name: String!): String! -} -schema{ - query: Query - mutation: Mutation - subscription: Subscription -} -`; - const tree = Parser.parse(schema); - const pluginResult = pluginStucco({ tree }); - expect(pluginResult.ts).toBeTruthy(); - }); -}); diff --git a/src/plugins/stuccoSubscriptions/index.ts b/src/plugins/stuccoSubscriptions/index.ts index 8120a399..9e7bfe5c 100644 --- a/src/plugins/stuccoSubscriptions/index.ts +++ b/src/plugins/stuccoSubscriptions/index.ts @@ -50,7 +50,7 @@ export const stuccoSubscriptions = ( }); }, }; - })('subscription', '${subscriptionNode.name}')(o as any, ops) as SubscriptionToGraphQL; + })('subscription')(o as any, ops) as SubscriptionToGraphQL; `, }; }; From c92355602aa17236950c5e80ee373532b51c7c2d Mon Sep 17 00:00:00 2001 From: aexol Date: Mon, 11 Apr 2022 16:17:15 +0200 Subject: [PATCH 08/74] :bookmark: Release new experimental version --- .github/workflows/{beta.yml => tree.yml} | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename .github/workflows/{beta.yml => tree.yml} (85%) diff --git a/.github/workflows/beta.yml b/.github/workflows/tree.yml similarity index 85% rename from .github/workflows/beta.yml rename to .github/workflows/tree.yml index 15485205..790152c1 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/tree.yml @@ -1,7 +1,7 @@ on: push: branches: - - v3.0.0 + - tree-011 jobs: build: runs-on: ubuntu-latest @@ -14,6 +14,6 @@ jobs: registry-url: 'https://registry.npmjs.org' - run: npm install - run: npm run build - - run: npm publish --access public --tag beta + - run: npm publish --access public --tag tree env: NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} diff --git a/package.json b/package.json index eea02583..f3a43665 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "4.0.4", + "version": "5.0.0-rc-0", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", From a7febb39902c8e021f22f3e3d6dace0fd5b91bb2 Mon Sep 17 00:00:00 2001 From: aexol Date: Tue, 12 Apr 2022 15:37:26 +0200 Subject: [PATCH 09/74] :bug: Fixed returned alltypesprops to omit empty values --- package.json | 2 +- .../templates/returnedPropTypes/index.spec.ts | 129 ++++++++++++++++++ .../index.ts} | 6 +- 3 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 src/TreeToTS/templates/returnedPropTypes/index.spec.ts rename src/TreeToTS/templates/{returnedPropTypes.ts => returnedPropTypes/index.ts} (90%) diff --git a/package.json b/package.json index f3a43665..ec2b221a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-0", + "version": "5.0.0-rc-1", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/TreeToTS/templates/returnedPropTypes/index.spec.ts b/src/TreeToTS/templates/returnedPropTypes/index.spec.ts new file mode 100644 index 00000000..c66f0461 --- /dev/null +++ b/src/TreeToTS/templates/returnedPropTypes/index.spec.ts @@ -0,0 +1,129 @@ +import { resolvePropTypeFromRoot } from '@/TreeToTS/templates/returnedPropTypes'; +import { replSpace } from '@/__tests__/TestUtils'; +import { Options, ScalarTypes, TypeDefinition, TypeSystemDefinition, ValueDefinition } from 'graphql-js-tree'; + +describe('Prop types generation test', () => { + it('Correctly resolves enum type', () => { + const matchExact = replSpace( + resolvePropTypeFromRoot({ + name: 'Status', + args: [], + data: { + type: TypeDefinition.EnumTypeDefinition, + }, + directives: [], + interfaces: [], + type: { + fieldType: { + type: Options.name, + name: 'enum', + }, + }, + }), + ); + matchExact(`Status: true`); + }); + it('Correctly resolves type with fields without enums and inputs', () => { + const matchExact = replSpace( + resolvePropTypeFromRoot({ + name: 'Person', + args: [ + { + args: [], + data: { + type: TypeSystemDefinition.FieldDefinition, + }, + directives: [], + interfaces: [], + name: 'firstName', + type: { + fieldType: { + name: 'String', + type: Options.name, + }, + }, + }, + ], + data: { + type: TypeDefinition.ObjectTypeDefinition, + }, + directives: [], + interfaces: [], + type: { + fieldType: { + type: Options.name, + name: 'type', + }, + }, + }), + ); + matchExact(``); + }); + it('Correctly resolves type with fields with scalars and inputs', () => { + const matchExact = replSpace( + resolvePropTypeFromRoot({ + name: 'Mutation', + args: [ + { + args: [ + { + args: [], + data: { + type: ValueDefinition.InputValueDefinition, + }, + directives: [], + interfaces: [], + name: '_id', + type: { + fieldType: { + type: Options.name, + name: ScalarTypes.String, + }, + }, + }, + { + args: [], + data: { + type: ValueDefinition.InputValueDefinition, + }, + directives: [], + interfaces: [], + name: 'CreatePerson', + type: { + fieldType: { + type: Options.name, + name: 'CreatePerson', + }, + }, + }, + ], + data: { + type: TypeSystemDefinition.FieldDefinition, + }, + directives: [], + interfaces: [], + name: 'addPerson', + type: { + fieldType: { + name: 'String', + type: Options.name, + }, + }, + }, + ], + data: { + type: TypeDefinition.ObjectTypeDefinition, + }, + directives: [], + interfaces: [], + type: { + fieldType: { + type: Options.name, + name: 'type', + }, + }, + }), + ); + matchExact(`Mutation: { addPerson: { CreatePerson: "CreatePerson" }}`); + }); +}); diff --git a/src/TreeToTS/templates/returnedPropTypes.ts b/src/TreeToTS/templates/returnedPropTypes/index.ts similarity index 90% rename from src/TreeToTS/templates/returnedPropTypes.ts rename to src/TreeToTS/templates/returnedPropTypes/index.ts index 15be727c..da63d5a8 100644 --- a/src/TreeToTS/templates/returnedPropTypes.ts +++ b/src/TreeToTS/templates/returnedPropTypes/index.ts @@ -12,7 +12,10 @@ const resolveArg = (f: ParserField, tabs = '\t\t\t'): string => { }; const resolveField = (f: ParserField): string => { const { args, name } = f; - return `\t\t${name}:{\n${args.map((a) => resolveArg(a)).join(',\n')}\n\t\t}`; + return `\t\t${name}:{\n${args + .map((a) => resolveArg(a)) + .filter((f) => !!f) + .join(',\n')}\n\t\t}`; }; export const resolvePropTypeFromRoot = (i: ParserField): string => { @@ -40,5 +43,6 @@ export const resolvePropTypeFromRoot = (i: ParserField): string => { return `\t${i.name}:{\n${i.args .filter((f) => f.args && f.args.length) .map((f) => resolveField(f)) + .filter((f) => !!f) .join(',\n')}\n\t}`; }; From 7e0861dd92585a5c75c840e61a01f5460375dac9 Mon Sep 17 00:00:00 2001 From: aexol Date: Tue, 12 Apr 2022 16:07:05 +0200 Subject: [PATCH 10/74] :bug: Fixed ops gen --- examples/typescript-node/src/zeus/apollo.ts | 18 +- examples/typescript-node/src/zeus/const.ts | 64 +- examples/typescript-node/src/zeus/index.ts | 696 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- examples/typescript-node/zeus.graphql | 96 +-- package.json | 4 +- src/TreeToTS/index.ts | 51 +- .../templates/operations/index.spec.ts | 52 ++ src/TreeToTS/templates/operations/index.ts | 33 + 9 files changed, 556 insertions(+), 482 deletions(-) create mode 100644 src/TreeToTS/templates/operations/index.spec.ts create mode 100644 src/TreeToTS/templates/operations/index.ts diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index dd397ecb..27fa5887 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,17 +1,10 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; -import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client'; -import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +import { gql, useSubscription, useQuery, useLazyQuery, useMutation } from '@apollo/client'; +import type { SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions, MutationHookOptions } from '@apollo/client'; -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationOptions?: OperationOptions, -) { - return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); -} export function useTypedSubscription( subscription: Z | ValueTypes[O], options?: SubscriptionHookOptions>, @@ -33,3 +26,10 @@ export function useTypedLazyQuery( ) { return useLazyQuery>(gql(Zeus("query",LazyQuery, operationOptions)), options); } +export function useTypedMutation( + mutation: Z | ValueTypes[O], + options?: MutationHookOptions>, + operationOptions?: OperationOptions, +) { + return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); +} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 2ef950be..a4c69d5d 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -4,12 +4,6 @@ export const AllTypesProps: Record = { createCard:{ skills:"SpecialSkills" }, - Mutation:{ - addCard:{ - card:"createCard" - } - }, - SpecialSkills: true, Query:{ cardById:{ @@ -19,25 +13,43 @@ export const AllTypesProps: Record = { attack:{ } + }, + SpecialSkills: true, + Mutation:{ + addCard:{ + card:"createCard" + } } } export const ReturnTypes: Record = { - EffectCard:{ - effectSize:"Float", + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, + CardStack:{ + cards:"Card", name:"String" }, - Mutation:{ - addCard:"Card" + Nameable:{ + "...on CardStack": "CardStack", + "...on SpecialCard": "SpecialCard", + "...on EffectCard": "EffectCard", + "...on Card": "Card", + name:"String" + }, + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" }, SpecialCard:{ effect:"String", name:"String" }, - S3Object:{ - bucket:"String", - key:"String", - region:"String" + EffectCard:{ + effectSize:"Float", + name:"String" }, Subscription:{ deck:"Card" @@ -50,21 +62,6 @@ export const ReturnTypes: Record = { myStacks:"CardStack", nameables:"Nameable" }, - Nameable:{ - "...on EffectCard": "EffectCard", - "...on SpecialCard": "SpecialCard", - "...on CardStack": "CardStack", - "...on Card": "Card", - name:"String" - }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, - CardStack:{ - cards:"Card", - name:"String" - }, Card:{ Attack:"Int", Children:"Int", @@ -76,11 +73,14 @@ export const ReturnTypes: Record = { image:"String", name:"String", skills:"SpecialSkills" + }, + Mutation:{ + addCard:"Card" } } export const Ops = { - query: "Query" as const, - mutation: "Mutation" as const, - subscription: "Subscription" as const +subscription: "Subscription" as const, + query: "Query" as const, + mutation: "Mutation" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 8f2b33e8..f4ff6ab4 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -1,44 +1,55 @@ /* eslint-disable */ import { AllTypesProps, ReturnTypes, Ops } from './const'; -export const HOST = 'https://faker.graphqleditor.com/a-team/olympus/graphql'; +export const HOST = "https://faker.graphqleditor.com/a-team/olympus/graphql" + const handleFetchResponse = ( - response: Parameters['then']>[0], Function>>[0], + response: Parameters['then']>[0], Function>>[0] ): Promise => { if (!response.ok) { return new Promise((_, reject) => { - response - .text() - .then((text) => { - try { - reject(JSON.parse(text)); - } catch (err) { - reject(text); - } - }) - .catch(reject); + response.text().then(text => { + try { reject(JSON.parse(text)); } + catch (err) { reject(text); } + }).catch(reject); }); } return response.json(); }; export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { - let fetchFunction; - let queryString = query; - let fetchOptions = options[1] || {}; - try { - fetchFunction = require('node-fetch'); - } catch (error) { - throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); - } - if (fetchOptions.method && fetchOptions.method === 'GET') { + let fetchFunction; + let queryString = query; + let fetchOptions = options[1] || {}; try { - queryString = require('querystring').stringify(query); + fetchFunction = require('node-fetch'); } catch (error) { - throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); + throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); + } + if (fetchOptions.method && fetchOptions.method === 'GET') { + try { + queryString = require('querystring').stringify(query); + } catch (error) { + throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); + } + return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) + .then(handleFetchResponse) + .then((response: GraphQLResponse) => { + if (response.errors) { + throw new GraphQLError(response); + } + return response.data; + }); } - return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) + return fetchFunction(`${options[0]}`, { + body: JSON.stringify({ query: queryString, variables }), + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + ...fetchOptions + }) .then(handleFetchResponse) .then((response: GraphQLResponse) => { if (response.errors) { @@ -46,57 +57,48 @@ export const apiFetch = (options: fetchOptions) => (query: string, variables: Re } return response.data; }); - } - return fetchFunction(`${options[0]}`, { - body: JSON.stringify({ query: queryString, variables }), - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - ...fetchOptions, - }) - .then(handleFetchResponse) - .then((response: GraphQLResponse) => { - if (response.errors) { - throw new GraphQLError(response); - } - return response.data; - }); -}; + }; + + +export const apiSubscription = (options: chainOptions) => ( + query: string, + ) => { + try { + const WebSocket = require('ws'); + const queryString = options[0] + '?query=' + encodeURIComponent(query); + const wsString = queryString.replace('http', 'ws'); + const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; + const webSocketOptions = options[1]?.websocket || [host]; + const ws = new WebSocket(...webSocketOptions); + return { + ws, + on: (e: (args: any) => void) => { + ws.onmessage = (event:any) => { + if(event.data){ + const parsed = JSON.parse(event.data) + const data = parsed.data + return e(data); + } + }; + }, + off: (e: (args: any) => void) => { + ws.onclose = e; + }, + error: (e: (args: any) => void) => { + ws.onerror = e; + }, + open: (e: () => void) => { + ws.onopen = e; + }, + }; + } catch { + throw new Error('No websockets implemented. Please install ws'); + } + }; + + + -export const apiSubscription = (options: chainOptions) => (query: string) => { - try { - const WebSocket = require('ws'); - const queryString = options[0] + '?query=' + encodeURIComponent(query); - const wsString = queryString.replace('http', 'ws'); - const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; - const webSocketOptions = options[1]?.websocket || [host]; - const ws = new WebSocket(...webSocketOptions); - return { - ws, - on: (e: (args: any) => void) => { - ws.onmessage = (event: any) => { - if (event.data) { - const parsed = JSON.parse(event.data); - const data = parsed.data; - return e(data); - } - }; - }, - off: (e: (args: any) => void) => { - ws.onclose = e; - }, - error: (e: (args: any) => void) => { - ws.onerror = e; - }, - open: (e: () => void) => { - ws.onopen = e; - }, - }; - } catch { - throw new Error('No websockets implemented. Please install ws'); - } -}; export const InternalsBuildQuery = ( props: AllTypesPropsType, @@ -141,6 +143,15 @@ export const InternalsBuildQuery = ( return ibb; }; + + + + + + + + + export const Thunder = (fn: FetchFunction) => < O extends keyof typeof Ops, R extends keyof ValueTypes = GenericOperation @@ -173,6 +184,11 @@ export const Selector = (key: T) => ZeusSelect (t: 'query' | 'mutation' | 'subscription') => ( o: Record, options?: OperationOptions, @@ -181,6 +197,11 @@ export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation return fn(builder(t, o), options?.variables?.values); }; + + + + + export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => (t: 'query' | 'mutation' | 'subscription') => ( o: Record, options?: OperationOptions, @@ -189,6 +210,10 @@ export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => (t: 'quer return fn(builder(t, o)); }; + + + + export type AllTypesPropsType = { [x: string]: | undefined @@ -260,8 +285,12 @@ export class GraphQLError extends Error { } export type GenericOperation = O extends keyof typeof Ops ? typeof Ops[O] : never; + export const purifyGraphQLKey = (k: string) => k.replace(/\([^)]*\)/g, '').replace(/^[^:]*\:/g, ''); + + + const mapPart = (p: string) => { const [isArg, isField] = p.split('<>'); if (isField) { @@ -377,6 +406,9 @@ export const InternalArgsBuilt = ( return arb; }; + + + export const resolverFor = ( type: T, field: Z, @@ -386,9 +418,13 @@ export const resolverFor = Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, ) => fn as (args?: any, source?: any) => any; + export type SelectionFunction = (t: T | V) => T; export const ZeusSelect = () => ((t: unknown) => t) as SelectionFunction; + + + export type UnwrapPromise = T extends Promise ? R : T; export type ZeusState Promise> = NonNullable>>; export type ZeusHook< @@ -414,7 +450,7 @@ type IsInterfaced, DST> = FlattenArray extends Z [P in keyof SRC]: SRC[P] extends '__union' & infer R ? P extends keyof DST ? IsArray - : Record + : {} : never; }[keyof DST] & { @@ -447,6 +483,7 @@ export type SubscriptionToGraphQL = { open: () => void; }; + export const useZeusVariables = (variables: T) => < Z extends { [P in keyof T]: unknown; @@ -470,6 +507,7 @@ export type VariableInput = { values: Record; }; + export const VariableParameters = (variables: T) => ( values: { // eslint-disable-next-line prettier/prettier @@ -481,269 +519,265 @@ export const VariableParameters = (variables: T) => ( .join(', '); }; -type ZEUS_INTERFACES = GraphQLTypes['Nameable']; -type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; + +type ZEUS_INTERFACES = GraphQLTypes["Nameable"] +type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - /** create card inputs
*/ - ['createCard']: { - /**

How many children the greek god had
*/ - Children?: number | undefined | null; - /** The attack power
*/ - Attack: number; - /** The defense power
*/ - Defense: number; - /** input skills */ - skills?: ValueTypes['SpecialSkills'][]; - /** The name of a card
*/ - name: string; - /** Description of a card
*/ - description: string; - }; - ['EffectCard']: AliasType<{ - effectSize?: boolean; - name?: boolean; - __typename?: boolean; - }>; - ['Mutation']: AliasType<{ - addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; - __typename?: boolean; - }>; - ['SpecialCard']: AliasType<{ - effect?: boolean; - name?: boolean; - __typename?: boolean; - }>; - ['SpecialSkills']: SpecialSkills; - /** Aws S3 File */ - ['S3Object']: AliasType<{ - bucket?: boolean; - key?: boolean; - region?: boolean; - __typename?: boolean; - }>; - ['Subscription']: AliasType<{ - deck?: ValueTypes['Card']; - __typename?: boolean; - }>; - ['Query']: AliasType<{ - cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; - /** Draw a card
*/ - drawCard?: ValueTypes['Card']; - drawChangeCard?: ValueTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards?: ValueTypes['Card']; - myStacks?: ValueTypes['CardStack']; - nameables?: ValueTypes['Nameable']; - __typename?: boolean; - }>; - ['Nameable']: AliasType<{ - name?: boolean; - ['...on EffectCard']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on CardStack']?: Omit; - ['...on Card']?: Omit; - __typename?: boolean; - }>; - ['ChangeCard']: AliasType<{ - ['...on SpecialCard']: ValueTypes['SpecialCard']; - ['...on EffectCard']: ValueTypes['EffectCard']; - __typename?: boolean; - }>; - /** Stack of cards */ - ['CardStack']: AliasType<{ - cards?: ValueTypes['Card']; - name?: boolean; - __typename?: boolean; - }>; - /** Card used in card game
*/ - ['Card']: AliasType<{ - /** The attack power
*/ - Attack?: boolean; - /**
How many children the greek god had
*/ - Children?: boolean; - /** The defense power
*/ - Defense?: boolean; - attack?: [ - { - /** Attacked card/card ids
*/ cardID: string[] | undefined | null; - }, - ValueTypes['Card'], - ]; - /** Put your description here */ - cardImage?: ValueTypes['S3Object']; - /** Description of a card
*/ - description?: boolean; - id?: boolean; - image?: boolean; - /** The name of a card
*/ - name?: boolean; - skills?: boolean; - __typename?: boolean; - }>; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean, + key?:boolean, + region?:boolean, + __typename?: boolean +}>; + /** create card inputs
*/ +["createCard"]: { + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined | null, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: (ValueTypes["SpecialSkills"])[] }; + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean, + __typename?: boolean +}>; + ["Nameable"]:AliasType<{ + name?:boolean; + ['...on CardStack']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; + ['...on Card']?: Omit; + __typename?: boolean +}>; + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean +}>; + ["SpecialCard"]: AliasType<{ + effect?:boolean, + name?:boolean, + __typename?: boolean +}>; + ["EffectCard"]: AliasType<{ + effectSize?:boolean, + name?:boolean, + __typename?: boolean +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean +}>; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], + /** Draw a card
*/ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean +}>; + /** Card used in card game
*/ +["Card"]: AliasType<{ + /** The attack power
*/ + Attack?:boolean, + /**
How many children the greek god had
*/ + Children?:boolean, + /** The defense power
*/ + Defense?:boolean, +attack?: [{ /** Attacked card/card ids
*/ + cardID: (string)[] | undefined | null},ValueTypes["Card"]], + /** Put your description here */ + cardImage?:ValueTypes["S3Object"], + /** Description of a card
*/ + description?:boolean, + id?:boolean, + image?:boolean, + /** The name of a card
*/ + name?:boolean, + skills?:boolean, + __typename?: boolean +}>; + ["SpecialSkills"]:SpecialSkills; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean +}> + } export type ModelTypes = { - /** create card inputs
*/ - ['createCard']: GraphQLTypes['createCard']; - ['EffectCard']: { - effectSize: number; - name: string; - }; - ['Mutation']: { - /** add Card to Cards database
*/ - addCard: GraphQLTypes['Card']; - }; - ['SpecialCard']: { - effect: string; - name: string; - }; - ['SpecialSkills']: GraphQLTypes['SpecialSkills']; - /** Aws S3 File */ - ['S3Object']: { - bucket: string; - key: string; - region: string; - }; - ['Subscription']: { - deck?: Array | undefined; - }; - ['Query']: { - cardById?: GraphQLTypes['Card'] | undefined; - /** Draw a card
*/ - drawCard: GraphQLTypes['Card']; - drawChangeCard: GraphQLTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards: Array; - myStacks?: Array | undefined; - nameables: Array; - }; - ['Nameable']: ModelTypes['EffectCard'] | ModelTypes['SpecialCard'] | ModelTypes['CardStack'] | ModelTypes['Card']; - ['ChangeCard']: ModelTypes['SpecialCard'] | ModelTypes['EffectCard']; - /** Stack of cards */ - ['CardStack']: { - cards?: Array | undefined; - name: string; - }; - /** Card used in card game
*/ - ['Card']: { - /** The attack power
*/ - Attack: number; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The defense power
*/ - Defense: number; - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined; - /** Put your description here */ - cardImage?: GraphQLTypes['S3Object'] | undefined; - /** Description of a card
*/ - description: string; - id: string; - image: string; - /** The name of a card
*/ - name: string; - skills?: Array | undefined; - }; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string +}; + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"]; + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, + name: string }; + ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] | ModelTypes["Card"]; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["SpecialCard"]: { + effect: string, + name: string +}; + ["EffectCard"]: { + effectSize: number, + name: string +}; + ["Subscription"]: { + deck?: Array | undefined +}; + ["Query"]: { + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + /** Card used in card game
*/ +["Card"]: { + /** The attack power
*/ + Attack: number, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The defense power
*/ + Defense: number, + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined, + /** Put your description here */ + cardImage?: GraphQLTypes["S3Object"] | undefined, + /** Description of a card
*/ + description: string, + id: string, + image: string, + /** The name of a card
*/ + name: string, + skills?: Array | undefined +}; + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + ["Mutation"]: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] +} + } export type GraphQLTypes = { - /** create card inputs
*/ - ['createCard']: { - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The attack power
*/ - Attack: number; - /** The defense power
*/ - Defense: number; - /** input skills */ - skills?: Array | undefined; - /** The name of a card
*/ - name: string; - /** Description of a card
*/ - description: string; - }; - ['EffectCard']: { - __typename: 'EffectCard'; - effectSize: number; - name: string; - }; - ['Mutation']: { - __typename: 'Mutation'; - /** add Card to Cards database
*/ - addCard: GraphQLTypes['Card']; - }; - ['SpecialCard']: { - __typename: 'SpecialCard'; - effect: string; - name: string; - }; - ['SpecialSkills']: SpecialSkills; - /** Aws S3 File */ - ['S3Object']: { - __typename: 'S3Object'; - bucket: string; - key: string; - region: string; - }; - ['Subscription']: { - __typename: 'Subscription'; - deck?: Array | undefined; - }; - ['Query']: { - __typename: 'Query'; - cardById?: GraphQLTypes['Card'] | undefined; - /** Draw a card
*/ - drawCard: GraphQLTypes['Card']; - drawChangeCard: GraphQLTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards: Array; - myStacks?: Array | undefined; - nameables: Array; - }; - ['Nameable']: { - __typename: 'EffectCard' | 'SpecialCard' | 'CardStack' | 'Card'; - name: string; - ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; - ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; - ['...on CardStack']: '__union' & GraphQLTypes['CardStack']; - ['...on Card']: '__union' & GraphQLTypes['Card']; - }; - ['ChangeCard']: { - __typename: 'SpecialCard' | 'EffectCard'; - ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; - ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; - }; - /** Stack of cards */ - ['CardStack']: { - __typename: 'CardStack'; - cards?: Array | undefined; - name: string; - }; - /** Card used in card game
*/ - ['Card']: { - __typename: 'Card'; - /** The attack power
*/ - Attack: number; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The defense power
*/ - Defense: number; - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined; - /** Put your description here */ - cardImage?: GraphQLTypes['S3Object'] | undefined; - /** Description of a card
*/ - description: string; - id: string; - image: string; - /** The name of a card
*/ - name: string; - skills?: Array | undefined; - }; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string }; -export const enum SpecialSkills { - THUNDER = 'THUNDER', - RAIN = 'RAIN', - FIRE = 'FIRE', + /** create card inputs
*/ +["createCard"]: { + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined +}; + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, + name: string +}; + ["Nameable"]: { + __typename:"CardStack" | "SpecialCard" | "EffectCard" | "Card", + name: string + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; +}; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string +}; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined +}; + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + /** Card used in card game
*/ +["Card"]: { + __typename: "Card", + /** The attack power
*/ + Attack: number, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The defense power
*/ + Defense: number, + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined, + /** Put your description here */ + cardImage?: GraphQLTypes["S3Object"] | undefined, + /** Description of a card
*/ + description: string, + id: string, + image: string, + /** The name of a card
*/ + name: string, + skills?: Array | undefined +}; + ["SpecialSkills"]: SpecialSkills; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] } + } +export const enum SpecialSkills { + THUNDER = "THUNDER", + RAIN = "RAIN", + FIRE = "FIRE" +} \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 0c742c2d..77ddaaaf 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useMutation, useQuery } from 'react-query'; -import type { UseMutationOptions, UseQueryOptions } from 'react-query'; +import { useQuery, useMutation } from 'react-query'; +import type { UseQueryOptions, UseMutationOptions } from 'react-query'; -export function useTypedMutation>( - mutationKey: string | unknown[], - mutation: TData | ValueTypes[O], - options?: Omit, 'mutationKey' | 'mutationFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); -} export function useTypedQuery>( queryKey: string | unknown[], query: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); } +export function useTypedMutation>( + mutationKey: string | unknown[], + mutation: TData | ValueTypes[O], + options?: Omit, 'mutationKey' | 'mutationFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 3e42de8b..f926775c 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,5 +1,23 @@ +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! + + """""" + key: String! + + """""" + region: String! +} + """create card inputs
""" input createCard { + """The name of a card
""" + name: String! + + """Description of a card
""" + description: String! + """
How many children the greek god had
""" Children: Int @@ -11,29 +29,26 @@ input createCard { """input skills""" skills: [SpecialSkills!] - - """The name of a card
""" - name: String! - - """Description of a card
""" - description: String! } -"""""" -type EffectCard implements Nameable { +"""Stack of cards""" +type CardStack implements Nameable { """""" - effectSize: Float! + cards: [Card!] """""" name: String! } """""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! +interface Nameable { + """""" + name: String! } +"""""" +union ChangeCard = SpecialCard | EffectCard + """""" type SpecialCard implements Nameable { """""" @@ -44,27 +59,12 @@ type SpecialCard implements Nameable { } """""" -enum SpecialSkills { - """Lower enemy defense -5
""" - THUNDER - - """Attack multiple Cards at once
""" - RAIN - - """50% chance to avoid any attack
""" - FIRE -} - -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - +type EffectCard implements Nameable { """""" - key: String! + effectSize: Float! """""" - region: String! + name: String! } """""" @@ -94,24 +94,6 @@ type Query { nameables: [Nameable!]! } -"""""" -interface Nameable { - """""" - name: String! -} - -"""""" -union ChangeCard = SpecialCard | EffectCard - -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - - """""" - name: String! -} - """Card used in card game
""" type Card implements Nameable { """The attack power
""" @@ -148,6 +130,24 @@ type Card implements Nameable { skills: [SpecialSkills!] } +"""""" +enum SpecialSkills { + """Lower enemy defense -5
""" + THUNDER + + """Attack multiple Cards at once
""" + RAIN + + """50% chance to avoid any attack
""" + FIRE +} + +"""""" +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! +} + schema{ query: Query, mutation: Mutation, diff --git a/package.json b/package.json index ec2b221a..b39db00f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-1", + "version": "5.0.0-rc-2", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", @@ -15,7 +15,7 @@ "start": "ttsc --build tsconfig.build.json --watch", "test": "jest", "cli": "node ./lib/CLI/index.js", - "examples-generate": "npm run generate-typescript-node && npm run generate-typescript-node-big", + "examples-generate": "npm run generate-typescript-node", "generate-typescript-node": "node ./lib/CLI/index.js https://faker.graphqleditor.com/a-team/olympus/graphql examples/typescript-node/src --ts --n -g examples/typescript-node/zeus.graphql --apollo --reactQuery --stuccoSubscriptions", "run-example-typescript-node": "./run-example.sh examples/typescript-node", "lint": "ttsc && eslint \"./src/**/*.{ts,js}\" --quiet --fix", diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index d98525e4..b10ed0bf 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -1,8 +1,9 @@ import { resolveModelTypes } from '@/TreeToTS/templates/modelTypes'; +import { resolveOperations } from '@/TreeToTS/templates/operations'; import { resolveInterfaces } from '@/TreeToTS/templates/returnedTypes/interfaces'; import { resolveUnions } from '@/TreeToTS/templates/returnedTypes/unions'; import { resolveValueTypes } from '@/TreeToTS/templates/valueTypes'; -import { ParserField, OperationType, ParserTree, TypeDefinition } from 'graphql-js-tree'; +import { ParserTree, TypeDefinition } from 'graphql-js-tree'; import { Environment } from '../Models'; import { resolvePropTypeFromRoot } from './templates/returnedPropTypes'; import { resolveReturnFromRoot } from './templates/returnedReturns'; @@ -30,48 +31,9 @@ const disableLintersComments = ['eslint-disable']; * Class Responsible for generating typescript and javascript code */ export class TreeToTS { - static findOperations(nodes: ParserField[], ot: OperationType): OperationDetails { - const node: ParserField = nodes.filter((n) => n.type.operations && n.type.operations.find((o) => o === ot))[0]; - - if (node === undefined) { - return { operationName: undefined, operations: [] }; - } - - const args = node.args ? node.args : []; - - const operations = args.map((f: { name: string }) => f.name); - - return { operationName: { name: node.name, type: 'operation' }, operations }; - } - static resolveOperations(tree: ParserTree): ResolvedOperations { - const nodes = tree.nodes; - return { - query: TreeToTS.findOperations(nodes, OperationType.query), - mutation: TreeToTS.findOperations(nodes, OperationType.mutation), - subscription: TreeToTS.findOperations(nodes, OperationType.subscription), - }; - } static resolveBasisHeader(): string { return `${disableLintersComments.map((rule) => `/* ${rule} */\n`).join('')}\n`; } - static resolveBasisCodeJavascript(tree: ParserTree): string { - const propTypes = `export const AllTypesProps = {\n${tree.nodes - .map(resolvePropTypeFromRoot) - .filter((pt) => pt) - .join(',\n')}\n}`; - const returnTypes = `export const ReturnTypes = {\n${tree.nodes - .map((f) => - resolveReturnFromRoot( - f, - f.data.type === TypeDefinition.InterfaceTypeDefinition - ? tree.nodes.filter((n) => n.interfaces?.includes(f.name)).map((n) => n.name) - : undefined, - ), - ) - .filter((pt) => pt) - .join(',\n')}\n}`; - return propTypes.concat('\n\n').concat(returnTypes); - } static resolveBasisCode(tree: ParserTree): string { const propTypes = `export const AllTypesProps: Record = {\n${tree.nodes .map(resolvePropTypeFromRoot) @@ -88,14 +50,7 @@ export class TreeToTS { ) .filter((pt) => pt) .join(',\n')}\n}`; - const Ops = TreeToTS.resolveOperations(tree); - const opsString = `export const Ops = { - query: ${Ops.query.operationName?.name ? `"${Ops.query.operationName.name}" as const` : `never`}, - mutation: ${Ops.mutation.operationName?.name ? `"${Ops.mutation.operationName.name}" as const` : `never`}, - subscription: ${ - Ops.subscription.operationName?.name ? `"${Ops.subscription.operationName.name}" as const` : `never` - } -}`; + const opsString = resolveOperations(tree); return propTypes.concat('\n\n').concat(returnTypes).concat('\n\n').concat(opsString); } static resolveBasisTypes(tree: ParserTree): string { diff --git a/src/TreeToTS/templates/operations/index.spec.ts b/src/TreeToTS/templates/operations/index.spec.ts new file mode 100644 index 00000000..b9b3a92e --- /dev/null +++ b/src/TreeToTS/templates/operations/index.spec.ts @@ -0,0 +1,52 @@ +import { operationNodeToKV, resolveOperations } from '@/TreeToTS/templates/operations'; +import { replSpace } from '@/__tests__/TestUtils'; +import { OperationType, Options, TypeDefinition } from 'graphql-js-tree'; + +describe('Test operations string generation', () => { + it('Generates correct query string', () => { + const matchExact = replSpace( + operationNodeToKV({ + args: [], + data: { + type: TypeDefinition.ObjectTypeDefinition, + }, + directives: [], + interfaces: [], + name: 'Queryy', + type: { + fieldType: { + type: Options.name, + name: 'type', + }, + operations: [OperationType.query], + }, + }), + ); + matchExact(`query: "Queryy" as const`); + }); + it('Generates correct object of Ops', () => { + const matchExact = replSpace( + resolveOperations({ + nodes: [ + { + args: [], + data: { + type: TypeDefinition.ObjectTypeDefinition, + }, + directives: [], + interfaces: [], + name: 'Queryy', + type: { + fieldType: { + type: Options.name, + name: 'type', + }, + operations: [OperationType.query], + }, + }, + ], + }), + ); + matchExact(`const Ops = {query: "Queryy" as const}`); + }); +}); diff --git a/src/TreeToTS/templates/operations/index.ts b/src/TreeToTS/templates/operations/index.ts new file mode 100644 index 00000000..ca56e93c --- /dev/null +++ b/src/TreeToTS/templates/operations/index.ts @@ -0,0 +1,33 @@ +import { ParserField, ParserTree } from 'graphql-js-tree'; + +export interface OperationName { + name: string; + type: 'operation'; +} + +export interface ResolvedOperations { + query: OperationDetails; + mutation: OperationDetails; + subscription: OperationDetails; +} + +export interface OperationDetails { + operationName?: OperationName; + operations: string[]; +} + +export const operationNodeToKV = (node: ParserField) => { + if (node.type.operations && node.type.operations.length > 0) { + const operationType = node.type.operations[0]; + return `${operationType}: "${node.name}" as const`; + } + return ''; +}; + +export const resolveOperations = (tree: ParserTree) => { + const opsStrings = tree.nodes.map(operationNodeToKV).filter((n) => !!n); + const opsString = `export const Ops = { +${opsStrings.join(',\n\t')} +}`; + return opsString; +}; From 0e5e5e43bf9ee94a49147fb3d5d176a1434bcdc7 Mon Sep 17 00:00:00 2001 From: aexol Date: Tue, 12 Apr 2022 16:43:39 +0200 Subject: [PATCH 11/74] :white_check_mark: Moar tests --- package.json | 2 +- src/TreeToTS/templates/valueTypes/arg.spec.ts | 61 +++++++++++++++++++ src/TreeToTS/templates/valueTypes/arg.ts | 2 +- 3 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 src/TreeToTS/templates/valueTypes/arg.spec.ts diff --git a/package.json b/package.json index b39db00f..d69006e6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-2", + "version": "5.0.0-rc-3", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/TreeToTS/templates/valueTypes/arg.spec.ts b/src/TreeToTS/templates/valueTypes/arg.spec.ts new file mode 100644 index 00000000..1081b763 --- /dev/null +++ b/src/TreeToTS/templates/valueTypes/arg.spec.ts @@ -0,0 +1,61 @@ +import { resolveValueFieldType } from '@/TreeToTS/templates/valueTypes/arg'; +import { Options } from 'graphql-js-tree'; + +describe('Test type arg generation', () => { + test('Required arg generation', () => { + const resolvedString = resolveValueFieldType('Person', { + type: Options.required, + nest: { + type: Options.name, + name: 'Person', + }, + }); + expect(resolvedString).toEqual(`Person`); + }); + test('Optional arg generation', () => { + const resolvedString = resolveValueFieldType('Person', { + type: Options.name, + name: 'Person', + }); + expect(resolvedString).toEqual(`Person | undefined | null`); + }); + test('Optional Array Optional arg generation', () => { + const resolvedString = resolveValueFieldType('Person', { + type: Options.array, + nest: { + type: Options.name, + name: 'Person', + }, + }); + expect(resolvedString).toEqual(`Array | undefined | null`); + }); + test('Required Array Optional arg generation', () => { + const resolvedString = resolveValueFieldType('Person', { + type: Options.required, + nest: { + type: Options.array, + nest: { + type: Options.name, + name: 'Person', + }, + }, + }); + expect(resolvedString).toEqual(`Array`); + }); + test('Required Array Required arg generation', () => { + const resolvedString = resolveValueFieldType('Person', { + type: Options.required, + nest: { + type: Options.array, + nest: { + type: Options.required, + nest: { + type: Options.name, + name: 'Person', + }, + }, + }, + }); + expect(resolvedString).toEqual(`Array`); + }); +}); diff --git a/src/TreeToTS/templates/valueTypes/arg.ts b/src/TreeToTS/templates/valueTypes/arg.ts index 7aa468ac..f13e4676 100644 --- a/src/TreeToTS/templates/valueTypes/arg.ts +++ b/src/TreeToTS/templates/valueTypes/arg.ts @@ -40,7 +40,7 @@ export const resolveValueFieldType = ( return resolveValueFieldType( name, fType.nest, - isRequired ? (x) => `(${fn(x)})[] | undefined | null` : (x) => `(${fn(x)})[]`, + isRequired ? (x) => `Array<${fn(x)}>` : (x) => `Array<${fn(x)}> | undefined | null`, false, ); } From bb257f16cb373733cbf70c6c69b4b5d8692a915e Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 13 Apr 2022 17:02:11 +0200 Subject: [PATCH 12/74] :sparkles: new aliasing --- doc/.purplehaze/ssg/markdown.js | 8 +- doc/out/page/graphql/aliases.html | 18 +- doc/out/page/graphql/variables.html | 33 +- doc/out/page/library.html | 4 +- doc/out/page/spec.html | 4 +- doc/out/ssg/markdown.js | 8 +- doc/src/markdown/basics/spec.md | 2 +- doc/src/markdown/basics/use-as-a-library.md | 2 - doc/src/markdown/graphql/aliases.md | 16 +- doc/src/markdown/graphql/variables.md | 11 +- doc/src/purplehaze.d.ts | 5 +- doc/src/ssg/markdown.ts | 8 +- examples/typescript-node/src/zeus/index.ts | 696 +++++++++--------- package.json | 2 +- src/CLI/libBuilder.ts | 11 +- .../functions/new/purifyGraphQLKey.spec.ts | 12 + src/TreeToTS/functions/new/types.ts | 2 +- 17 files changed, 403 insertions(+), 439 deletions(-) create mode 100644 src/TreeToTS/functions/new/purifyGraphQLKey.spec.ts diff --git a/doc/.purplehaze/ssg/markdown.js b/doc/.purplehaze/ssg/markdown.js index c6da306c..e26d89ea 100644 --- a/doc/.purplehaze/ssg/markdown.js +++ b/doc/.purplehaze/ssg/markdown.js @@ -39,7 +39,7 @@ var htmlContent = { "excerpt": "" }, "markdown/graphql/variables.md": { - "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, $ } from './zeus';\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $`card`,\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables: {\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n },\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: {\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n },\n});\n```\n", + "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", "data": { "link": "graphql/variables", "title": "Variables", @@ -69,7 +69,7 @@ var htmlContent = { "excerpt": "" }, "markdown/graphql/aliases.md": { - "content": '\n## GraphQL Aliases\n\nZeus supports declaring aliases \u{1F978}\n\n```ts\nconst aliasedQueryExecute = await chain(\'query\')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: [\'1\'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "listCards": [\n {\n "atak": {\n "attack": [\n {\n "name": "Zelma",\n "description": "Central"\n }\n ]\n }\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak.attack);\n```\n', + "content": '\n## GraphQL Aliases\n\nZeus supports declaring aliases \u{1F978}\n\n```ts\nconst aliasedQueryExecute = await chain(\'query\')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: [\'1\'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "listCards": [\n {\n "atak": [\n {\n "name": "Zelma",\n "description": "Central"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n', "data": { "link": "graphql/aliases", "title": "Aliases", @@ -79,7 +79,7 @@ var htmlContent = { "excerpt": "" }, "markdown/basics/use-as-a-library.md": { - "content": "\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n hello: String!\n}\nschema{\n query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n\nconst jsDefinition = TreeToTS.javascript(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n // Use schema content here\n});\n```\n", + "content": "\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n hello: String!\n}\nschema{\n query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n // Use schema content here\n});\n```\n", "data": { "link": "library", "title": "Use as a library", @@ -89,7 +89,7 @@ var htmlContent = { "excerpt": "" }, "markdown/basics/spec.md": { - "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING][OPERATION_NAME]\n```\n", + "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n", "data": { "link": "spec", "title": "Specification", diff --git a/doc/out/page/graphql/aliases.html b/doc/out/page/graphql/aliases.html index abcc4781..29f6f299 100644 --- a/doc/out/page/graphql/aliases.html +++ b/doc/out/page/graphql/aliases.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Aliases\n\nZeus supports declaring aliases 🥸\n\n```ts\nconst aliasedQueryExecute = await chain('query')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: ['1'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"listCards\": [\n {\n \"atak\": {\n \"attack\": [\n {\n \"name\": \"Zelma\",\n \"description\": \"Central\"\n }\n ]\n }\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak.attack);\n```\n","data":{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/aliases","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Aliases\n\nZeus supports declaring aliases 🥸\n\n```ts\nconst aliasedQueryExecute = await chain('query')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: ['1'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"listCards\": [\n {\n \"atak\": [\n {\n \"name\": \"Zelma\",\n \"description\": \"Central\"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n","data":{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/aliases","prefix":""}),document.body) { "listCards": [ { - "atak": { - "attack": [ - { - "name": "Zelma", - "description": "Central" - } - ] - } + "atak": [ + { + "name": "Zelma", + "description": "Central" + } + ] } ] }

Now you can access properties type-safe like this

-
aliasedQueryExecute.listCards.map((c) => c.atak.attack);
+
aliasedQueryExecute.listCards.map((c) => c.atak);
 
diff --git a/doc/out/page/graphql/variables.html b/doc/out/page/graphql/variables.html index bca152b0..50f41ff0 100644 --- a/doc/out/page/graphql/variables.html +++ b/doc/out/page/graphql/variables.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, $ } from './zeus';\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $`card`,\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables: {\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n },\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: {\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n },\n});\n```\n","data":{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/variables","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n","data":{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/variables","prefix":""}),document.body)

GraphQL Variables

It's simple to perform queries with variables by importing and using the $ function from the Zeus output and calling it with the variable name in backticks.

-
import { Gql, $ } from './zeus';
+
import { Gql, useZeusVariables } from './zeus';
+const variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({
+  card: {
+    Attack: 2,
+    Defense: 3,
+    description: 'Lord of the mountains',
+    name: 'Golrog',
+  },
+});
+const { $ } = variables;
 
 const addCardResult = await Gql('mutation')(
   {
     addCard: [
       {
-        card: $`card`,
+        card: $('card'),
       },
       {
         id: true,
@@ -47,14 +56,7 @@
     ],
   },
   {
-    variables: {
-      card: {
-        Attack: 2,
-        Defense: 3,
-        description: 'Lord of the mountains',
-        name: 'Golrog',
-      },
-    },
+    variables,
   },
 );
 
@@ -62,14 +64,7 @@
const [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });
 
 await addCard({
-  variables: {
-    card: {
-      Attack: 2,
-      Defense: 3,
-      description: 'Lord of the mountains',
-      name: 'Golrog',
-    },
-  },
+  variables: variables.values,
 });
 
diff --git a/doc/out/page/library.html b/doc/out/page/library.html index ffbf4b0b..90af74d9 100644 --- a/doc/out/page/library.html +++ b/doc/out/page/library.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n hello: String!\n}\nschema{\n query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n\nconst jsDefinition = TreeToTS.javascript(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n // Use schema content here\n});\n```\n","data":{"link":"library","title":"Use as a library","order":5,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"library","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n hello: String!\n}\nschema{\n query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n // Use schema content here\n});\n```\n","data":{"link":"library","title":"Use as a library","order":5,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"library","prefix":""}),document.body) ; const typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents)); - -const jsDefinition = TreeToTS.javascript(Parser.parse(schemaFileContents));

Dynamically Fetch Schema

This is useful when you need your schema fetched from your GraphQL endpoint in-code

diff --git a/doc/out/page/spec.html b/doc/out/page/spec.html index 1e81d9c6..dc81a0b4 100644 --- a/doc/out/page/spec.html +++ b/doc/out/page/spec.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING][OPERATION_NAME]\n```\n","data":{"link":"spec","title":"Specification","order":4,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"spec","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n","data":{"link":"spec","title":"Specification","order":4,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"spec","prefix":""}),document.body) Use Alias Spec }

Access aliased operation type-safe

-
PROMISE_RETURNING_OBJECT[ALIAS_STRING][OPERATION_NAME]
+
PROMISE_RETURNING_OBJECT[ALIAS_STRING]
 
diff --git a/doc/out/ssg/markdown.js b/doc/out/ssg/markdown.js index c6da306c..e26d89ea 100644 --- a/doc/out/ssg/markdown.js +++ b/doc/out/ssg/markdown.js @@ -39,7 +39,7 @@ var htmlContent = { "excerpt": "" }, "markdown/graphql/variables.md": { - "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, $ } from './zeus';\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $`card`,\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables: {\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n },\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: {\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n },\n});\n```\n", + "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", "data": { "link": "graphql/variables", "title": "Variables", @@ -69,7 +69,7 @@ var htmlContent = { "excerpt": "" }, "markdown/graphql/aliases.md": { - "content": '\n## GraphQL Aliases\n\nZeus supports declaring aliases \u{1F978}\n\n```ts\nconst aliasedQueryExecute = await chain(\'query\')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: [\'1\'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "listCards": [\n {\n "atak": {\n "attack": [\n {\n "name": "Zelma",\n "description": "Central"\n }\n ]\n }\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak.attack);\n```\n', + "content": '\n## GraphQL Aliases\n\nZeus supports declaring aliases \u{1F978}\n\n```ts\nconst aliasedQueryExecute = await chain(\'query\')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: [\'1\'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "listCards": [\n {\n "atak": [\n {\n "name": "Zelma",\n "description": "Central"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n', "data": { "link": "graphql/aliases", "title": "Aliases", @@ -79,7 +79,7 @@ var htmlContent = { "excerpt": "" }, "markdown/basics/use-as-a-library.md": { - "content": "\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n hello: String!\n}\nschema{\n query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n\nconst jsDefinition = TreeToTS.javascript(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n // Use schema content here\n});\n```\n", + "content": "\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n hello: String!\n}\nschema{\n query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n // Use schema content here\n});\n```\n", "data": { "link": "library", "title": "Use as a library", @@ -89,7 +89,7 @@ var htmlContent = { "excerpt": "" }, "markdown/basics/spec.md": { - "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING][OPERATION_NAME]\n```\n", + "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n", "data": { "link": "spec", "title": "Specification", diff --git a/doc/src/markdown/basics/spec.md b/doc/src/markdown/basics/spec.md index 6b2cc959..a2825d58 100644 --- a/doc/src/markdown/basics/spec.md +++ b/doc/src/markdown/basics/spec.md @@ -63,5 +63,5 @@ RETURN_PARAMS = { Access aliased operation type-safe ``` -PROMISE_RETURNING_OBJECT[ALIAS_STRING][OPERATION_NAME] +PROMISE_RETURNING_OBJECT[ALIAS_STRING] ``` diff --git a/doc/src/markdown/basics/use-as-a-library.md b/doc/src/markdown/basics/use-as-a-library.md index 1acb08bd..a6ea008f 100644 --- a/doc/src/markdown/basics/use-as-a-library.md +++ b/doc/src/markdown/basics/use-as-a-library.md @@ -23,8 +23,6 @@ schema{ `; const typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents)); - -const jsDefinition = TreeToTS.javascript(Parser.parse(schemaFileContents)); ``` ## Dynamically Fetch Schema diff --git a/doc/src/markdown/graphql/aliases.md b/doc/src/markdown/graphql/aliases.md index 2d9cb9e3..9934c694 100644 --- a/doc/src/markdown/graphql/aliases.md +++ b/doc/src/markdown/graphql/aliases.md @@ -33,14 +33,12 @@ Response: { "listCards": [ { - "atak": { - "attack": [ - { - "name": "Zelma", - "description": "Central" - } - ] - } + "atak": [ + { + "name": "Zelma", + "description": "Central" + } + ] } ] } @@ -49,5 +47,5 @@ Response: Now you can access properties type-safe like this ```javascript -aliasedQueryExecute.listCards.map((c) => c.atak.attack); +aliasedQueryExecute.listCards.map((c) => c.atak); ``` diff --git a/doc/src/markdown/graphql/variables.md b/doc/src/markdown/graphql/variables.md index 1af537f4..2f59d582 100644 --- a/doc/src/markdown/graphql/variables.md +++ b/doc/src/markdown/graphql/variables.md @@ -10,17 +10,16 @@ category: GraphQL It's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks. ```ts -import { Gql, variablizer } from './zeus'; -const variables = { +import { Gql, useZeusVariables } from './zeus'; +const variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({ card: { Attack: 2, Defense: 3, description: 'Lord of the mountains', name: 'Golrog', }, -}; - -const $ = variablizer(variables); +}); +const { $ } = variables; const addCardResult = await Gql('mutation')( { @@ -56,6 +55,6 @@ Note: The mutation function created by the Zeus versions of React Hooks like the const [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation }); await addCard({ - variables, + variables: variables.values, }); ``` diff --git a/doc/src/purplehaze.d.ts b/doc/src/purplehaze.d.ts index 6d85d816..ae81d6b7 100644 --- a/doc/src/purplehaze.d.ts +++ b/doc/src/purplehaze.d.ts @@ -15,7 +15,7 @@ declare const ssg: {"envs": {"SHELL": string; "LC_ADDRESS": string; "LC_NAME": string; "SSH_AUTH_SOCK": string; -"BREAKPAD_DUMP_LOCATION": string; +"COLOR": string; "DESKTOP_SESSION": string; "LC_MONETARY": string; "SSH_AGENT_PID": string; @@ -43,10 +43,12 @@ declare const ssg: {"envs": {"SHELL": string; "LC_PAPER": string; "LS_COLORS": string; "XDG_CURRENT_DESKTOP": string; +"VTE_VERSION": string; "FORCE_COLOR": string; "DISABLE_WAYLAND": string; "GIT_ASKPASS": string; "XDG_SEAT_PATH": string; +"GNOME_TERMINAL_SCREEN": string; "SAVEHIST": string; "INIT_CWD": string; "CHROME_DESKTOP": string; @@ -59,6 +61,7 @@ declare const ssg: {"envs": {"SHELL": string; "ZSH": string; "USER": string; "VSCODE_GIT_IPC_HANDLE": string; +"GNOME_TERMINAL_SERVICE": string; "DISPLAY": string; "SHLVL": string; "NVM_CD_FLAGS": string; diff --git a/doc/src/ssg/markdown.ts b/doc/src/ssg/markdown.ts index c704d337..ad40aca2 100644 --- a/doc/src/ssg/markdown.ts +++ b/doc/src/ssg/markdown.ts @@ -38,7 +38,7 @@ export const htmlContent = { "excerpt": "" }, "markdown/graphql/variables.md": { - "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, $ } from './zeus';\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $`card`,\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables: {\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n },\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: {\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n },\n});\n```\n", + "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", "data": { "link": "graphql/variables", "title": "Variables", @@ -68,7 +68,7 @@ export const htmlContent = { "excerpt": "" }, "markdown/graphql/aliases.md": { - "content": "\n## GraphQL Aliases\n\nZeus supports declaring aliases 🥸\n\n```ts\nconst aliasedQueryExecute = await chain('query')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: ['1'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"listCards\": [\n {\n \"atak\": {\n \"attack\": [\n {\n \"name\": \"Zelma\",\n \"description\": \"Central\"\n }\n ]\n }\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak.attack);\n```\n", + "content": "\n## GraphQL Aliases\n\nZeus supports declaring aliases 🥸\n\n```ts\nconst aliasedQueryExecute = await chain('query')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: ['1'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"listCards\": [\n {\n \"atak\": [\n {\n \"name\": \"Zelma\",\n \"description\": \"Central\"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n", "data": { "link": "graphql/aliases", "title": "Aliases", @@ -78,7 +78,7 @@ export const htmlContent = { "excerpt": "" }, "markdown/basics/use-as-a-library.md": { - "content": "\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n hello: String!\n}\nschema{\n query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n\nconst jsDefinition = TreeToTS.javascript(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n // Use schema content here\n});\n```\n", + "content": "\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n hello: String!\n}\nschema{\n query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n // Use schema content here\n});\n```\n", "data": { "link": "library", "title": "Use as a library", @@ -88,7 +88,7 @@ export const htmlContent = { "excerpt": "" }, "markdown/basics/spec.md": { - "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING][OPERATION_NAME]\n```\n", + "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n", "data": { "link": "spec", "title": "Specification", diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index f4ff6ab4..cd57b268 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -1,55 +1,44 @@ /* eslint-disable */ import { AllTypesProps, ReturnTypes, Ops } from './const'; -export const HOST = "https://faker.graphqleditor.com/a-team/olympus/graphql" - +export const HOST = 'https://faker.graphqleditor.com/a-team/olympus/graphql'; const handleFetchResponse = ( - response: Parameters['then']>[0], Function>>[0] + response: Parameters['then']>[0], Function>>[0], ): Promise => { if (!response.ok) { return new Promise((_, reject) => { - response.text().then(text => { - try { reject(JSON.parse(text)); } - catch (err) { reject(text); } - }).catch(reject); + response + .text() + .then((text) => { + try { + reject(JSON.parse(text)); + } catch (err) { + reject(text); + } + }) + .catch(reject); }); } return response.json(); }; export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { - let fetchFunction; - let queryString = query; - let fetchOptions = options[1] || {}; + let fetchFunction; + let queryString = query; + let fetchOptions = options[1] || {}; + try { + fetchFunction = require('node-fetch'); + } catch (error) { + throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); + } + if (fetchOptions.method && fetchOptions.method === 'GET') { try { - fetchFunction = require('node-fetch'); + queryString = require('querystring').stringify(query); } catch (error) { - throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); - } - if (fetchOptions.method && fetchOptions.method === 'GET') { - try { - queryString = require('querystring').stringify(query); - } catch (error) { - throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); - } - return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) - .then(handleFetchResponse) - .then((response: GraphQLResponse) => { - if (response.errors) { - throw new GraphQLError(response); - } - return response.data; - }); + throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); } - return fetchFunction(`${options[0]}`, { - body: JSON.stringify({ query: queryString, variables }), - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - ...fetchOptions - }) + return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) .then(handleFetchResponse) .then((response: GraphQLResponse) => { if (response.errors) { @@ -57,48 +46,57 @@ export const apiFetch = (options: fetchOptions) => (query: string, variables: Re } return response.data; }); - }; - - -export const apiSubscription = (options: chainOptions) => ( - query: string, - ) => { - try { - const WebSocket = require('ws'); - const queryString = options[0] + '?query=' + encodeURIComponent(query); - const wsString = queryString.replace('http', 'ws'); - const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; - const webSocketOptions = options[1]?.websocket || [host]; - const ws = new WebSocket(...webSocketOptions); - return { - ws, - on: (e: (args: any) => void) => { - ws.onmessage = (event:any) => { - if(event.data){ - const parsed = JSON.parse(event.data) - const data = parsed.data - return e(data); - } - }; - }, - off: (e: (args: any) => void) => { - ws.onclose = e; - }, - error: (e: (args: any) => void) => { - ws.onerror = e; - }, - open: (e: () => void) => { - ws.onopen = e; - }, - }; - } catch { - throw new Error('No websockets implemented. Please install ws'); - } - }; - - - + } + return fetchFunction(`${options[0]}`, { + body: JSON.stringify({ query: queryString, variables }), + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + ...fetchOptions, + }) + .then(handleFetchResponse) + .then((response: GraphQLResponse) => { + if (response.errors) { + throw new GraphQLError(response); + } + return response.data; + }); +}; +export const apiSubscription = (options: chainOptions) => (query: string) => { + try { + const WebSocket = require('ws'); + const queryString = options[0] + '?query=' + encodeURIComponent(query); + const wsString = queryString.replace('http', 'ws'); + const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; + const webSocketOptions = options[1]?.websocket || [host]; + const ws = new WebSocket(...webSocketOptions); + return { + ws, + on: (e: (args: any) => void) => { + ws.onmessage = (event: any) => { + if (event.data) { + const parsed = JSON.parse(event.data); + const data = parsed.data; + return e(data); + } + }; + }, + off: (e: (args: any) => void) => { + ws.onclose = e; + }, + error: (e: (args: any) => void) => { + ws.onerror = e; + }, + open: (e: () => void) => { + ws.onopen = e; + }, + }; + } catch { + throw new Error('No websockets implemented. Please install ws'); + } +}; export const InternalsBuildQuery = ( props: AllTypesPropsType, @@ -143,15 +141,6 @@ export const InternalsBuildQuery = ( return ibb; }; - - - - - - - - - export const Thunder = (fn: FetchFunction) => < O extends keyof typeof Ops, R extends keyof ValueTypes = GenericOperation @@ -184,11 +173,6 @@ export const Selector = (key: T) => ZeusSelect (t: 'query' | 'mutation' | 'subscription') => ( o: Record, options?: OperationOptions, @@ -197,11 +181,6 @@ export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation return fn(builder(t, o), options?.variables?.values); }; - - - - - export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => (t: 'query' | 'mutation' | 'subscription') => ( o: Record, options?: OperationOptions, @@ -210,10 +189,6 @@ export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => (t: 'quer return fn(builder(t, o)); }; - - - - export type AllTypesPropsType = { [x: string]: | undefined @@ -285,12 +260,8 @@ export class GraphQLError extends Error { } export type GenericOperation = O extends keyof typeof Ops ? typeof Ops[O] : never; - export const purifyGraphQLKey = (k: string) => k.replace(/\([^)]*\)/g, '').replace(/^[^:]*\:/g, ''); - - - const mapPart = (p: string) => { const [isArg, isField] = p.split('<>'); if (isField) { @@ -406,9 +377,6 @@ export const InternalArgsBuilt = ( return arb; }; - - - export const resolverFor = ( type: T, field: Z, @@ -418,13 +386,9 @@ export const resolverFor = Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, ) => fn as (args?: any, source?: any) => any; - export type SelectionFunction = (t: T | V) => T; export const ZeusSelect = () => ((t: unknown) => t) as SelectionFunction; - - - export type UnwrapPromise = T extends Promise ? R : T; export type ZeusState Promise> = NonNullable>>; export type ZeusHook< @@ -471,7 +435,7 @@ type IsInterfaced, DST> = FlattenArray extends Z export type MapType = SRC extends DeepAnify ? IsInterfaced : never; export type InputType = IsPayLoad extends { __alias: infer R } ? { - [P in keyof R]: MapType; + [P in keyof R]: MapType[keyof MapType]; } & MapType, '__alias'>> : MapType>; @@ -483,7 +447,6 @@ export type SubscriptionToGraphQL = { open: () => void; }; - export const useZeusVariables = (variables: T) => < Z extends { [P in keyof T]: unknown; @@ -507,7 +470,6 @@ export type VariableInput = { values: Record; }; - export const VariableParameters = (variables: T) => ( values: { // eslint-disable-next-line prettier/prettier @@ -519,265 +481,269 @@ export const VariableParameters = (variables: T) => ( .join(', '); }; - -type ZEUS_INTERFACES = GraphQLTypes["Nameable"] -type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] +type ZEUS_INTERFACES = GraphQLTypes['Nameable']; +type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; export type ValueTypes = { - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean, - key?:boolean, - region?:boolean, - __typename?: boolean -}>; - /** create card inputs
*/ -["createCard"]: { - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined | null, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: (ValueTypes["SpecialSkills"])[] + /** Aws S3 File */ + ['S3Object']: AliasType<{ + bucket?: boolean; + key?: boolean; + region?: boolean; + __typename?: boolean; + }>; + /** create card inputs
*/ + ['createCard']: { + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + /**
How many children the greek god had
*/ + Children?: number | undefined | null; + /** The attack power
*/ + Attack: number; + /** The defense power
*/ + Defense: number; + /** input skills */ + skills?: ValueTypes['SpecialSkills'][]; + }; + /** Stack of cards */ + ['CardStack']: AliasType<{ + cards?: ValueTypes['Card']; + name?: boolean; + __typename?: boolean; + }>; + ['Nameable']: AliasType<{ + name?: boolean; + ['...on CardStack']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; + ['...on Card']?: Omit; + __typename?: boolean; + }>; + ['ChangeCard']: AliasType<{ + ['...on SpecialCard']: ValueTypes['SpecialCard']; + ['...on EffectCard']: ValueTypes['EffectCard']; + __typename?: boolean; + }>; + ['SpecialCard']: AliasType<{ + effect?: boolean; + name?: boolean; + __typename?: boolean; + }>; + ['EffectCard']: AliasType<{ + effectSize?: boolean; + name?: boolean; + __typename?: boolean; + }>; + ['Subscription']: AliasType<{ + deck?: ValueTypes['Card']; + __typename?: boolean; + }>; + ['Query']: AliasType<{ + cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; + /** Draw a card
*/ + drawCard?: ValueTypes['Card']; + drawChangeCard?: ValueTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards?: ValueTypes['Card']; + myStacks?: ValueTypes['CardStack']; + nameables?: ValueTypes['Nameable']; + __typename?: boolean; + }>; + /** Card used in card game
*/ + ['Card']: AliasType<{ + /** The attack power
*/ + Attack?: boolean; + /**
How many children the greek god had
*/ + Children?: boolean; + /** The defense power
*/ + Defense?: boolean; + attack?: [ + { + /** Attacked card/card ids
*/ cardID: string[] | undefined | null; + }, + ValueTypes['Card'], + ]; + /** Put your description here */ + cardImage?: ValueTypes['S3Object']; + /** Description of a card
*/ + description?: boolean; + id?: boolean; + image?: boolean; + /** The name of a card
*/ + name?: boolean; + skills?: boolean; + __typename?: boolean; + }>; + ['SpecialSkills']: SpecialSkills; + ['Mutation']: AliasType<{ + addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; + __typename?: boolean; + }>; }; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean, - __typename?: boolean -}>; - ["Nameable"]:AliasType<{ - name?:boolean; - ['...on CardStack']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on EffectCard']?: Omit; - ['...on Card']?: Omit; - __typename?: boolean -}>; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] - __typename?: boolean -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean, - name?:boolean, - __typename?: boolean -}>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean, - name?:boolean, - __typename?: boolean -}>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean -}>; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], - /** Draw a card
*/ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean -}>; - /** Card used in card game
*/ -["Card"]: AliasType<{ - /** The attack power
*/ - Attack?:boolean, - /**
How many children the greek god had
*/ - Children?:boolean, - /** The defense power
*/ - Defense?:boolean, -attack?: [{ /** Attacked card/card ids
*/ - cardID: (string)[] | undefined | null},ValueTypes["Card"]], - /** Put your description here */ - cardImage?:ValueTypes["S3Object"], - /** Description of a card
*/ - description?:boolean, - id?:boolean, - image?:boolean, - /** The name of a card
*/ - name?:boolean, - skills?:boolean, - __typename?: boolean -}>; - ["SpecialSkills"]:SpecialSkills; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean -}> - } export type ModelTypes = { - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"]; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string -}; - ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] | ModelTypes["Card"]; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["SpecialCard"]: { - effect: string, - name: string -}; - ["EffectCard"]: { - effectSize: number, - name: string -}; - ["Subscription"]: { - deck?: Array | undefined -}; - ["Query"]: { - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - /** Card used in card game
*/ -["Card"]: { - /** The attack power
*/ - Attack: number, - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The defense power
*/ - Defense: number, - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined, - /** Put your description here */ - cardImage?: GraphQLTypes["S3Object"] | undefined, - /** Description of a card
*/ - description: string, - id: string, - image: string, - /** The name of a card
*/ - name: string, - skills?: Array | undefined + /** Aws S3 File */ + ['S3Object']: { + bucket: string; + key: string; + region: string; + }; + /** create card inputs
*/ + ['createCard']: GraphQLTypes['createCard']; + /** Stack of cards */ + ['CardStack']: { + cards?: Array | undefined; + name: string; + }; + ['Nameable']: ModelTypes['CardStack'] | ModelTypes['SpecialCard'] | ModelTypes['EffectCard'] | ModelTypes['Card']; + ['ChangeCard']: ModelTypes['SpecialCard'] | ModelTypes['EffectCard']; + ['SpecialCard']: { + effect: string; + name: string; + }; + ['EffectCard']: { + effectSize: number; + name: string; + }; + ['Subscription']: { + deck?: Array | undefined; + }; + ['Query']: { + cardById?: GraphQLTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: GraphQLTypes['Card']; + drawChangeCard: GraphQLTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array; + myStacks?: Array | undefined; + nameables: Array; + }; + /** Card used in card game
*/ + ['Card']: { + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined; + /** Put your description here */ + cardImage?: GraphQLTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array | undefined; + }; + ['SpecialSkills']: GraphQLTypes['SpecialSkills']; + ['Mutation']: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes['Card']; + }; }; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["Mutation"]: { - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -} - } export type GraphQLTypes = { - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string -}; - /** create card inputs
*/ -["createCard"]: { - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined -}; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, - name: string -}; - ["Nameable"]: { - __typename:"CardStack" | "SpecialCard" | "EffectCard" | "Card", - name: string - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; -}; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, - name: string -}; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, - name: string -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined -}; - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - /** Card used in card game
*/ -["Card"]: { - __typename: "Card", - /** The attack power
*/ - Attack: number, - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The defense power
*/ - Defense: number, - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined, - /** Put your description here */ - cardImage?: GraphQLTypes["S3Object"] | undefined, - /** Description of a card
*/ - description: string, - id: string, - image: string, - /** The name of a card
*/ - name: string, - skills?: Array | undefined + /** Aws S3 File */ + ['S3Object']: { + __typename: 'S3Object'; + bucket: string; + key: string; + region: string; + }; + /** create card inputs
*/ + ['createCard']: { + /** The name of a card
*/ + name: string; + /** Description of a card
*/ + description: string; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The attack power
*/ + Attack: number; + /** The defense power
*/ + Defense: number; + /** input skills */ + skills?: Array | undefined; + }; + /** Stack of cards */ + ['CardStack']: { + __typename: 'CardStack'; + cards?: Array | undefined; + name: string; + }; + ['Nameable']: { + __typename: 'CardStack' | 'SpecialCard' | 'EffectCard' | 'Card'; + name: string; + ['...on CardStack']: '__union' & GraphQLTypes['CardStack']; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + ['...on Card']: '__union' & GraphQLTypes['Card']; + }; + ['ChangeCard']: { + __typename: 'SpecialCard' | 'EffectCard'; + ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; + ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; + }; + ['SpecialCard']: { + __typename: 'SpecialCard'; + effect: string; + name: string; + }; + ['EffectCard']: { + __typename: 'EffectCard'; + effectSize: number; + name: string; + }; + ['Subscription']: { + __typename: 'Subscription'; + deck?: Array | undefined; + }; + ['Query']: { + __typename: 'Query'; + cardById?: GraphQLTypes['Card'] | undefined; + /** Draw a card
*/ + drawCard: GraphQLTypes['Card']; + drawChangeCard: GraphQLTypes['ChangeCard']; + /** list All Cards availble
*/ + listCards: Array; + myStacks?: Array | undefined; + nameables: Array; + }; + /** Card used in card game
*/ + ['Card']: { + __typename: 'Card'; + /** The attack power
*/ + Attack: number; + /**
How many children the greek god had
*/ + Children?: number | undefined; + /** The defense power
*/ + Defense: number; + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined; + /** Put your description here */ + cardImage?: GraphQLTypes['S3Object'] | undefined; + /** Description of a card
*/ + description: string; + id: string; + image: string; + /** The name of a card
*/ + name: string; + skills?: Array | undefined; + }; + ['SpecialSkills']: SpecialSkills; + ['Mutation']: { + __typename: 'Mutation'; + /** add Card to Cards database
*/ + addCard: GraphQLTypes['Card']; + }; }; - ["SpecialSkills"]: SpecialSkills; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -} - } export const enum SpecialSkills { - THUNDER = "THUNDER", - RAIN = "RAIN", - FIRE = "FIRE" -} \ No newline at end of file + THUNDER = 'THUNDER', + RAIN = 'RAIN', + FIRE = 'FIRE', +} diff --git a/package.json b/package.json index d69006e6..73b537d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-3", + "version": "5.0.0-rc-4", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/CLI/libBuilder.ts b/src/CLI/libBuilder.ts index 02c31c38..1602c25c 100644 --- a/src/CLI/libBuilder.ts +++ b/src/CLI/libBuilder.ts @@ -15,13 +15,10 @@ const bundleFunctions = () => { .map((d) => path.join(baseDir, d)) .map((d) => { const content = fs.readFileSync(d); - return ( - content - .toString('utf-8') - .replace(/import\s(\n|\w|{|}|\s|,)*.*;/gm, '') - // .replace(/export\s/gm, '') - .replace(/\\/gm, '\\\\') - ); + return content + .toString('utf-8') + .replace(/import\s(\n|\w|{|}|\s|,)*.*;/gm, '') + .replace(/\\/gm, '\\\\'); }); const content = toTemplateString(allFunctions.join('\n\n')); fs.writeFileSync(path.join(baseDirFunctions, 'generated.ts'), toExport(content)); diff --git a/src/TreeToTS/functions/new/purifyGraphQLKey.spec.ts b/src/TreeToTS/functions/new/purifyGraphQLKey.spec.ts new file mode 100644 index 00000000..295a3c46 --- /dev/null +++ b/src/TreeToTS/functions/new/purifyGraphQLKey.spec.ts @@ -0,0 +1,12 @@ +import { purifyGraphQLKey } from '@/TreeToTS/functions/new/purifyGraphQLKey'; + +describe('Test purify graphql keys', () => { + test('Remove parentheses', () => { + const t = purifyGraphQLKey('addPerson(name:"Joe")'); + expect(t).toEqual('addPerson'); + }); + test('Remove GraphQL alias', () => { + const t = purifyGraphQLKey('friends:getMyPeople'); + expect(t).toEqual('getMyPeople'); + }); +}); diff --git a/src/TreeToTS/functions/new/types.ts b/src/TreeToTS/functions/new/types.ts index cd7ec464..738537b7 100644 --- a/src/TreeToTS/functions/new/types.ts +++ b/src/TreeToTS/functions/new/types.ts @@ -46,7 +46,7 @@ type IsInterfaced, DST> = FlattenArray extends Z export type MapType = SRC extends DeepAnify ? IsInterfaced : never; export type InputType = IsPayLoad extends { __alias: infer R } ? { - [P in keyof R]: MapType; + [P in keyof R]: MapType[keyof MapType]; } & MapType, '__alias'>> : MapType>; From 469a99cc907be989cc860dcc11b9399fb3f846d5 Mon Sep 17 00:00:00 2001 From: aexol Date: Thu, 14 Apr 2022 16:22:36 +0200 Subject: [PATCH 13/74] :sparkles: Directive support!!!! --- doc/.purplehaze/ssg/markdown.js | 32 +- doc/out/index.html | 4 +- doc/out/page/custom-fetch.html | 4 +- doc/out/page/esmodules.html | 4 +- doc/out/page/examples.html | 4 +- doc/out/page/getting-started.html | 4 +- doc/out/page/graphql/aliases.html | 4 +- doc/out/page/graphql/directives.html | 65 ++ doc/out/page/graphql/gql.html | 4 +- .../page/graphql/interfaces-and-unions.html | 4 +- doc/out/page/graphql/variables.html | 6 +- doc/out/page/javascript.html | 4 +- doc/out/page/library.html | 4 +- doc/out/page/plugins/apollo.html | 4 +- doc/out/page/plugins/react-query.html | 4 +- doc/out/page/plugins/stucco.html | 4 +- doc/out/page/selector.html | 4 +- doc/out/page/spec.html | 4 +- doc/out/ssg/markdown.js | 32 +- doc/src/markdown/graphql/directives.md | 54 ++ doc/src/markdown/graphql/variables.md | 2 +- doc/src/purplehaze.d.ts | 11 +- doc/src/ssg/markdown.ts | 32 +- examples/typescript-node/package.json | 4 +- examples/typescript-node/src/zeus/apollo.ts | 18 +- examples/typescript-node/src/zeus/const.ts | 70 +- examples/typescript-node/src/zeus/index.ts | 609 ++++++++++-------- examples/typescript-node/tsconfig.json | 1 - examples/typescript-node/zeus.graphql | 118 ++-- package.json | 3 +- .../index.spec.ts} | 2 +- src/TreeToTS/functions/generated.ts | 110 +++- src/TreeToTS/functions/new/apiFetch.ts | 48 ++ src/TreeToTS/functions/new/apiSubscription.ts | 34 + src/TreeToTS/functions/new/buildQuery.spec.ts | 19 + src/TreeToTS/functions/new/buildQuery.ts | 5 +- src/TreeToTS/functions/new/models.ts | 10 +- src/TreeToTS/functions/new/types.ts | 5 +- src/TreeToTS/index.ts | 10 +- src/TreeToTS/templates/shared/field.spec.ts | 22 + src/TreeToTS/templates/truthy.ts | 2 +- .../templates/typescript/functions.ts | 5 +- 42 files changed, 904 insertions(+), 485 deletions(-) create mode 100644 doc/out/page/graphql/directives.html create mode 100644 doc/src/markdown/graphql/directives.md rename src/{__tests__/TreeToJSONSchema/TreeToJSONSchema.spec.ts => TreeToJSONSchema/index.spec.ts} (95%) create mode 100644 src/TreeToTS/functions/new/apiFetch.ts create mode 100644 src/TreeToTS/functions/new/apiSubscription.ts diff --git a/doc/.purplehaze/ssg/markdown.js b/doc/.purplehaze/ssg/markdown.js index e26d89ea..9dde874b 100644 --- a/doc/.purplehaze/ssg/markdown.js +++ b/doc/.purplehaze/ssg/markdown.js @@ -10,6 +10,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/plugins/react-query.md": { + "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. \u{1F680}\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n", + "data": { + "link": "plugins/react-query", + "title": "React Query", + "order": 2, + "category": "Plugins" + }, + "excerpt": "" + }, "markdown/plugins/apollo.md": { "content": "\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. \u{1F680}\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./ --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
{data.drawCard.name}
;\n};\n```\n", "data": { @@ -28,18 +38,8 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/plugins/react-query.md": { - "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. \u{1F680}\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n", - "data": { - "link": "plugins/react-query", - "title": "React Query", - "order": 2, - "category": "Plugins" - }, - "excerpt": "" - }, "markdown/graphql/variables.md": { - "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", + "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by using `useZeusVariables` function. It forces you to be type-safe also\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", "data": { "link": "graphql/variables", "title": "Variables", @@ -68,6 +68,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/graphql/directives.md": { + "content": "\n## GraphQL Directives\n\nZeus supports using directives on fields.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: true)`,\n },\n});\n```\n\nSo you need to put full string instead of `true`.\n\n#### Use it with variables\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst variables = useZeusVariables({\n isDefense: 'Boolean!'\n})({\n isDefense:true\n});\nconst { $ } = variables;\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: ${$('isDefense')})`,\n },\n {\n variables\n }\n});\n```\n", + "data": { + "link": "graphql/directives", + "title": "Directives", + "order": 5, + "category": "GraphQL" + }, + "excerpt": "" + }, "markdown/graphql/aliases.md": { "content": '\n## GraphQL Aliases\n\nZeus supports declaring aliases \u{1F978}\n\n```ts\nconst aliasedQueryExecute = await chain(\'query\')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: [\'1\'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "listCards": [\n {\n "atak": [\n {\n "name": "Zelma",\n "description": "Central"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n', "data": { diff --git a/doc/out/index.html b/doc/out/index.html index bb37c9f9..4cf80cac 100644 --- a/doc/out/index.html +++ b/doc/out/index.html @@ -8,12 +8,12 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n⚡️ Types mapped from your schema
\n⚡️ Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
\n⚡️ Works with Subscriptions
\n⚡️ Infer complex response types
\n⚡️ Create reusable selection sets (like fragments) for use across multiple queries
\n⚡️ Supports GraphQL Unions, Interfaces, Aliases and Variables
\n⚡️ Handles **massive** schemas
\n⚡️ Supports Browsers, Node.js and React Native in Javascript and Typescript
\n⚡️ Schema downloader
\n⚡️ JSON schema generation
\n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star ⭐️ 😊\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT 🕊\n","data":{"link":"","title":""},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n⚡️ Types mapped from your schema
\n⚡️ Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
\n⚡️ Works with Subscriptions
\n⚡️ Infer complex response types
\n⚡️ Create reusable selection sets (like fragments) for use across multiple queries
\n⚡️ Supports GraphQL Unions, Interfaces, Aliases and Variables
\n⚡️ Handles **massive** schemas
\n⚡️ Supports Browsers, Node.js and React Native in Javascript and Typescript
\n⚡️ Schema downloader
\n⚡️ JSON schema generation
\n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star ⭐️ 😊\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT 🕊\n","data":{"link":"","title":""},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"prefix":""}),document.body) GraphQL Zeus docs -

Strongly Typed GraphQL from the team at GraphQL Editor

+

Strongly Typed GraphQL from the team at GraphQL Editor

GraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.

Features

⚡️ Types mapped from your schema
diff --git a/doc/out/page/custom-fetch.html b/doc/out/page/custom-fetch.html index 1dc3a950..3c7438cd 100644 --- a/doc/out/page/custom-fetch.html +++ b/doc/out/page/custom-fetch.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## Perform Queries with Thunder - An Abstracted Fetch Function\n\nWith Zeus `Thunder` you have total control of fetch function but will not lose the result type. ⚡️\n\n```js\nimport { Thunder } from './zeus';\n\n// Create thunder fetch client with endpoint, options and response handlers\nconst thunder = Thunder(async (query) => {\n const response = await fetch('https://faker.graphqleditor.com/a-team/olympus/graphql', {\n body: JSON.stringify({ query }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n return new Promise((resolve, reject) => {\n response\n .text()\n .then((text) => {\n try {\n reject(JSON.parse(text));\n } catch (err) {\n reject(text);\n }\n })\n .catch(reject);\n });\n }\n\n const json = await response.json();\n\n return json.data;\n});\n\n// Call thunder client with type-safe arguments, fields and get type-safe result type\nconst listCardsAndDraw = await thunder('query')({\n cardById: [\n {\n cardId: 'sdsd',\n },\n {\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['s', 'sd'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n```\n","data":{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"custom-fetch","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## Perform Queries with Thunder - An Abstracted Fetch Function\n\nWith Zeus `Thunder` you have total control of fetch function but will not lose the result type. ⚡️\n\n```js\nimport { Thunder } from './zeus';\n\n// Create thunder fetch client with endpoint, options and response handlers\nconst thunder = Thunder(async (query) => {\n const response = await fetch('https://faker.graphqleditor.com/a-team/olympus/graphql', {\n body: JSON.stringify({ query }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n return new Promise((resolve, reject) => {\n response\n .text()\n .then((text) => {\n try {\n reject(JSON.parse(text));\n } catch (err) {\n reject(text);\n }\n })\n .catch(reject);\n });\n }\n\n const json = await response.json();\n\n return json.data;\n});\n\n// Call thunder client with type-safe arguments, fields and get type-safe result type\nconst listCardsAndDraw = await thunder('query')({\n cardById: [\n {\n cardId: 'sdsd',\n },\n {\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['s', 'sd'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n```\n","data":{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"custom-fetch","prefix":""}),document.body) -

Perform Queries with Thunder - An Abstracted Fetch Function

+

Perform Queries with Thunder - An Abstracted Fetch Function

With Zeus Thunder you have total control of fetch function but will not lose the result type. ⚡️

import { Thunder } from './zeus';
 
diff --git a/doc/out/page/esmodules.html b/doc/out/page/esmodules.html
index 6df5ee69..5b55d65e 100644
--- a/doc/out/page/esmodules.html
+++ b/doc/out/page/esmodules.html
@@ -8,7 +8,7 @@
           const Component = m.default;
         
             import ReactDOM from 'https://cdn.skypack.dev/react-dom';
-            ReactDOM.hydrate(Component({"content":{"content":"\n#### Return with .js import for esModules\n\nDue to validity of `.js` imports in TS for esmodules you can use flag `es` to generate `.js` imports\n\n```sh\n$ zeus schema.graphql ./ --es\n```\n","data":{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"esmodules","prefix":""}),document.body)
+            ReactDOM.hydrate(Component({"content":{"content":"\n#### Return with .js import for esModules\n\nDue to validity of `.js` imports in TS for esmodules you can use flag `es` to generate `.js` imports\n\n```sh\n$ zeus schema.graphql ./ --es\n```\n","data":{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"esmodules","prefix":""}),document.body)
       
 
             
     
-      

Return with .js import for esModules

+

Return with .js import for esModules

Due to validity of .js imports in TS for esmodules you can use flag es to generate .js imports

$ zeus schema.graphql ./ --es
 
diff --git a/doc/out/page/examples.html b/doc/out/page/examples.html index c6bfbbbd..4e8c58dd 100644 --- a/doc/out/page/examples.html +++ b/doc/out/page/examples.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## Zeus Included Examples\n\nTo run the included examples navigate to: `./examples` and install packages with:\n\n```sh\n$ npm i\n# OR\n# yarn\n```\n\nthen run the examples with\n\n```sh\n$ npm run start\n# OR\n# yarn start\n```\n","data":{"link":"examples","title":"Examples","order":2,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"examples","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## Zeus Included Examples\n\nTo run the included examples navigate to: `./examples` and install packages with:\n\n```sh\n$ npm i\n# OR\n# yarn\n```\n\nthen run the examples with\n\n```sh\n$ npm run start\n# OR\n# yarn start\n```\n","data":{"link":"examples","title":"Examples","order":2,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"examples","prefix":""}),document.body) -

Zeus Included Examples

+

Zeus Included Examples

To run the included examples navigate to: ./examples and install packages with:

$ npm i
 # OR
diff --git a/doc/out/page/getting-started.html b/doc/out/page/getting-started.html
index f66e3f74..82534103 100644
--- a/doc/out/page/getting-started.html
+++ b/doc/out/page/getting-started.html
@@ -8,7 +8,7 @@
           const Component = m.default;
         
             import ReactDOM from 'https://cdn.skypack.dev/react-dom';
-            ReactDOM.hydrate(Component({"content":{"content":"\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n  cardById: [\n    {\n      cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n    },\n    {\n      name: true,\n      description: true,\n    },\n  ],\n  listCards: {\n    name: true,\n    skills: true,\n    attack: [\n      { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n      {\n        name: true,\n      },\n    ],\n  },\n  drawCard: {\n    name: true,\n    skills: true,\n    Attack: true,\n  },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n  name\n  description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n  deck: {\n    id: true,\n  },\n}).on((response) => {\n  console.log(response.deck);\n});\n```\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./  --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n","data":{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"getting-started","prefix":""}),document.body)
+            ReactDOM.hydrate(Component({"content":{"content":"\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n  cardById: [\n    {\n      cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n    },\n    {\n      name: true,\n      description: true,\n    },\n  ],\n  listCards: {\n    name: true,\n    skills: true,\n    attack: [\n      { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n      {\n        name: true,\n      },\n    ],\n  },\n  drawCard: {\n    name: true,\n    skills: true,\n    Attack: true,\n  },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n  name\n  description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n  deck: {\n    id: true,\n  },\n}).on((response) => {\n  console.log(response.deck);\n});\n```\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./  --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n","data":{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"getting-started","prefix":""}),document.body)
       
 
             
     
-      

Getting Started

+

Getting Started

Use the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.

Quick Start

Installation

diff --git a/doc/out/page/graphql/aliases.html b/doc/out/page/graphql/aliases.html index 29f6f299..7740f7b3 100644 --- a/doc/out/page/graphql/aliases.html +++ b/doc/out/page/graphql/aliases.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Aliases\n\nZeus supports declaring aliases 🥸\n\n```ts\nconst aliasedQueryExecute = await chain('query')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: ['1'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"listCards\": [\n {\n \"atak\": [\n {\n \"name\": \"Zelma\",\n \"description\": \"Central\"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n","data":{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/aliases","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Aliases\n\nZeus supports declaring aliases 🥸\n\n```ts\nconst aliasedQueryExecute = await chain('query')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: ['1'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"listCards\": [\n {\n \"atak\": [\n {\n \"name\": \"Zelma\",\n \"description\": \"Central\"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n","data":{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/aliases","prefix":""}),document.body) -

GraphQL Aliases

+

GraphQL Aliases

Zeus supports declaring aliases 🥸

const aliasedQueryExecute = await chain('query')({
   listCards: {
diff --git a/doc/out/page/graphql/directives.html b/doc/out/page/graphql/directives.html
new file mode 100644
index 00000000..c4ceb9f5
--- /dev/null
+++ b/doc/out/page/graphql/directives.html
@@ -0,0 +1,65 @@
+
+    
+      
+      
+      
+      
+
+            
+            
+            GraphQL Zeus docs
+          
+    
+    
+      

GraphQL Directives

+

Zeus supports using directives on fields.

+
import { Chain } from './zeus';
+
+// Create a Chain client instance with the endpoint
+const chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');
+
+// Query the endpoint with Typescript autocomplete for arguments and response fields
+const listCardsAndDraw = await chain('query')({
+  drawCard: {
+    name: true,
+    skills: true,
+    Attack: `@skip(if: true)`,
+  },
+});
+
+

So you need to put full string instead of true.

+

Use it with variables

+
import { Chain } from './zeus';
+
+// Create a Chain client instance with the endpoint
+const chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');
+const variables = useZeusVariables({
+    isDefense: 'Boolean!'
+})({
+    isDefense:true
+});
+const { $ } = variables;
+// Query the endpoint with Typescript autocomplete for arguments and response fields
+const listCardsAndDraw = await chain('query')({
+  drawCard: {
+    name: true,
+    skills: true,
+    Attack: `@skip(if: ${$('isDefense')})`,
+  },
+  {
+      variables
+  }
+});
+
+
+ + \ No newline at end of file diff --git a/doc/out/page/graphql/gql.html b/doc/out/page/graphql/gql.html index f3ad4bbc..53b54bdd 100644 --- a/doc/out/page/graphql/gql.html +++ b/doc/out/page/graphql/gql.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## Generate GraphQL Gql Strings\n\nUse the `Zeus` function to generate a gql string\n\n```js\nimport { Zeus } from './zeus';\n\nconst stringGql = Zeus('query', {\n listCards: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n\n// stringGql value:\n// query{listCards{name skills Attack}}\n```\n","data":{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/gql","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## Generate GraphQL Gql Strings\n\nUse the `Zeus` function to generate a gql string\n\n```js\nimport { Zeus } from './zeus';\n\nconst stringGql = Zeus('query', {\n listCards: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n\n// stringGql value:\n// query{listCards{name skills Attack}}\n```\n","data":{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/gql","prefix":""}),document.body) -

Generate GraphQL Gql Strings

+

Generate GraphQL Gql Strings

Use the Zeus function to generate a gql string

import { Zeus } from './zeus';
 
diff --git a/doc/out/page/graphql/interfaces-and-unions.html b/doc/out/page/graphql/interfaces-and-unions.html
index 21515a4d..88143434 100644
--- a/doc/out/page/graphql/interfaces-and-unions.html
+++ b/doc/out/page/graphql/interfaces-and-unions.html
@@ -8,7 +8,7 @@
           const Component = m.default;
         
             import ReactDOM from 'https://cdn.skypack.dev/react-dom';
-            ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Unions\n\nYou can use Zeus with [GraphQL Unions](https://spec.graphql.org/June2018/#sec-Unions):\n\n```js\nconst { drawChangeCard } = await chain('query')({\n  drawChangeCard: {\n    __typename: true,\n    '...on EffectCard': {\n      effectSize: true,\n      name: true,\n    },\n    '...on SpecialCard': {\n      effect: true,\n      name: true,\n    },\n  },\n});\n```\n\nResponse:\n\n```json\n{\n  \"effectSize\": 195.99532210956377,\n  \"name\": \"Destinee\",\n  \"__typename\": \"EffectCard\"\n}\n```\n\n## GraphQL Interfaces\n\nZeus works with [GraphQL Interfaces](http://spec.graphql.org/June2018/#sec-Interfaces)\n\n```ts\nconst { nameables } = await Gql('query')({\n  nameables: {\n    __typename: true,\n    name: true,\n    '...on CardStack': {\n      cards: {\n        Defense: true,\n      },\n    },\n    '...on Card': {\n      Attack: true,\n    },\n  },\n});\n```\n\nResponse:\n\n```json\n{\n  \"nameables\": [\n    {\n      \"__typename\": \"EffectCard\",\n      \"name\": \"Hector\"\n    },\n    {\n      \"__typename\": \"CardStack\",\n      \"name\": \"Scotty\",\n      \"cards\": [\n        {\n          \"Defense\": 1950\n        },\n        {\n          \"Defense\": 76566\n        }\n      ]\n    },\n    {\n      \"__typename\": \"SpecialCard\",\n      \"name\": \"Itzel\"\n    }\n  ]\n}\n```\n","data":{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/interfaces-and-unions","prefix":""}),document.body)
+            ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Unions\n\nYou can use Zeus with [GraphQL Unions](https://spec.graphql.org/June2018/#sec-Unions):\n\n```js\nconst { drawChangeCard } = await chain('query')({\n  drawChangeCard: {\n    __typename: true,\n    '...on EffectCard': {\n      effectSize: true,\n      name: true,\n    },\n    '...on SpecialCard': {\n      effect: true,\n      name: true,\n    },\n  },\n});\n```\n\nResponse:\n\n```json\n{\n  \"effectSize\": 195.99532210956377,\n  \"name\": \"Destinee\",\n  \"__typename\": \"EffectCard\"\n}\n```\n\n## GraphQL Interfaces\n\nZeus works with [GraphQL Interfaces](http://spec.graphql.org/June2018/#sec-Interfaces)\n\n```ts\nconst { nameables } = await Gql('query')({\n  nameables: {\n    __typename: true,\n    name: true,\n    '...on CardStack': {\n      cards: {\n        Defense: true,\n      },\n    },\n    '...on Card': {\n      Attack: true,\n    },\n  },\n});\n```\n\nResponse:\n\n```json\n{\n  \"nameables\": [\n    {\n      \"__typename\": \"EffectCard\",\n      \"name\": \"Hector\"\n    },\n    {\n      \"__typename\": \"CardStack\",\n      \"name\": \"Scotty\",\n      \"cards\": [\n        {\n          \"Defense\": 1950\n        },\n        {\n          \"Defense\": 76566\n        }\n      ]\n    },\n    {\n      \"__typename\": \"SpecialCard\",\n      \"name\": \"Itzel\"\n    }\n  ]\n}\n```\n","data":{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/interfaces-and-unions","prefix":""}),document.body)
       
 
             
     
-      

GraphQL Unions

+

GraphQL Unions

You can use Zeus with GraphQL Unions:

const { drawChangeCard } = await chain('query')({
   drawChangeCard: {
diff --git a/doc/out/page/graphql/variables.html b/doc/out/page/graphql/variables.html
index 50f41ff0..05747d14 100644
--- a/doc/out/page/graphql/variables.html
+++ b/doc/out/page/graphql/variables.html
@@ -8,7 +8,7 @@
           const Component = m.default;
         
             import ReactDOM from 'https://cdn.skypack.dev/react-dom';
-            ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n  card: {\n    Attack: 2,\n    Defense: 3,\n    description: 'Lord of the mountains',\n    name: 'Golrog',\n  },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n  {\n    addCard: [\n      {\n        card: $('card'),\n      },\n      {\n        id: true,\n        description: true,\n        name: true,\n        Attack: true,\n        skills: true,\n        Children: true,\n        Defense: true,\n        cardImage: {\n          bucket: true,\n          region: true,\n          key: true,\n        },\n      },\n    ],\n  },\n  {\n    variables,\n  },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n  variables: variables.values,\n});\n```\n","data":{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/variables","prefix":""}),document.body)
+            ReactDOM.hydrate(Component({"content":{"content":"\n## GraphQL Variables\n\nIt's simple to perform queries with variables by using `useZeusVariables` function. It forces you to be type-safe also\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n  card: {\n    Attack: 2,\n    Defense: 3,\n    description: 'Lord of the mountains',\n    name: 'Golrog',\n  },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n  {\n    addCard: [\n      {\n        card: $('card'),\n      },\n      {\n        id: true,\n        description: true,\n        name: true,\n        Attack: true,\n        skills: true,\n        Children: true,\n        Defense: true,\n        cardImage: {\n          bucket: true,\n          region: true,\n          key: true,\n        },\n      },\n    ],\n  },\n  {\n    variables,\n  },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n  variables: variables.values,\n});\n```\n","data":{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"graphql/variables","prefix":""}),document.body)
       
 
             
     
-      

GraphQL Variables

-

It's simple to perform queries with variables by importing and using the $ function from the Zeus output and calling it with the variable name in backticks.

+

GraphQL Variables

+

It's simple to perform queries with variables by using useZeusVariables function. It forces you to be type-safe also

import { Gql, useZeusVariables } from './zeus';
 const variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({
   card: {
diff --git a/doc/out/page/javascript.html b/doc/out/page/javascript.html
index 1bc784fa..aaa33545 100644
--- a/doc/out/page/javascript.html
+++ b/doc/out/page/javascript.html
@@ -8,7 +8,7 @@
           const Component = m.default;
         
             import ReactDOM from 'https://cdn.skypack.dev/react-dom';
-            ReactDOM.hydrate(Component({"content":{"content":"\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n","data":{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"javascript","prefix":""}),document.body)
+            ReactDOM.hydrate(Component({"content":{"content":"\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n","data":{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"javascript","prefix":""}),document.body)
       
 
             
     
-      

JavaScript

+

JavaScript

To use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using tsc

$ npm i -D typescript
 # OR
diff --git a/doc/out/page/library.html b/doc/out/page/library.html
index 90af74d9..07c7695f 100644
--- a/doc/out/page/library.html
+++ b/doc/out/page/library.html
@@ -8,7 +8,7 @@
           const Component = m.default;
         
             import ReactDOM from 'https://cdn.skypack.dev/react-dom';
-            ReactDOM.hydrate(Component({"content":{"content":"\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n    hello: String!\n}\nschema{\n    query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n  // Use schema content here\n});\n```\n","data":{"link":"library","title":"Use as a library","order":5,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"library","prefix":""}),document.body)
+            ReactDOM.hydrate(Component({"content":{"content":"\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n    hello: String!\n}\nschema{\n    query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n  // Use schema content here\n});\n```\n","data":{"link":"library","title":"Use as a library","order":5,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"library","prefix":""}),document.body)
       
 
             
     
-      

Generate Code

+

Generate Code

This will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions

import { TreeToTS } from 'graphql-zeus';
 import { Parser } from 'graphql-js-tree';
diff --git a/doc/out/page/plugins/apollo.html b/doc/out/page/plugins/apollo.html
index 4dab6511..08591e02 100644
--- a/doc/out/page/plugins/apollo.html
+++ b/doc/out/page/plugins/apollo.html
@@ -8,7 +8,7 @@
           const Component = m.default;
         
             import ReactDOM from 'https://cdn.skypack.dev/react-dom';
-            ReactDOM.hydrate(Component({"content":{"content":"\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. 🚀\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./  --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n  const { data } = useTypedQuery({\n    // Get autocomplete here:\n    drawCard: {\n      name: true,\n    },\n  });\n  // data response is now typed\n  return 
{data.drawCard.name}
;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
{data.drawCard.name}
;\n};\n```\n","data":{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"plugins/apollo","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. 🚀\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./ --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
{data.drawCard.name}
;\n};\n```\n","data":{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"plugins/apollo","prefix":""}),document.body) -

Usage with Apollo GraphQL

+

Usage with Apollo GraphQL

Zeus can generate type-safe versions of Apollo Client's useQuery, useMutation, useSubscription and useLazyQuery React hooks as useTypedQuery, useTypedMutation etc... by adding the --apollo flag to the CLI. All types in the data response are then inherited from the Zeus query. 🚀

Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks

$ zeus schema.graphql ./  --apollo
diff --git a/doc/out/page/plugins/react-query.html b/doc/out/page/plugins/react-query.html
index 39a64430..55ae4ae1 100644
--- a/doc/out/page/plugins/react-query.html
+++ b/doc/out/page/plugins/react-query.html
@@ -8,7 +8,7 @@
           const Component = m.default;
         
             import ReactDOM from 'https://cdn.skypack.dev/react-dom';
-            ReactDOM.hydrate(Component({"content":{"content":"\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. 🚀\n\n```sh\n$ zeus schema.graphql ./  --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n  const { data } = useTypedQuery({\n    // Get autocomplete here:\n    drawCard: {\n      name: true,\n    },\n  });\n  // data response is now typed\n  return 
{data.drawCard.name}
;\n};\n```\n","data":{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"plugins/react-query","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. 🚀\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n","data":{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"plugins/react-query","prefix":""}),document.body) -

Usage with React Query

+

Usage with React Query

Zeus can generate type-safe versions of React Query's useQuery, useMutation etc.. React hooks as useTypedQuery, useTypedMutation etc... by adding the --reactQuery flag to the CLI. All types data response are then inherited from the Zeus query. 🚀

$ zeus schema.graphql ./  --reactQuery
 
diff --git a/doc/out/page/plugins/stucco.html b/doc/out/page/plugins/stucco.html index 1e6fe21e..5fc61c89 100644 --- a/doc/out/page/plugins/stucco.html +++ b/doc/out/page/plugins/stucco.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n","data":{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"plugins/stucco","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n","data":{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"plugins/stucco","prefix":""}),document.body) -

Usage with Stucco Subscriptions

+

Usage with Stucco Subscriptions

Zeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in data are then inherited from the Zeus Query

$ zeus schema.graphql ./  --stuccoSubscriptions
 
diff --git a/doc/out/page/selector.html b/doc/out/page/selector.html index 0d20cd96..ef0e8b1a 100644 --- a/doc/out/page/selector.html +++ b/doc/out/page/selector.html @@ -8,7 +8,7 @@ const Component = m.default; import ReactDOM from 'https://cdn.skypack.dev/react-dom'; - ReactDOM.hydrate(Component({"content":{"content":"\n## Generate Reusable Selection Sets\n\nIn TypeScript Zeus can help make type-safe Zeus selection sets to reuse across queries.\n\n```ts\nimport { Selector, Chain } from './zeus';\n\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\nconst cardSelector = Selector('Card')({\n name: true,\n description: true,\n Attack: true,\n skills: true,\n Defense: true,\n cardImage: {\n key: true,\n bucket: true,\n },\n});\n\nconst queryWithSelectionSet = await chain('query')({\n drawCard: cardSelector,\n});\n```\n\n## Inferring the response type\n\nSometimes you would like to infer the response type. The it is best to use selectors\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector(\"Query\"){\n drawCard: {\n Attack: true,\n Children: true,\n id: true,\n },\n});\n\ntype InferredResponseType = InputType;\n```\n","data":{"link":"selector","title":"Selector","order":1,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"selector","prefix":""}),document.body) + ReactDOM.hydrate(Component({"content":{"content":"\n## Generate Reusable Selection Sets\n\nIn TypeScript Zeus can help make type-safe Zeus selection sets to reuse across queries.\n\n```ts\nimport { Selector, Chain } from './zeus';\n\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\nconst cardSelector = Selector('Card')({\n name: true,\n description: true,\n Attack: true,\n skills: true,\n Defense: true,\n cardImage: {\n key: true,\n bucket: true,\n },\n});\n\nconst queryWithSelectionSet = await chain('query')({\n drawCard: cardSelector,\n});\n```\n\n## Inferring the response type\n\nSometimes you would like to infer the response type. The it is best to use selectors\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector(\"Query\"){\n drawCard: {\n Attack: true,\n Children: true,\n id: true,\n },\n});\n\ntype InferredResponseType = InputType;\n```\n","data":{"link":"selector","title":"Selector","order":1,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"selector","prefix":""}),document.body) -

Generate Reusable Selection Sets

+

Generate Reusable Selection Sets

In TypeScript Zeus can help make type-safe Zeus selection sets to reuse across queries.

import { Selector, Chain } from './zeus';
 
diff --git a/doc/out/page/spec.html b/doc/out/page/spec.html
index dc81a0b4..b6937581 100644
--- a/doc/out/page/spec.html
+++ b/doc/out/page/spec.html
@@ -8,7 +8,7 @@
           const Component = m.default;
         
             import ReactDOM from 'https://cdn.skypack.dev/react-dom';
-            ReactDOM.hydrate(Component({"content":{"content":"\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n    ...FUNCTION_FIELD_PARAMS\n})(\n    ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n  KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n    ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n    RETURN_KEY: true,\n    RETURN_KEY: {\n        ...RETURN_PARAMS\n    },\n    RETURN_FUNCTION_KEY:[\n        {\n            ...FUNCTION_FIELD_PARAMS\n        },\n        {\n            ...RETURN_PARAMS\n        }\n    ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n  __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n","data":{"link":"spec","title":"Specification","order":4,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"spec","prefix":""}),document.body)
+            ReactDOM.hydrate(Component({"content":{"content":"\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n    ...FUNCTION_FIELD_PARAMS\n})(\n    ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n  KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n    ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n    RETURN_KEY: true,\n    RETURN_KEY: {\n        ...RETURN_PARAMS\n    },\n    RETURN_FUNCTION_KEY:[\n        {\n            ...FUNCTION_FIELD_PARAMS\n        },\n        {\n            ...RETURN_PARAMS\n        }\n    ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n  __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n","data":{"link":"spec","title":"Specification","order":4,"category":"Basics"},"excerpt":""},"routes":{"Basics":[{"link":"getting-started","title":"Getting Started","order":0,"category":"Basics"},{"link":"selector","title":"Selector","order":1,"category":"Basics"},{"link":"examples","title":"Examples","order":2,"category":"Basics"},{"link":"esmodules","title":"EsModules","order":3,"category":"Basics"},{"link":"spec","title":"Specification","order":4,"category":"Basics"},{"link":"library","title":"Use as a library","order":5,"category":"Basics"},{"link":"javascript","title":"Javascript","order":6,"category":"Basics"},{"link":"custom-fetch","title":"Custom fetch","order":7,"category":"Basics"}],"GraphQL":[{"link":"graphql/interfaces-and-unions","title":"Interfaces and Unions","order":1,"category":"GraphQL"},{"link":"graphql/variables","title":"Variables","order":2,"category":"GraphQL"},{"link":"graphql/aliases","title":"Aliases","order":3,"category":"GraphQL"},{"link":"graphql/gql","title":"Gql string","order":4,"category":"GraphQL"},{"link":"graphql/directives","title":"Directives","order":5,"category":"GraphQL"}],"Plugins":[{"link":"plugins/apollo","title":"Apollo","order":1,"category":"Plugins"},{"link":"plugins/react-query","title":"React Query","order":2,"category":"Plugins"},{"link":"plugins/stucco","title":"Stucco","order":3,"category":"Plugins"}]},"activeRoute":"spec","prefix":""}),document.body)
       
 
             
     
-      

Zeus Spec

+

Zeus Spec

Promise of type query data object is returned.

PROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({
     ...FUNCTION_FIELD_PARAMS
diff --git a/doc/out/ssg/markdown.js b/doc/out/ssg/markdown.js
index e26d89ea..9dde874b 100644
--- a/doc/out/ssg/markdown.js
+++ b/doc/out/ssg/markdown.js
@@ -10,6 +10,16 @@ var htmlContent = {
     },
     "excerpt": ""
   },
+  "markdown/plugins/react-query.md": {
+    "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. \u{1F680}\n\n```sh\n$ zeus schema.graphql ./  --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n  const { data } = useTypedQuery({\n    // Get autocomplete here:\n    drawCard: {\n      name: true,\n    },\n  });\n  // data response is now typed\n  return 
{data.drawCard.name}
;\n};\n```\n", + "data": { + "link": "plugins/react-query", + "title": "React Query", + "order": 2, + "category": "Plugins" + }, + "excerpt": "" + }, "markdown/plugins/apollo.md": { "content": "\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. \u{1F680}\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./ --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
{data.drawCard.name}
;\n};\n```\n", "data": { @@ -28,18 +38,8 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/plugins/react-query.md": { - "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. \u{1F680}\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n", - "data": { - "link": "plugins/react-query", - "title": "React Query", - "order": 2, - "category": "Plugins" - }, - "excerpt": "" - }, "markdown/graphql/variables.md": { - "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", + "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by using `useZeusVariables` function. It forces you to be type-safe also\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", "data": { "link": "graphql/variables", "title": "Variables", @@ -68,6 +68,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/graphql/directives.md": { + "content": "\n## GraphQL Directives\n\nZeus supports using directives on fields.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: true)`,\n },\n});\n```\n\nSo you need to put full string instead of `true`.\n\n#### Use it with variables\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst variables = useZeusVariables({\n isDefense: 'Boolean!'\n})({\n isDefense:true\n});\nconst { $ } = variables;\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: ${$('isDefense')})`,\n },\n {\n variables\n }\n});\n```\n", + "data": { + "link": "graphql/directives", + "title": "Directives", + "order": 5, + "category": "GraphQL" + }, + "excerpt": "" + }, "markdown/graphql/aliases.md": { "content": '\n## GraphQL Aliases\n\nZeus supports declaring aliases \u{1F978}\n\n```ts\nconst aliasedQueryExecute = await chain(\'query\')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: [\'1\'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "listCards": [\n {\n "atak": [\n {\n "name": "Zelma",\n "description": "Central"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n', "data": { diff --git a/doc/src/markdown/graphql/directives.md b/doc/src/markdown/graphql/directives.md new file mode 100644 index 00000000..fddc5bc1 --- /dev/null +++ b/doc/src/markdown/graphql/directives.md @@ -0,0 +1,54 @@ +--- +link: graphql/directives +title: Directives +order: 5 +category: GraphQL +--- + +## GraphQL Directives + +Zeus supports using directives on fields. + +```ts +import { Chain } from './zeus'; + +// Create a Chain client instance with the endpoint +const chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql'); + +// Query the endpoint with Typescript autocomplete for arguments and response fields +const listCardsAndDraw = await chain('query')({ + drawCard: { + name: true, + skills: true, + Attack: `@skip(if: true)`, + }, +}); +``` + +So you need to put full string instead of `true`. + +#### Use it with variables + +```ts +import { Chain } from './zeus'; + +// Create a Chain client instance with the endpoint +const chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql'); +const variables = useZeusVariables({ + isDefense: 'Boolean!' +})({ + isDefense:true +}); +const { $ } = variables; +// Query the endpoint with Typescript autocomplete for arguments and response fields +const listCardsAndDraw = await chain('query')({ + drawCard: { + name: true, + skills: true, + Attack: `@skip(if: ${$('isDefense')})`, + }, + { + variables + } +}); +``` diff --git a/doc/src/markdown/graphql/variables.md b/doc/src/markdown/graphql/variables.md index 2f59d582..f3f021de 100644 --- a/doc/src/markdown/graphql/variables.md +++ b/doc/src/markdown/graphql/variables.md @@ -7,7 +7,7 @@ category: GraphQL ## GraphQL Variables -It's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks. +It's simple to perform queries with variables by using `useZeusVariables` function. It forces you to be type-safe also ```ts import { Gql, useZeusVariables } from './zeus'; diff --git a/doc/src/purplehaze.d.ts b/doc/src/purplehaze.d.ts index ae81d6b7..987fe412 100644 --- a/doc/src/purplehaze.d.ts +++ b/doc/src/purplehaze.d.ts @@ -26,8 +26,8 @@ declare const ssg: {"envs": {"SHELL": string; "XDG_SEAT": string; "PWD": string; "GSETTINGS_SCHEMA_DIR": string; -"LOGNAME": string; "XDG_SESSION_DESKTOP": string; +"LOGNAME": string; "QT_QPA_PLATFORMTHEME": string; "XDG_SESSION_TYPE": string; "PANEL_GDK_CORE_DEVICE_EVENTS": string; @@ -39,16 +39,14 @@ declare const ssg: {"envs": {"SHELL": string; "GDM_LANG": string; "GTK2_RC_FILES": string; "HOME": string; -"LANG": string; "LC_PAPER": string; +"LANG": string; "LS_COLORS": string; "XDG_CURRENT_DESKTOP": string; -"VTE_VERSION": string; "FORCE_COLOR": string; "DISABLE_WAYLAND": string; "GIT_ASKPASS": string; "XDG_SEAT_PATH": string; -"GNOME_TERMINAL_SCREEN": string; "SAVEHIST": string; "INIT_CWD": string; "CHROME_DESKTOP": string; @@ -56,12 +54,11 @@ declare const ssg: {"envs": {"SHELL": string; "VSCODE_GIT_ASKPASS_EXTRA_ARGS": string; "GEM_HOME": string; "XDG_SESSION_CLASS": string; -"TERM": string; "LC_IDENTIFICATION": string; +"TERM": string; "ZSH": string; "USER": string; "VSCODE_GIT_IPC_HANDLE": string; -"GNOME_TERMINAL_SERVICE": string; "DISPLAY": string; "SHLVL": string; "NVM_CD_FLAGS": string; @@ -83,8 +80,8 @@ declare const ssg: {"envs": {"SHELL": string; "GDMSESSION": string; "ORIGINAL_XDG_CURRENT_DESKTOP": string; "DBUS_SESSION_BUS_ADDRESS": string; -"NVM_BIN": string; "MAIL": string; +"NVM_BIN": string; "LC_NUMERIC": string; "OLDPWD": string; "TERM_PROGRAM": string; diff --git a/doc/src/ssg/markdown.ts b/doc/src/ssg/markdown.ts index ad40aca2..b8dff5e0 100644 --- a/doc/src/ssg/markdown.ts +++ b/doc/src/ssg/markdown.ts @@ -9,6 +9,16 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/plugins/react-query.md": { + "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. 🚀\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n", + "data": { + "link": "plugins/react-query", + "title": "React Query", + "order": 2, + "category": "Plugins" + }, + "excerpt": "" + }, "markdown/plugins/apollo.md": { "content": "\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. 🚀\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./ --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
{data.drawCard.name}
;\n};\n```\n", "data": { @@ -27,18 +37,8 @@ export const htmlContent = { }, "excerpt": "" }, - "markdown/plugins/react-query.md": { - "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. 🚀\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n", - "data": { - "link": "plugins/react-query", - "title": "React Query", - "order": 2, - "category": "Plugins" - }, - "excerpt": "" - }, "markdown/graphql/variables.md": { - "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by importing and using the `$` function from the Zeus output and calling it with the variable name in backticks.\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", + "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by using `useZeusVariables` function. It forces you to be type-safe also\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", "data": { "link": "graphql/variables", "title": "Variables", @@ -67,6 +67,16 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/graphql/directives.md": { + "content": "\n## GraphQL Directives\n\nZeus supports using directives on fields.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: true)`,\n },\n});\n```\n\nSo you need to put full string instead of `true`.\n\n#### Use it with variables\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst variables = useZeusVariables({\n isDefense: 'Boolean!'\n})({\n isDefense:true\n});\nconst { $ } = variables;\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: ${$('isDefense')})`,\n },\n {\n variables\n }\n});\n```\n", + "data": { + "link": "graphql/directives", + "title": "Directives", + "order": 5, + "category": "GraphQL" + }, + "excerpt": "" + }, "markdown/graphql/aliases.md": { "content": "\n## GraphQL Aliases\n\nZeus supports declaring aliases 🥸\n\n```ts\nconst aliasedQueryExecute = await chain('query')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: ['1'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"listCards\": [\n {\n \"atak\": [\n {\n \"name\": \"Zelma\",\n \"description\": \"Central\"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n", "data": { diff --git a/examples/typescript-node/package.json b/examples/typescript-node/package.json index ecd32670..df7b11ce 100644 --- a/examples/typescript-node/package.json +++ b/examples/typescript-node/package.json @@ -9,12 +9,14 @@ "author": "Aexol (http://aexol.com)", "license": "ISC", "devDependencies": { + "@types/ws": "^8.5.3", "ts-node": "^8.3.0", "typescript": "^4.5.5" }, "dependencies": { "@apollo/client": "^3.4.16", "node-fetch": "^2.6.0", - "react-query": "^3.27.0" + "react-query": "^3.27.0", + "ws": "^8.5.0" } } diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 27fa5887..2f84d501 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,17 +1,10 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; -import { gql, useSubscription, useQuery, useLazyQuery, useMutation } from '@apollo/client'; -import type { SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions, MutationHookOptions } from '@apollo/client'; +import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; +import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; -export function useTypedSubscription( - subscription: Z | ValueTypes[O], - options?: SubscriptionHookOptions>, - operationOptions?: OperationOptions, -) { - return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); -} export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, @@ -33,3 +26,10 @@ export function useTypedMutation( ) { return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); } +export function useTypedSubscription( + subscription: Z | ValueTypes[O], + options?: SubscriptionHookOptions>, + operationOptions?: OperationOptions, +) { + return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); +} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index a4c69d5d..e161e90a 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,66 +1,66 @@ /* eslint-disable */ export const AllTypesProps: Record = { - createCard:{ - skills:"SpecialSkills" - }, Query:{ cardById:{ } }, - Card:{ - attack:{ - - } - }, SpecialSkills: true, Mutation:{ addCard:{ card:"createCard" } + }, + createCard:{ + skills:"SpecialSkills" + }, + Card:{ + attack:{ + + } } } export const ReturnTypes: Record = { + Nameable:{ + "...on EffectCard": "EffectCard", + "...on SpecialCard": "SpecialCard", + "...on CardStack": "CardStack", + "...on Card": "Card", + name:"String" + }, S3Object:{ bucket:"String", key:"String", region:"String" }, - CardStack:{ - cards:"Card", - name:"String" - }, - Nameable:{ - "...on CardStack": "CardStack", - "...on SpecialCard": "SpecialCard", - "...on EffectCard": "EffectCard", - "...on Card": "Card", - name:"String" + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" }, ChangeCard:{ "...on SpecialCard":"SpecialCard", "...on EffectCard":"EffectCard" }, + EffectCard:{ + effectSize:"Float", + name:"String" + }, SpecialCard:{ effect:"String", name:"String" }, - EffectCard:{ - effectSize:"Float", + CardStack:{ + cards:"Card", name:"String" }, - Subscription:{ - deck:"Card" - }, - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" + Mutation:{ + addCard:"Card" }, Card:{ Attack:"Int", @@ -74,13 +74,13 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, - Mutation:{ - addCard:"Card" + Subscription:{ + deck:"Card" } } export const Ops = { -subscription: "Subscription" as const, - query: "Query" as const, - mutation: "Mutation" as const +query: "Query" as const, + mutation: "Mutation" as const, + subscription: "Subscription" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index cd57b268..8f931cdb 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -1,11 +1,13 @@ /* eslint-disable */ import { AllTypesProps, ReturnTypes, Ops } from './const'; -export const HOST = 'https://faker.graphqleditor.com/a-team/olympus/graphql'; +import fetch, { Response } from 'node-fetch'; +import WebSocket from 'ws'; +export const HOST = "https://faker.graphqleditor.com/a-team/olympus/graphql" -const handleFetchResponse = ( - response: Parameters['then']>[0], Function>>[0], -): Promise => { + + +const handleFetchResponse = (response: Response): Promise => { if (!response.ok) { return new Promise((_, reject) => { response @@ -23,22 +25,10 @@ const handleFetchResponse = ( return response.json(); }; -export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { - let fetchFunction; - let queryString = query; - let fetchOptions = options[1] || {}; - try { - fetchFunction = require('node-fetch'); - } catch (error) { - throw new Error("Please install 'node-fetch' to use zeus in nodejs environment"); - } +export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { + const fetchOptions = options[1] || {}; if (fetchOptions.method && fetchOptions.method === 'GET') { - try { - queryString = require('querystring').stringify(query); - } catch (error) { - throw new Error("Something gone wrong 'querystring' is a part of nodejs environment"); - } - return fetchFunction(`${options[0]}?query=${queryString}`, fetchOptions) + return fetch(`${options[0]}?query=${encodeURIComponent(query)}`, fetchOptions) .then(handleFetchResponse) .then((response: GraphQLResponse) => { if (response.errors) { @@ -47,8 +37,8 @@ export const apiFetch = (options: fetchOptions) => (query: string, variables: Re return response.data; }); } - return fetchFunction(`${options[0]}`, { - body: JSON.stringify({ query: queryString, variables }), + return fetch(`${options[0]}`, { + body: JSON.stringify({ query, variables }), method: 'POST', headers: { 'Content-Type': 'application/json', @@ -64,9 +54,11 @@ export const apiFetch = (options: fetchOptions) => (query: string, variables: Re }); }; + + + export const apiSubscription = (options: chainOptions) => (query: string) => { try { - const WebSocket = require('ws'); const queryString = options[0] + '?query=' + encodeURIComponent(query); const wsString = queryString.replace('http', 'ws'); const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; @@ -94,10 +86,15 @@ export const apiSubscription = (options: chainOptions) => (query: string) => { }, }; } catch { - throw new Error('No websockets implemented. Please install ws'); + throw new Error('No websockets implemented'); } }; + + + + + export const InternalsBuildQuery = ( props: AllTypesPropsType, returns: ReturnTypesType, @@ -110,9 +107,12 @@ export const InternalsBuildQuery = ( if (!o) { return ''; } - if (typeof o === 'boolean') { + if (typeof o === 'boolean' || typeof o === 'number') { return k; } + if (typeof o === 'string') { + return `${k} ${o}`; + } if (Array.isArray(o)) { return `${ibb( `${k}(${InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath)})`, @@ -141,6 +141,15 @@ export const InternalsBuildQuery = ( return ibb; }; + + + + + + + + + export const Thunder = (fn: FetchFunction) => < O extends keyof typeof Ops, R extends keyof ValueTypes = GenericOperation @@ -173,6 +182,11 @@ export const Selector = (key: T) => ZeusSelect (t: 'query' | 'mutation' | 'subscription') => ( o: Record, options?: OperationOptions, @@ -181,6 +195,11 @@ export const fullChainConstruct = (fn: FetchFunction) => (t: 'query' | 'mutation return fn(builder(t, o), options?.variables?.values); }; + + + + + export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => (t: 'query' | 'mutation' | 'subscription') => ( o: Record, options?: OperationOptions, @@ -189,6 +208,10 @@ export const fullSubscriptionConstruct = (fn: SubscriptionFunction) => (t: 'quer return fn(builder(t, o)); }; + + + + export type AllTypesPropsType = { [x: string]: | undefined @@ -211,9 +234,15 @@ export type ReturnTypesType = { | undefined; }; export type InputValueType = { - [x: string]: undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; + [x: string]: undefined | boolean | string | number | [any, undefined | boolean | InputValueType] | InputValueType; }; -export type VType = undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; +export type VType = + | undefined + | boolean + | string + | number + | [any, undefined | boolean | InputValueType] + | InputValueType; export type PlainType = boolean | number | string | null | undefined; export type ZeusArgsType = @@ -260,8 +289,12 @@ export class GraphQLError extends Error { } export type GenericOperation = O extends keyof typeof Ops ? typeof Ops[O] : never; + export const purifyGraphQLKey = (k: string) => k.replace(/\([^)]*\)/g, '').replace(/^[^:]*\:/g, ''); + + + const mapPart = (p: string) => { const [isArg, isField] = p.split('<>'); if (isField) { @@ -377,6 +410,9 @@ export const InternalArgsBuilt = ( return arb; }; + + + export const resolverFor = ( type: T, field: Z, @@ -386,9 +422,13 @@ export const resolverFor = Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, ) => fn as (args?: any, source?: any) => any; + export type SelectionFunction = (t: T | V) => T; export const ZeusSelect = () => ((t: unknown) => t) as SelectionFunction; + + + export type UnwrapPromise = T extends Promise ? R : T; export type ZeusState Promise> = NonNullable>>; export type ZeusHook< @@ -408,13 +448,14 @@ type DeepAnify = { type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; type IsArray = T extends Array ? InputType[] : InputType; type FlattenArray = T extends Array ? R : T; +type BaseZeusResolver = boolean | 1 | string; type IsInterfaced, DST> = FlattenArray extends ZEUS_INTERFACES | ZEUS_UNIONS ? { [P in keyof SRC]: SRC[P] extends '__union' & infer R ? P extends keyof DST ? IsArray - : {} + : Record : never; }[keyof DST] & { @@ -426,10 +467,10 @@ type IsInterfaced, DST> = FlattenArray extends Z }[keyof DST] >, '__typename' - >]: IsPayLoad extends boolean ? SRC[P] : IsArray; + >]: IsPayLoad extends BaseZeusResolver ? SRC[P] : IsArray; } : { - [P in keyof Pick]: IsPayLoad extends boolean ? SRC[P] : IsArray; + [P in keyof Pick]: IsPayLoad extends BaseZeusResolver ? SRC[P] : IsArray; }; export type MapType = SRC extends DeepAnify ? IsInterfaced : never; @@ -447,6 +488,7 @@ export type SubscriptionToGraphQL = { open: () => void; }; + export const useZeusVariables = (variables: T) => < Z extends { [P in keyof T]: unknown; @@ -470,6 +512,7 @@ export type VariableInput = { values: Record; }; + export const VariableParameters = (variables: T) => ( values: { // eslint-disable-next-line prettier/prettier @@ -481,269 +524,265 @@ export const VariableParameters = (variables: T) => ( .join(', '); }; -type ZEUS_INTERFACES = GraphQLTypes['Nameable']; -type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; + +type ZEUS_INTERFACES = GraphQLTypes["Nameable"] +type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - /** Aws S3 File */ - ['S3Object']: AliasType<{ - bucket?: boolean; - key?: boolean; - region?: boolean; - __typename?: boolean; - }>; - /** create card inputs
*/ - ['createCard']: { - /** The name of a card
*/ - name: string; - /** Description of a card
*/ - description: string; - /**
How many children the greek god had
*/ - Children?: number | undefined | null; - /** The attack power
*/ - Attack: number; - /** The defense power
*/ - Defense: number; - /** input skills */ - skills?: ValueTypes['SpecialSkills'][]; - }; - /** Stack of cards */ - ['CardStack']: AliasType<{ - cards?: ValueTypes['Card']; - name?: boolean; - __typename?: boolean; - }>; - ['Nameable']: AliasType<{ - name?: boolean; - ['...on CardStack']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on EffectCard']?: Omit; - ['...on Card']?: Omit; - __typename?: boolean; - }>; - ['ChangeCard']: AliasType<{ - ['...on SpecialCard']: ValueTypes['SpecialCard']; - ['...on EffectCard']: ValueTypes['EffectCard']; - __typename?: boolean; - }>; - ['SpecialCard']: AliasType<{ - effect?: boolean; - name?: boolean; - __typename?: boolean; - }>; - ['EffectCard']: AliasType<{ - effectSize?: boolean; - name?: boolean; - __typename?: boolean; - }>; - ['Subscription']: AliasType<{ - deck?: ValueTypes['Card']; - __typename?: boolean; - }>; - ['Query']: AliasType<{ - cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; - /** Draw a card
*/ - drawCard?: ValueTypes['Card']; - drawChangeCard?: ValueTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards?: ValueTypes['Card']; - myStacks?: ValueTypes['CardStack']; - nameables?: ValueTypes['Nameable']; - __typename?: boolean; - }>; - /** Card used in card game
*/ - ['Card']: AliasType<{ - /** The attack power
*/ - Attack?: boolean; - /**
How many children the greek god had
*/ - Children?: boolean; - /** The defense power
*/ - Defense?: boolean; - attack?: [ - { - /** Attacked card/card ids
*/ cardID: string[] | undefined | null; - }, - ValueTypes['Card'], - ]; - /** Put your description here */ - cardImage?: ValueTypes['S3Object']; - /** Description of a card
*/ - description?: boolean; - id?: boolean; - image?: boolean; - /** The name of a card
*/ - name?: boolean; - skills?: boolean; - __typename?: boolean; - }>; - ['SpecialSkills']: SpecialSkills; - ['Mutation']: AliasType<{ - addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; - __typename?: boolean; - }>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on EffectCard']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on CardStack']?: Omit; + ['...on Card']?: Omit; + __typename?: boolean | `@${string}` +}>; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], + /** Draw a card
*/ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean | `@${string}` +}>; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + /** create card inputs
*/ +["createCard"]: { + /**
How many children the greek god had
*/ + Children?: number | undefined | null, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined | null, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string }; + /** Card used in card game
*/ +["Card"]: AliasType<{ + /** The attack power
*/ + Attack?:boolean | `@${string}`, + /**
How many children the greek god had
*/ + Children?:boolean | `@${string}`, + /** The defense power
*/ + Defense?:boolean | `@${string}`, +attack?: [{ /** Attacked card/card ids
*/ + cardID: Array},ValueTypes["Card"]], + /** Put your description here */ + cardImage?:ValueTypes["S3Object"], + /** Description of a card
*/ + description?:boolean | `@${string}`, + id?:boolean | `@${string}`, + image?:boolean | `@${string}`, + /** The name of a card
*/ + name?:boolean | `@${string}`, + skills?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}> + } export type ModelTypes = { - /** Aws S3 File */ - ['S3Object']: { - bucket: string; - key: string; - region: string; - }; - /** create card inputs
*/ - ['createCard']: GraphQLTypes['createCard']; - /** Stack of cards */ - ['CardStack']: { - cards?: Array | undefined; - name: string; - }; - ['Nameable']: ModelTypes['CardStack'] | ModelTypes['SpecialCard'] | ModelTypes['EffectCard'] | ModelTypes['Card']; - ['ChangeCard']: ModelTypes['SpecialCard'] | ModelTypes['EffectCard']; - ['SpecialCard']: { - effect: string; - name: string; - }; - ['EffectCard']: { - effectSize: number; - name: string; - }; - ['Subscription']: { - deck?: Array | undefined; - }; - ['Query']: { - cardById?: GraphQLTypes['Card'] | undefined; - /** Draw a card
*/ - drawCard: GraphQLTypes['Card']; - drawChangeCard: GraphQLTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards: Array; - myStacks?: Array | undefined; - nameables: Array; - }; - /** Card used in card game
*/ - ['Card']: { - /** The attack power
*/ - Attack: number; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The defense power
*/ - Defense: number; - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined; - /** Put your description here */ - cardImage?: GraphQLTypes['S3Object'] | undefined; - /** Description of a card
*/ - description: string; - id: string; - image: string; - /** The name of a card
*/ - name: string; - skills?: Array | undefined; - }; - ['SpecialSkills']: GraphQLTypes['SpecialSkills']; - ['Mutation']: { - /** add Card to Cards database
*/ - addCard: GraphQLTypes['Card']; - }; + ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"] | ModelTypes["Card"]; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string +}; + ["Query"]: { + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["EffectCard"]: { + effectSize: number, + name: string +}; + ["SpecialCard"]: { + effect: string, + name: string +}; + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, + name: string +}; + ["Mutation"]: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] }; + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"]; + /** Card used in card game
*/ +["Card"]: { + /** The attack power
*/ + Attack: number, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The defense power
*/ + Defense: number, + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined, + /** Put your description here */ + cardImage?: GraphQLTypes["S3Object"] | undefined, + /** Description of a card
*/ + description: string, + id: string, + image: string, + /** The name of a card
*/ + name: string, + skills?: Array | undefined +}; + ["Subscription"]: { + deck?: Array | undefined +} + } export type GraphQLTypes = { - /** Aws S3 File */ - ['S3Object']: { - __typename: 'S3Object'; - bucket: string; - key: string; - region: string; - }; - /** create card inputs
*/ - ['createCard']: { - /** The name of a card
*/ - name: string; - /** Description of a card
*/ - description: string; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The attack power
*/ - Attack: number; - /** The defense power
*/ - Defense: number; - /** input skills */ - skills?: Array | undefined; - }; - /** Stack of cards */ - ['CardStack']: { - __typename: 'CardStack'; - cards?: Array | undefined; - name: string; - }; - ['Nameable']: { - __typename: 'CardStack' | 'SpecialCard' | 'EffectCard' | 'Card'; - name: string; - ['...on CardStack']: '__union' & GraphQLTypes['CardStack']; - ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; - ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; - ['...on Card']: '__union' & GraphQLTypes['Card']; - }; - ['ChangeCard']: { - __typename: 'SpecialCard' | 'EffectCard'; - ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; - ['...on EffectCard']: '__union' & GraphQLTypes['EffectCard']; - }; - ['SpecialCard']: { - __typename: 'SpecialCard'; - effect: string; - name: string; - }; - ['EffectCard']: { - __typename: 'EffectCard'; - effectSize: number; - name: string; - }; - ['Subscription']: { - __typename: 'Subscription'; - deck?: Array | undefined; - }; - ['Query']: { - __typename: 'Query'; - cardById?: GraphQLTypes['Card'] | undefined; - /** Draw a card
*/ - drawCard: GraphQLTypes['Card']; - drawChangeCard: GraphQLTypes['ChangeCard']; - /** list All Cards availble
*/ - listCards: Array; - myStacks?: Array | undefined; - nameables: Array; - }; - /** Card used in card game
*/ - ['Card']: { - __typename: 'Card'; - /** The attack power
*/ - Attack: number; - /**
How many children the greek god had
*/ - Children?: number | undefined; - /** The defense power
*/ - Defense: number; - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined; - /** Put your description here */ - cardImage?: GraphQLTypes['S3Object'] | undefined; - /** Description of a card
*/ - description: string; - id: string; - image: string; - /** The name of a card
*/ - name: string; - skills?: Array | undefined; - }; - ['SpecialSkills']: SpecialSkills; - ['Mutation']: { - __typename: 'Mutation'; - /** add Card to Cards database
*/ - addCard: GraphQLTypes['Card']; - }; + ["Nameable"]: { + __typename:"EffectCard" | "SpecialCard" | "CardStack" | "Card", + name: string + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; }; -export const enum SpecialSkills { - THUNDER = 'THUNDER', - RAIN = 'RAIN', - FIRE = 'FIRE', + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string +}; + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["SpecialSkills"]: SpecialSkills; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string +}; + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, + name: string +}; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] +}; + /** create card inputs
*/ +["createCard"]: { + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string +}; + /** Card used in card game
*/ +["Card"]: { + __typename: "Card", + /** The attack power
*/ + Attack: number, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The defense power
*/ + Defense: number, + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined, + /** Put your description here */ + cardImage?: GraphQLTypes["S3Object"] | undefined, + /** Description of a card
*/ + description: string, + id: string, + image: string, + /** The name of a card
*/ + name: string, + skills?: Array | undefined +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined } + } +export const enum SpecialSkills { + THUNDER = "THUNDER", + RAIN = "RAIN", + FIRE = "FIRE" +} \ No newline at end of file diff --git a/examples/typescript-node/tsconfig.json b/examples/typescript-node/tsconfig.json index a316c40f..7453461e 100644 --- a/examples/typescript-node/tsconfig.json +++ b/examples/typescript-node/tsconfig.json @@ -12,7 +12,6 @@ "noUnusedLocals": true, "strict": true, "outDir": "./lib", - "lib": ["es6", "es7", "esnext", "dom"], "rootDir": "./src", "baseUrl": "./src/" }, diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index f926775c..b8b25e6c 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,3 +1,9 @@ +"""""" +interface Nameable { + """""" + name: String! +} + """Aws S3 File""" type S3Object { """""" @@ -10,88 +16,94 @@ type S3Object { region: String! } -"""create card inputs
""" -input createCard { - """The name of a card
""" - name: String! - - """Description of a card
""" - description: String! - - """
How many children the greek god had
""" - Children: Int +"""""" +type Query { + """""" + cardById(cardId: String): Card - """The attack power
""" - Attack: Int! + """Draw a card
""" + drawCard: Card! - """The defense power
""" - Defense: Int! + """""" + drawChangeCard: ChangeCard! - """input skills""" - skills: [SpecialSkills!] -} + """list All Cards availble
""" + listCards: [Card!]! -"""Stack of cards""" -type CardStack implements Nameable { """""" - cards: [Card!] + myStacks: [CardStack!] """""" - name: String! + nameables: [Nameable!]! } """""" -interface Nameable { - """""" - name: String! +enum SpecialSkills { + """Lower enemy defense -5
""" + THUNDER + + """Attack multiple Cards at once
""" + RAIN + + """50% chance to avoid any attack
""" + FIRE } """""" union ChangeCard = SpecialCard | EffectCard """""" -type SpecialCard implements Nameable { +type EffectCard implements Nameable { """""" - effect: String! + effectSize: Float! """""" name: String! } """""" -type EffectCard implements Nameable { +type SpecialCard implements Nameable { """""" - effectSize: Float! + effect: String! """""" name: String! } -"""""" -type Subscription { +"""Stack of cards""" +type CardStack implements Nameable { """""" - deck: [Card!] + cards: [Card!] + + """""" + name: String! } """""" -type Query { - """""" - cardById(cardId: String): Card +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! +} - """Draw a card
""" - drawCard: Card! +"""create card inputs
""" +input createCard { + """
How many children the greek god had
""" + Children: Int - """""" - drawChangeCard: ChangeCard! + """The attack power
""" + Attack: Int! - """list All Cards availble
""" - listCards: [Card!]! + """The defense power
""" + Defense: Int! - """""" - myStacks: [CardStack!] + """input skills""" + skills: [SpecialSkills!] - """""" - nameables: [Nameable!]! + """The name of a card
""" + name: String! + + """Description of a card
""" + description: String! } """Card used in card game
""" @@ -131,21 +143,9 @@ type Card implements Nameable { } """""" -enum SpecialSkills { - """Lower enemy defense -5
""" - THUNDER - - """Attack multiple Cards at once
""" - RAIN - - """50% chance to avoid any attack
""" - FIRE -} - -"""""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! +type Subscription { + """""" + deck: [Card!] } schema{ diff --git a/package.json b/package.json index 73b537d4..a665cff9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-4", + "version": "5.0.0-rc-5", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", @@ -20,6 +20,7 @@ "run-example-typescript-node": "./run-example.sh examples/typescript-node", "lint": "ttsc && eslint \"./src/**/*.{ts,js}\" --quiet --fix", "doc:ci": "cd doc && npm i && npm run build", + "doc:watch": "cd doc && npm run start && cd ..", "produce-lib": "ts-node src/CLI/libBuilder.ts && eslint src/TreeToTS/functions/generated.ts --quiet --fix" }, "repository": { diff --git a/src/__tests__/TreeToJSONSchema/TreeToJSONSchema.spec.ts b/src/TreeToJSONSchema/index.spec.ts similarity index 95% rename from src/__tests__/TreeToJSONSchema/TreeToJSONSchema.spec.ts rename to src/TreeToJSONSchema/index.spec.ts index 19be83fb..fa02f27b 100644 --- a/src/__tests__/TreeToJSONSchema/TreeToJSONSchema.spec.ts +++ b/src/TreeToJSONSchema/index.spec.ts @@ -1,6 +1,6 @@ import { JSONSchema7 } from 'json-schema'; import { Parser } from 'graphql-js-tree'; -import { TreeToJSONSchema } from '../../TreeToJSONSchema'; +import { TreeToJSONSchema } from '@/TreeToJSONSchema'; describe('TreeToJSONSchema tests', () => { it('creates correct input field', () => { const schema = ` diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index fce7fa8f..12059336 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -1,5 +1,91 @@ export default ` +const handleFetchResponse = (response: Response): Promise => { + if (!response.ok) { + return new Promise((_, reject) => { + response + .text() + .then((text) => { + try { + reject(JSON.parse(text)); + } catch (err) { + reject(text); + } + }) + .catch(reject); + }); + } + return response.json(); +}; + +export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { + const fetchOptions = options[1] || {}; + if (fetchOptions.method && fetchOptions.method === 'GET') { + return fetch(\`\${options[0]}?query=\${encodeURIComponent(query)}\`, fetchOptions) + .then(handleFetchResponse) + .then((response: GraphQLResponse) => { + if (response.errors) { + throw new GraphQLError(response); + } + return response.data; + }); + } + return fetch(\`\${options[0]}\`, { + body: JSON.stringify({ query, variables }), + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + ...fetchOptions, + }) + .then(handleFetchResponse) + .then((response: GraphQLResponse) => { + if (response.errors) { + throw new GraphQLError(response); + } + return response.data; + }); +}; + + + + +export const apiSubscription = (options: chainOptions) => (query: string) => { + try { + const queryString = options[0] + '?query=' + encodeURIComponent(query); + const wsString = queryString.replace('http', 'ws'); + const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; + const webSocketOptions = options[1]?.websocket || [host]; + const ws = new WebSocket(...webSocketOptions); + return { + ws, + on: (e: (args: any) => void) => { + ws.onmessage = (event: any) => { + if (event.data) { + const parsed = JSON.parse(event.data); + const data = parsed.data; + return e(data); + } + }; + }, + off: (e: (args: any) => void) => { + ws.onclose = e; + }, + error: (e: (args: any) => void) => { + ws.onerror = e; + }, + open: (e: () => void) => { + ws.onopen = e; + }, + }; + } catch { + throw new Error('No websockets implemented'); + } +}; + + + + export const InternalsBuildQuery = ( @@ -14,9 +100,12 @@ export const InternalsBuildQuery = ( if (!o) { return ''; } - if (typeof o === 'boolean') { + if (typeof o === 'boolean' || typeof o === 'number') { return k; } + if (typeof o === 'string') { + return \`\${k} \${o}\`; + } if (Array.isArray(o)) { return \`\${ibb( \`\${k}(\${InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath)})\`, @@ -138,9 +227,15 @@ export type ReturnTypesType = { | undefined; }; export type InputValueType = { - [x: string]: undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; + [x: string]: undefined | boolean | string | number | [any, undefined | boolean | InputValueType] | InputValueType; }; -export type VType = undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; +export type VType = + | undefined + | boolean + | string + | number + | [any, undefined | boolean | InputValueType] + | InputValueType; export type PlainType = boolean | number | string | null | undefined; export type ZeusArgsType = @@ -346,13 +441,14 @@ type DeepAnify = { type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; type IsArray = T extends Array ? InputType[] : InputType; type FlattenArray = T extends Array ? R : T; +type BaseZeusResolver = boolean | 1 | string; type IsInterfaced, DST> = FlattenArray extends ZEUS_INTERFACES | ZEUS_UNIONS ? { [P in keyof SRC]: SRC[P] extends '__union' & infer R ? P extends keyof DST ? IsArray - : {} + : Record : never; }[keyof DST] & { @@ -364,16 +460,16 @@ type IsInterfaced, DST> = FlattenArray extends Z }[keyof DST] >, '__typename' - >]: IsPayLoad extends boolean ? SRC[P] : IsArray; + >]: IsPayLoad extends BaseZeusResolver ? SRC[P] : IsArray; } : { - [P in keyof Pick]: IsPayLoad extends boolean ? SRC[P] : IsArray; + [P in keyof Pick]: IsPayLoad extends BaseZeusResolver ? SRC[P] : IsArray; }; export type MapType = SRC extends DeepAnify ? IsInterfaced : never; export type InputType = IsPayLoad extends { __alias: infer R } ? { - [P in keyof R]: MapType; + [P in keyof R]: MapType[keyof MapType]; } & MapType, '__alias'>> : MapType>; diff --git a/src/TreeToTS/functions/new/apiFetch.ts b/src/TreeToTS/functions/new/apiFetch.ts new file mode 100644 index 00000000..df520c9d --- /dev/null +++ b/src/TreeToTS/functions/new/apiFetch.ts @@ -0,0 +1,48 @@ +import { fetchOptions, GraphQLError, GraphQLResponse } from '@/TreeToTS/functions/new/models'; + +const handleFetchResponse = (response: Response): Promise => { + if (!response.ok) { + return new Promise((_, reject) => { + response + .text() + .then((text) => { + try { + reject(JSON.parse(text)); + } catch (err) { + reject(text); + } + }) + .catch(reject); + }); + } + return response.json(); +}; + +export const apiFetch = (options: fetchOptions) => (query: string, variables: Record = {}) => { + const fetchOptions = options[1] || {}; + if (fetchOptions.method && fetchOptions.method === 'GET') { + return fetch(`${options[0]}?query=${encodeURIComponent(query)}`, fetchOptions) + .then(handleFetchResponse) + .then((response: GraphQLResponse) => { + if (response.errors) { + throw new GraphQLError(response); + } + return response.data; + }); + } + return fetch(`${options[0]}`, { + body: JSON.stringify({ query, variables }), + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + ...fetchOptions, + }) + .then(handleFetchResponse) + .then((response: GraphQLResponse) => { + if (response.errors) { + throw new GraphQLError(response); + } + return response.data; + }); +}; diff --git a/src/TreeToTS/functions/new/apiSubscription.ts b/src/TreeToTS/functions/new/apiSubscription.ts new file mode 100644 index 00000000..ee80cec6 --- /dev/null +++ b/src/TreeToTS/functions/new/apiSubscription.ts @@ -0,0 +1,34 @@ +import { chainOptions } from '@/TreeToTS/functions/new/models'; + +export const apiSubscription = (options: chainOptions) => (query: string) => { + try { + const queryString = options[0] + '?query=' + encodeURIComponent(query); + const wsString = queryString.replace('http', 'ws'); + const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; + const webSocketOptions = options[1]?.websocket || [host]; + const ws = new WebSocket(...webSocketOptions); + return { + ws, + on: (e: (args: any) => void) => { + ws.onmessage = (event: any) => { + if (event.data) { + const parsed = JSON.parse(event.data); + const data = parsed.data; + return e(data); + } + }; + }, + off: (e: (args: any) => void) => { + ws.onclose = e; + }, + error: (e: (args: any) => void) => { + ws.onerror = e; + }, + open: (e: () => void) => { + ws.onopen = e; + }, + }; + } catch { + throw new Error('No websockets implemented'); + } +}; diff --git a/src/TreeToTS/functions/new/buildQuery.spec.ts b/src/TreeToTS/functions/new/buildQuery.spec.ts index 7c271001..5871e261 100644 --- a/src/TreeToTS/functions/new/buildQuery.spec.ts +++ b/src/TreeToTS/functions/new/buildQuery.spec.ts @@ -285,4 +285,23 @@ describe('Test generated function buildQuery', () => { } }`); }); + test('Simple query with directives', () => { + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, { operationName: 'MyQuery' }); + const matchExact = replSpace( + builder('query', { + cards: { + name: `@skip(if: true)`, + age: true, + bio: true, + }, + }), + ); + matchExact(`query MyQuery{ + cards{ + name @skip(if: true) + age + bio + } + }`); + }); }); diff --git a/src/TreeToTS/functions/new/buildQuery.ts b/src/TreeToTS/functions/new/buildQuery.ts index ddd3501d..8973d07e 100644 --- a/src/TreeToTS/functions/new/buildQuery.ts +++ b/src/TreeToTS/functions/new/buildQuery.ts @@ -22,9 +22,12 @@ export const InternalsBuildQuery = ( if (!o) { return ''; } - if (typeof o === 'boolean') { + if (typeof o === 'boolean' || typeof o === 'number') { return k; } + if (typeof o === 'string') { + return `${k} ${o}`; + } if (Array.isArray(o)) { return `${ibb( `${k}(${InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath)})`, diff --git a/src/TreeToTS/functions/new/models.ts b/src/TreeToTS/functions/new/models.ts index 05128e27..073bfdfb 100644 --- a/src/TreeToTS/functions/new/models.ts +++ b/src/TreeToTS/functions/new/models.ts @@ -23,9 +23,15 @@ export type ReturnTypesType = { | undefined; }; export type InputValueType = { - [x: string]: undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; + [x: string]: undefined | boolean | string | number | [any, undefined | boolean | InputValueType] | InputValueType; }; -export type VType = undefined | boolean | [any, undefined | boolean | InputValueType] | InputValueType; +export type VType = + | undefined + | boolean + | string + | number + | [any, undefined | boolean | InputValueType] + | InputValueType; export type PlainType = boolean | number | string | null | undefined; export type ZeusArgsType = diff --git a/src/TreeToTS/functions/new/types.ts b/src/TreeToTS/functions/new/types.ts index 738537b7..0f888c35 100644 --- a/src/TreeToTS/functions/new/types.ts +++ b/src/TreeToTS/functions/new/types.ts @@ -19,6 +19,7 @@ type DeepAnify = { type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; type IsArray = T extends Array ? InputType[] : InputType; type FlattenArray = T extends Array ? R : T; +type BaseZeusResolver = boolean | 1 | string; type IsInterfaced, DST> = FlattenArray extends ZEUS_INTERFACES | ZEUS_UNIONS ? { @@ -37,10 +38,10 @@ type IsInterfaced, DST> = FlattenArray extends Z }[keyof DST] >, '__typename' - >]: IsPayLoad extends boolean ? SRC[P] : IsArray; + >]: IsPayLoad extends BaseZeusResolver ? SRC[P] : IsArray; } : { - [P in keyof Pick]: IsPayLoad extends boolean ? SRC[P] : IsArray; + [P in keyof Pick]: IsPayLoad extends BaseZeusResolver ? SRC[P] : IsArray; }; export type MapType = SRC extends DeepAnify ? IsInterfaced : never; diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index b10ed0bf..d8542084 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -84,12 +84,18 @@ export class TreeToTS { esModule?: boolean; }) { return { - indexImports: `import { AllTypesProps, ReturnTypes, Ops } from './const${esModule ? '.js' : ''}';`, + indexImports: `import { AllTypesProps, ReturnTypes, Ops } from './const${esModule ? '.js' : ''}';`.concat( + env === 'node' + ? ` +import fetch, { Response } from 'node-fetch'; +import WebSocket from 'ws';` + : ``, + ), const: TreeToTS.resolveBasisCode(tree), index: '' .concat(host ? `export const HOST = "${host}"` : '\n\nexport const HOST="Specify host"') .concat('\n') - .concat(typescriptFunctions(env)) + .concat(typescriptFunctions()) .concat('\n') .concat(TreeToTS.resolveBasisTypes(tree)), }; diff --git a/src/TreeToTS/templates/shared/field.spec.ts b/src/TreeToTS/templates/shared/field.spec.ts index f49bcf94..8e706ab8 100644 --- a/src/TreeToTS/templates/shared/field.spec.ts +++ b/src/TreeToTS/templates/shared/field.spec.ts @@ -58,4 +58,26 @@ describe('Test type field generation', () => { }); expect(resolvedString).toEqual(`Array`); }); + test('Required nested Array Required Field generation', () => { + const resolvedString = resolveFieldType('Person', { + type: Options.required, + nest: { + type: Options.array, + nest: { + type: Options.required, + nest: { + type: Options.array, + nest: { + type: Options.required, + nest: { + type: Options.name, + name: 'Int', + }, + }, + }, + }, + }, + }); + expect(resolvedString).toEqual(`Array>`); + }); }); diff --git a/src/TreeToTS/templates/truthy.ts b/src/TreeToTS/templates/truthy.ts index 6f40b1cf..e4d35d16 100644 --- a/src/TreeToTS/templates/truthy.ts +++ b/src/TreeToTS/templates/truthy.ts @@ -1 +1 @@ -export const truthyType = 'boolean'; +export const truthyType = 'boolean | `@${string}`'; diff --git a/src/TreeToTS/templates/typescript/functions.ts b/src/TreeToTS/templates/typescript/functions.ts index bf92e844..17f7ea77 100644 --- a/src/TreeToTS/templates/typescript/functions.ts +++ b/src/TreeToTS/templates/typescript/functions.ts @@ -1,8 +1,5 @@ -import { Environment } from '@/Models'; import generated from '@/TreeToTS/functions/generated'; -export const typescriptFunctions = (env: Environment): string => ` -${require(`./${env}/fetchFunction`).default} -${require(`./${env}/apiSubscription`).default} +export const typescriptFunctions = (): string => ` ${generated} `; From cdda91a3d71a1179038a4a6bc3fd6cbbfedcbcca Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 15 Apr 2022 13:16:46 +0200 Subject: [PATCH 14/74] :sparkles: Object directives --- README.md | 2 +- doc/src/markdown/graphql/directives.md | 49 ++++- examples/typescript-node/src/index.ts | 1 + examples/typescript-node/src/zeus/const.ts | 160 ++++++++------- examples/typescript-node/src/zeus/index.ts | 221 +++++++++++---------- examples/typescript-node/zeus.graphql | 114 ++++++----- package.json | 2 +- src/TreeToTS/functions/generated.ts | 5 +- src/TreeToTS/functions/new/buildQuery.ts | 4 +- src/TreeToTS/functions/new/mocks.ts | 4 + src/TreeToTS/functions/new/types.ts | 1 + 11 files changed, 314 insertions(+), 249 deletions(-) diff --git a/README.md b/README.md index ad421dd2..16ef94d3 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Example using a generated `chain` client. Queries, mutations and subscriptions a ## Support And Community -[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI) +[Join our GraphQL Editor Channel on Discord!](https://discord.gg/QhWqPdRsud) Leave a GitHub star ⭐️ 😊 diff --git a/doc/src/markdown/graphql/directives.md b/doc/src/markdown/graphql/directives.md index fddc5bc1..dabd790c 100644 --- a/doc/src/markdown/graphql/directives.md +++ b/doc/src/markdown/graphql/directives.md @@ -27,6 +27,53 @@ const listCardsAndDraw = await chain('query')({ So you need to put full string instead of `true`. +### Use on object field + +Use directive on `drawCard` + +```ts +import { Chain } from './zeus'; + +// Create a Chain client instance with the endpoint +const chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql'); + +// Query the endpoint with Typescript autocomplete for arguments and response fields +const listCardsAndDraw = await chain('query')({ + drawCard: { + __directives: `@skip(if:true)`, + name: true, + skills: true, + }, +}); +``` + +### Use on function + +````ts +import { Chain } from './zeus'; + +// Create a Chain client instance with the endpoint +const chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql'); + +// Query the endpoint with Typescript autocomplete for arguments and response fields +const listCardsAndDraw = await chain('query')({ + drawCard: { + name: true, + skills: true, + attack:[ + { + cardId:['2312321'] + }, + { + __directives: `@skip(if:true)`, + name: true, + skills: true, + } + ] + } +}); +``` + #### Use it with variables ```ts @@ -51,4 +98,4 @@ const listCardsAndDraw = await chain('query')({ variables } }); -``` +```` diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index f4e6fed8..a667e1d9 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -109,6 +109,7 @@ const run = async () => { }, drawCard: { Attack: true, + name: `@skip(if:true)`, }, drawChangeCard: { '...on SpecialCard': { diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index e161e90a..fc4b0b56 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,86 +1,84 @@ /* eslint-disable */ -export const AllTypesProps: Record = { - Query:{ - cardById:{ +export const AllTypesProps: Record = { + SpecialSkills: true, + JSON: 'String', + createCard: { + skills: 'SpecialSkills', + }, + Query: { + cardById: {}, + }, + Mutation: { + addCard: { + card: 'createCard', + }, + }, + Card: { + attack: {}, + }, +}; - } - }, - SpecialSkills: true, - Mutation:{ - addCard:{ - card:"createCard" - } - }, - createCard:{ - skills:"SpecialSkills" - }, - Card:{ - attack:{ - - } - } -} - -export const ReturnTypes: Record = { - Nameable:{ - "...on EffectCard": "EffectCard", - "...on SpecialCard": "SpecialCard", - "...on CardStack": "CardStack", - "...on Card": "Card", - name:"String" - }, - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" - }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, - EffectCard:{ - effectSize:"Float", - name:"String" - }, - SpecialCard:{ - effect:"String", - name:"String" - }, - CardStack:{ - cards:"Card", - name:"String" - }, - Mutation:{ - addCard:"Card" - }, - Card:{ - Attack:"Int", - Children:"Int", - Defense:"Int", - attack:"Card", - cardImage:"S3Object", - description:"String", - id:"ID", - image:"String", - name:"String", - skills:"SpecialSkills" - }, - Subscription:{ - deck:"Card" - } -} +export const ReturnTypes: Record = { + CardStack: { + cards: 'Card', + name: 'String', + }, + Query: { + cardById: 'Card', + drawCard: 'Card', + drawChangeCard: 'ChangeCard', + listCards: 'Card', + myStacks: 'CardStack', + nameables: 'Nameable', + }, + Nameable: { + '...on CardStack': 'CardStack', + '...on SpecialCard': 'SpecialCard', + '...on Card': 'Card', + '...on EffectCard': 'EffectCard', + name: 'String', + }, + S3Object: { + bucket: 'String', + key: 'String', + region: 'String', + }, + SpecialCard: { + effect: 'String', + name: 'String', + }, + Mutation: { + addCard: 'Card', + }, + Subscription: { + deck: 'Card', + }, + Card: { + Attack: 'Int', + Children: 'Int', + Defense: 'Int', + attack: 'Card', + cardImage: 'S3Object', + description: 'String', + id: 'ID', + image: 'String', + info: 'JSON', + name: 'String', + skills: 'SpecialSkills', + }, + ChangeCard: { + '...on SpecialCard': 'SpecialCard', + '...on EffectCard': 'EffectCard', + }, + EffectCard: { + effectSize: 'Float', + name: 'String', + }, +}; export const Ops = { -query: "Query" as const, - mutation: "Mutation" as const, - subscription: "Subscription" as const -} \ No newline at end of file + query: 'Query' as const, + mutation: 'Mutation' as const, + subscription: 'Subscription' as const, +}; diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 8f931cdb..ae893578 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -133,8 +133,8 @@ export const InternalsBuildQuery = ( } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; const hasVariables = root && options?.variables?.$params ? `(${options.variables?.$params})` : ''; - - return `${k}${hasOperationName}${hasVariables}{${Object.entries(o) + const keyForDirectives = o.__directives ? `${k} ${o.__directives}` : k; + return `${keyForDirectives}${hasOperationName}${hasVariables}{${Object.entries(o) .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join(SEPARATOR), false)) .join('\n')}}`; }; @@ -438,6 +438,7 @@ export type ZeusHook< export type WithTypeNameValue = T & { __typename?: boolean; + __directives?: string; }; export type AliasType = WithTypeNameValue & { __alias?: Record>; @@ -529,21 +530,29 @@ type ZEUS_INTERFACES = GraphQLTypes["Nameable"] type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on EffectCard']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on CardStack']?: Omit; - ['...on Card']?: Omit; - __typename?: boolean | `@${string}` -}>; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, + ["SpecialSkills"]:SpecialSkills; + ["JSON"]:unknown; + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; + /** create card inputs
*/ +["createCard"]: { + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined | null, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined | null +}; ["Query"]: AliasType<{ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], /** Draw a card
*/ @@ -555,46 +564,34 @@ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], nameables?:ValueTypes["Nameable"], __typename?: boolean | `@${string}` }>; - ["SpecialSkills"]:SpecialSkills; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on CardStack']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on Card']?: Omit; + ['...on EffectCard']?: Omit; __typename?: boolean | `@${string}` }>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, - name?:boolean | `@${string}`, + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; ["SpecialCard"]: AliasType<{ effect?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}>; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` }>; ["Mutation"]: AliasType<{ addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], __typename?: boolean | `@${string}` }>; - /** create card inputs
*/ -["createCard"]: { - /**
How many children the greek god had
*/ - Children?: number | undefined | null, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined | null, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string -}; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; /** Card used in card game
*/ ["Card"]: AliasType<{ /** The attack power
*/ @@ -611,25 +608,33 @@ attack?: [{ /** Attacked card/card ids
*/ description?:boolean | `@${string}`, id?:boolean | `@${string}`, image?:boolean | `@${string}`, + info?:boolean | `@${string}`, /** The name of a card
*/ name?:boolean | `@${string}`, skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean | `@${string}` +}>; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }> } export type ModelTypes = { - ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"] | ModelTypes["Card"]; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + ["JSON"]:any; + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, + name: string }; + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"]; ["Query"]: { cardById?: GraphQLTypes["Card"] | undefined, /** Draw a card
*/ @@ -640,27 +645,24 @@ export type ModelTypes = { myStacks?: Array | undefined, nameables: Array }; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["EffectCard"]: { - effectSize: number, - name: string + ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["SpecialCard"] | ModelTypes["Card"] | ModelTypes["EffectCard"]; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string }; ["SpecialCard"]: { effect: string, name: string -}; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string }; ["Mutation"]: { /** add Card to Cards database
*/ addCard: GraphQLTypes["Card"] }; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"]; + ["Subscription"]: { + deck?: Array | undefined +}; /** Card used in card game
*/ ["Card"]: { /** The attack power
*/ @@ -677,30 +679,41 @@ export type ModelTypes = { description: string, id: string, image: string, + info: GraphQLTypes["JSON"], /** The name of a card
*/ name: string, skills?: Array | undefined }; - ["Subscription"]: { - deck?: Array | undefined + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["EffectCard"]: { + effectSize: number, + name: string } } export type GraphQLTypes = { - ["Nameable"]: { - __typename:"EffectCard" | "SpecialCard" | "CardStack" | "Card", + ["SpecialSkills"]: SpecialSkills; + ["JSON"]: any; + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, name: string - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; }; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string + /** create card inputs
*/ +["createCard"]: { + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined }; ["Query"]: { __typename: "Query", @@ -713,47 +726,34 @@ export type GraphQLTypes = { myStacks?: Array | undefined, nameables: Array }; - ["SpecialSkills"]: SpecialSkills; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ["Nameable"]: { + __typename:"CardStack" | "SpecialCard" | "Card" | "EffectCard", + name: string + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, - name: string + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string }; ["SpecialCard"]: { __typename: "SpecialCard", effect: string, name: string -}; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, - name: string }; ["Mutation"]: { __typename: "Mutation", /** add Card to Cards database
*/ addCard: GraphQLTypes["Card"] }; - /** create card inputs
*/ -["createCard"]: { - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined }; /** Card used in card game
*/ ["Card"]: { @@ -772,13 +772,20 @@ export type GraphQLTypes = { description: string, id: string, image: string, + info: GraphQLTypes["JSON"], /** The name of a card
*/ name: string, skills?: Array | undefined }; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string } } export const enum SpecialSkills { diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index b8b25e6c..4b78ed48 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,19 +1,46 @@ """""" -interface Nameable { - """""" - name: String! +enum SpecialSkills { + """Lower enemy defense -5
""" + THUNDER + + """Attack multiple Cards at once
""" + RAIN + + """50% chance to avoid any attack
""" + FIRE } -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! +"""""" +scalar JSON +"""Stack of cards""" +type CardStack implements Nameable { """""" - key: String! + cards: [Card!] """""" - region: String! + name: String! +} + +"""create card inputs
""" +input createCard { + """The name of a card
""" + name: String! + + """Description of a card
""" + description: String! + + """
How many children the greek god had
""" + Children: Int + + """The attack power
""" + Attack: Int! + + """The defense power
""" + Defense: Int! + + """input skills""" + skills: [SpecialSkills!] } """""" @@ -38,27 +65,21 @@ type Query { } """""" -enum SpecialSkills { - """Lower enemy defense -5
""" - THUNDER - - """Attack multiple Cards at once
""" - RAIN - - """50% chance to avoid any attack
""" - FIRE +interface Nameable { + """""" + name: String! } -"""""" -union ChangeCard = SpecialCard | EffectCard +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! -"""""" -type EffectCard implements Nameable { """""" - effectSize: Float! + key: String! """""" - name: String! + region: String! } """""" @@ -70,40 +91,16 @@ type SpecialCard implements Nameable { name: String! } -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - - """""" - name: String! -} - """""" type Mutation { """add Card to Cards database
""" addCard(card: createCard!): Card! } -"""create card inputs
""" -input createCard { - """
How many children the greek god had
""" - Children: Int - - """The attack power
""" - Attack: Int! - - """The defense power
""" - Defense: Int! - - """input skills""" - skills: [SpecialSkills!] - - """The name of a card
""" - name: String! - - """Description of a card
""" - description: String! +"""""" +type Subscription { + """""" + deck: [Card!] } """Card used in card game
""" @@ -135,6 +132,9 @@ type Card implements Nameable { """""" image: String! + """""" + info: JSON! + """The name of a card
""" name: String! @@ -143,9 +143,15 @@ type Card implements Nameable { } """""" -type Subscription { +union ChangeCard = SpecialCard | EffectCard + +"""""" +type EffectCard implements Nameable { """""" - deck: [Card!] + effectSize: Float! + + """""" + name: String! } schema{ diff --git a/package.json b/package.json index a665cff9..52af22ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-5", + "version": "5.0.0-rc-6", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 12059336..5d6d6666 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -126,8 +126,8 @@ export const InternalsBuildQuery = ( } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; const hasVariables = root && options?.variables?.$params ? \`(\${options.variables?.$params})\` : ''; - - return \`\${k}\${hasOperationName}\${hasVariables}{\${Object.entries(o) + const keyForDirectives = o.__directives ? \`\${k} \${o.__directives}\` : k; + return \`\${keyForDirectives}\${hasOperationName}\${hasVariables}{\${Object.entries(o) .map((e) => ibb(...e, [p, \`field<>\${keyForPath}\`].join(SEPARATOR), false)) .join('\\n')}}\`; }; @@ -431,6 +431,7 @@ export type ZeusHook< export type WithTypeNameValue = T & { __typename?: boolean; + __directives?: string; }; export type AliasType = WithTypeNameValue & { __alias?: Record>; diff --git a/src/TreeToTS/functions/new/buildQuery.ts b/src/TreeToTS/functions/new/buildQuery.ts index 8973d07e..4848392f 100644 --- a/src/TreeToTS/functions/new/buildQuery.ts +++ b/src/TreeToTS/functions/new/buildQuery.ts @@ -48,8 +48,8 @@ export const InternalsBuildQuery = ( } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; const hasVariables = root && options?.variables?.$params ? `(${options.variables?.$params})` : ''; - - return `${k}${hasOperationName}${hasVariables}{${Object.entries(o) + const keyForDirectives = o.__directives ? `${k} ${o.__directives}` : k; + return `${keyForDirectives}${hasOperationName}${hasVariables}{${Object.entries(o) .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join(SEPARATOR), false)) .join('\n')}}`; }; diff --git a/src/TreeToTS/functions/new/mocks.ts b/src/TreeToTS/functions/new/mocks.ts index 3e1cfafb..b211177a 100644 --- a/src/TreeToTS/functions/new/mocks.ts +++ b/src/TreeToTS/functions/new/mocks.ts @@ -37,6 +37,10 @@ export const ReturnTypes = { }, }; +export const CustomScalars = { + JSON: true, +}; + export const Ops = { query: 'Query' as const, mutation: 'Mutation' as const, diff --git a/src/TreeToTS/functions/new/types.ts b/src/TreeToTS/functions/new/types.ts index 0f888c35..108fabe3 100644 --- a/src/TreeToTS/functions/new/types.ts +++ b/src/TreeToTS/functions/new/types.ts @@ -9,6 +9,7 @@ export type ZeusHook< export type WithTypeNameValue = T & { __typename?: boolean; + __directives?: string; }; export type AliasType = WithTypeNameValue & { __alias?: Record>; From b1e3d7364a0d64c8ef77e7d9d2268b5242fabf8c Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 15 Apr 2022 17:07:52 +0200 Subject: [PATCH 15/74] :sparkles: removed cli flag --- package.json | 2 +- src/CLI/index.ts | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/package.json b/package.json index 52af22ae..3625c615 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-6", + "version": "5.0.0-rc-7", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/CLI/index.ts b/src/CLI/index.ts index 6df5cd01..541205e0 100644 --- a/src/CLI/index.ts +++ b/src/CLI/index.ts @@ -16,11 +16,6 @@ zeus [path] [output_path] [options] describe: 'Generate client for NodeJS( default is for browser and react-native )', boolean: true, }) - .option('typescript', { - alias: 'ts', - describe: 'Output TypeScript only', - boolean: true, - }) .option('esModule', { alias: 'es', describe: 'Use .js import in TypeScript to use with esModules', From 157e65024f0ba730ba74afb6fe1ce807524a249d Mon Sep 17 00:00:00 2001 From: aexol Date: Sun, 17 Apr 2022 12:38:48 +0200 Subject: [PATCH 16/74] :pencil2: Fixed old files --- examples/typescript-node/src/index.ts | 1 + examples/typescript-node/src/zeus/apollo.ts | 32 +-- examples/typescript-node/src/zeus/const.ts | 162 ++++++------ examples/typescript-node/src/zeus/index.ts | 238 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- examples/typescript-node/zeus.graphql | 116 ++++----- package.json | 2 +- src/TreeToTS/functions/generated.ts | 12 - src/TreeToTS/functions/new/mocks.ts | 6 + .../functions/new/variableParameter.sts | 10 - 10 files changed, 290 insertions(+), 313 deletions(-) delete mode 100644 src/TreeToTS/functions/new/variableParameter.sts diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index a667e1d9..c95a82f5 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -6,6 +6,7 @@ const sel = Selector('Query')({ drawCard: { Children: true, Attack: true, + info: true, attack: [{ cardID: ['sss'] }, { Attack: true }], }, cardById: [{ cardId: '' }, { Attack: true }], diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 2f84d501..2f3a3d66 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,10 +1,24 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; -import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; -import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; +import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; +import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +export function useTypedSubscription( + subscription: Z | ValueTypes[O], + options?: SubscriptionHookOptions>, + operationOptions?: OperationOptions, +) { + return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); +} +export function useTypedMutation( + mutation: Z | ValueTypes[O], + options?: MutationHookOptions>, + operationOptions?: OperationOptions, +) { + return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); +} export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, @@ -19,17 +33,3 @@ export function useTypedLazyQuery( ) { return useLazyQuery>(gql(Zeus("query",LazyQuery, operationOptions)), options); } -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationOptions?: OperationOptions, -) { - return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); -} -export function useTypedSubscription( - subscription: Z | ValueTypes[O], - options?: SubscriptionHookOptions>, - operationOptions?: OperationOptions, -) { - return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); -} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index fc4b0b56..10a7783d 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,84 +1,88 @@ /* eslint-disable */ -export const AllTypesProps: Record = { - SpecialSkills: true, - JSON: 'String', - createCard: { - skills: 'SpecialSkills', - }, - Query: { - cardById: {}, - }, - Mutation: { - addCard: { - card: 'createCard', - }, - }, - Card: { - attack: {}, - }, -}; +export const AllTypesProps: Record = { + SpecialSkills: true, + Mutation:{ + addCard:{ + card:"createCard" + } + }, + createCard:{ + skills:"SpecialSkills" + }, + Card:{ + attack:{ -export const ReturnTypes: Record = { - CardStack: { - cards: 'Card', - name: 'String', - }, - Query: { - cardById: 'Card', - drawCard: 'Card', - drawChangeCard: 'ChangeCard', - listCards: 'Card', - myStacks: 'CardStack', - nameables: 'Nameable', - }, - Nameable: { - '...on CardStack': 'CardStack', - '...on SpecialCard': 'SpecialCard', - '...on Card': 'Card', - '...on EffectCard': 'EffectCard', - name: 'String', - }, - S3Object: { - bucket: 'String', - key: 'String', - region: 'String', - }, - SpecialCard: { - effect: 'String', - name: 'String', - }, - Mutation: { - addCard: 'Card', - }, - Subscription: { - deck: 'Card', - }, - Card: { - Attack: 'Int', - Children: 'Int', - Defense: 'Int', - attack: 'Card', - cardImage: 'S3Object', - description: 'String', - id: 'ID', - image: 'String', - info: 'JSON', - name: 'String', - skills: 'SpecialSkills', - }, - ChangeCard: { - '...on SpecialCard': 'SpecialCard', - '...on EffectCard': 'EffectCard', - }, - EffectCard: { - effectSize: 'Float', - name: 'String', - }, -}; + } + }, + JSON: "String", + Query:{ + cardById:{ + + } + } +} + +export const ReturnTypes: Record = { + Subscription:{ + deck:"Card" + }, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, + Mutation:{ + addCard:"Card" + }, + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" + }, + SpecialCard:{ + effect:"String", + name:"String" + }, + CardStack:{ + cards:"Card", + name:"String" + }, + Card:{ + Attack:"Int", + Children:"Int", + Defense:"Int", + attack:"Card", + cardImage:"S3Object", + description:"String", + id:"ID", + image:"String", + info:"JSON", + name:"String", + skills:"SpecialSkills" + }, + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" + }, + Nameable:{ + "...on SpecialCard": "SpecialCard", + "...on CardStack": "CardStack", + "...on Card": "Card", + "...on EffectCard": "EffectCard", + name:"String" + }, + EffectCard:{ + effectSize:"Float", + name:"String" + } +} export const Ops = { - query: 'Query' as const, - mutation: 'Mutation' as const, - subscription: 'Subscription' as const, -}; +subscription: "Subscription" as const, + mutation: "Mutation" as const, + query: "Query" as const +} \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index ae893578..3a278254 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -514,32 +514,30 @@ export type VariableInput = { }; -export const VariableParameters = (variables: T) => ( - values: { - // eslint-disable-next-line prettier/prettier - [P in keyof T]: string; - }, -) => { - return Object.keys(variables) - .map((k) => `${k}: ${values[k as keyof T]}`) - .join(', '); -}; - - type ZEUS_INTERFACES = GraphQLTypes["Nameable"] type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["SpecialSkills"]:SpecialSkills; - ["JSON"]:unknown; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean | `@${string}`, + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], __typename?: boolean | `@${string}` }>; /** create card inputs
*/ ["createCard"]: { + /** input skills */ + skills?: Array | undefined | null, /** The name of a card
*/ name: string, /** Description of a card
*/ @@ -549,34 +547,10 @@ export type ValueTypes = { /** The attack power
*/ Attack: number, /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined | null + Defense: number }; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], - /** Draw a card
*/ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean | `@${string}` -}>; - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on CardStack']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on Card']?: Omit; - ['...on EffectCard']?: Omit; - __typename?: boolean | `@${string}` -}>; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` }>; ["SpecialCard"]: AliasType<{ @@ -584,12 +558,10 @@ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; /** Card used in card game
*/ @@ -614,8 +586,24 @@ attack?: [{ /** Attacked card/card ids
*/ skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] + ["JSON"]:unknown; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], + /** Draw a card
*/ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean | `@${string}` +}>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on SpecialCard']?: Omit; + ['...on CardStack']?: Omit; + ['...on Card']?: Omit; + ['...on EffectCard']?: Omit; __typename?: boolean | `@${string}` }>; ["EffectCard"]: AliasType<{ @@ -626,42 +614,31 @@ attack?: [{ /** Attacked card/card ids
*/ } export type ModelTypes = { - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["JSON"]:any; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string -}; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"]; - ["Query"]: { - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array + ["Subscription"]: { + deck?: Array | undefined }; - ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["SpecialCard"] | ModelTypes["Card"] | ModelTypes["EffectCard"]; /** Aws S3 File */ ["S3Object"]: { bucket: string, key: string, region: string }; - ["SpecialCard"]: { - effect: string, - name: string -}; + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; ["Mutation"]: { /** add Card to Cards database
*/ addCard: GraphQLTypes["Card"] }; - ["Subscription"]: { - deck?: Array | undefined + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"]; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["SpecialCard"]: { + effect: string, + name: string +}; + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, + name: string }; /** Card used in card game
*/ ["Card"]: { @@ -684,7 +661,18 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["JSON"]:any; + ["Query"]: { + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["Nameable"]: ModelTypes["SpecialCard"] | ModelTypes["CardStack"] | ModelTypes["Card"] | ModelTypes["EffectCard"]; ["EffectCard"]: { effectSize: number, name: string @@ -692,17 +680,28 @@ export type ModelTypes = { } export type GraphQLTypes = { - ["SpecialSkills"]: SpecialSkills; - ["JSON"]: any; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, - name: string + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined +}; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string +}; + ["SpecialSkills"]: SpecialSkills; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] }; /** create card inputs
*/ ["createCard"]: { - /** The name of a card
*/ + /** input skills */ + skills?: Array | undefined, + /** The name of a card
*/ name: string, /** Description of a card
*/ description: string, @@ -711,49 +710,23 @@ export type GraphQLTypes = { /** The attack power
*/ Attack: number, /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined + Defense: number }; - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - ["Nameable"]: { - __typename:"CardStack" | "SpecialCard" | "Card" | "EffectCard", - name: string - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string }; ["SpecialCard"]: { __typename: "SpecialCard", effect: string, name: string }; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, + name: string }; /** Card used in card game
*/ ["Card"]: { @@ -777,9 +750,24 @@ export type GraphQLTypes = { name: string, skills?: Array | undefined }; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ["JSON"]: any; + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["Nameable"]: { + __typename:"SpecialCard" | "CardStack" | "Card" | "EffectCard", + name: string + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; ["EffectCard"]: { diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 77ddaaaf..0c742c2d 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useQuery, useMutation } from 'react-query'; -import type { UseQueryOptions, UseMutationOptions } from 'react-query'; +import { useMutation, useQuery } from 'react-query'; +import type { UseMutationOptions, UseQueryOptions } from 'react-query'; -export function useTypedQuery>( - queryKey: string | unknown[], - query: TData | ValueTypes[O], - options?: Omit, 'queryKey' | 'queryFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); -} export function useTypedMutation>( mutationKey: string | unknown[], mutation: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } +export function useTypedQuery>( + queryKey: string | unknown[], + query: TData | ValueTypes[O], + options?: Omit, 'queryKey' | 'queryFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 4b78ed48..357ca6c9 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,3 +1,21 @@ +"""""" +type Subscription { + """""" + deck: [Card!] +} + +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! + + """""" + key: String! + + """""" + region: String! +} + """""" enum SpecialSkills { """Lower enemy defense -5
""" @@ -11,19 +29,16 @@ enum SpecialSkills { } """""" -scalar JSON - -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - - """""" - name: String! +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! } """create card inputs
""" input createCard { + """input skills""" + skills: [SpecialSkills!] + """The name of a card
""" name: String! @@ -38,49 +53,10 @@ input createCard { """The defense power
""" Defense: Int! - - """input skills""" - skills: [SpecialSkills!] } """""" -type Query { - """""" - cardById(cardId: String): Card - - """Draw a card
""" - drawCard: Card! - - """""" - drawChangeCard: ChangeCard! - - """list All Cards availble
""" - listCards: [Card!]! - - """""" - myStacks: [CardStack!] - - """""" - nameables: [Nameable!]! -} - -"""""" -interface Nameable { - """""" - name: String! -} - -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - - """""" - key: String! - - """""" - region: String! -} +union ChangeCard = SpecialCard | EffectCard """""" type SpecialCard implements Nameable { @@ -91,16 +67,13 @@ type SpecialCard implements Nameable { name: String! } -"""""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! -} +"""Stack of cards""" +type CardStack implements Nameable { + """""" + cards: [Card!] -"""""" -type Subscription { """""" - deck: [Card!] + name: String! } """Card used in card game
""" @@ -143,7 +116,34 @@ type Card implements Nameable { } """""" -union ChangeCard = SpecialCard | EffectCard +scalar JSON + +"""""" +type Query { + """""" + cardById(cardId: String): Card + + """Draw a card
""" + drawCard: Card! + + """""" + drawChangeCard: ChangeCard! + + """list All Cards availble
""" + listCards: [Card!]! + + """""" + myStacks: [CardStack!] + + """""" + nameables: [Nameable!]! +} + +"""""" +interface Nameable { + """""" + name: String! +} """""" type EffectCard implements Nameable { diff --git a/package.json b/package.json index 3625c615..92b9e4d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-7", + "version": "5.0.0-rc-8", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 5d6d6666..70185055 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -505,16 +505,4 @@ export type VariableInput = { $params: ReturnType>['$params']; values: Record; }; - - -export const VariableParameters = (variables: T) => ( - values: { - // eslint-disable-next-line prettier/prettier - [P in keyof T]: string; - }, -) => { - return Object.keys(variables) - .map((k) => \`\${k}: \${values[k as keyof T]}\`) - .join(', '); -}; `; diff --git a/src/TreeToTS/functions/new/mocks.ts b/src/TreeToTS/functions/new/mocks.ts index b211177a..9a74c335 100644 --- a/src/TreeToTS/functions/new/mocks.ts +++ b/src/TreeToTS/functions/new/mocks.ts @@ -48,6 +48,7 @@ export const Ops = { export type ZEUS_INTERFACES = GraphQLTypes['Nameable']; export type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; +export type ZEUS_SCALARS = GraphQLTypes['JSON']; export type ValueTypes = { ['Nameable']: AliasType<{ @@ -110,6 +111,7 @@ export type ValueTypes = { description?: boolean; id?: boolean; image?: boolean; + info?: boolean; /** The name of a card
*/ name?: boolean; skills?: boolean; @@ -190,10 +192,12 @@ export type ModelTypes = { description: string; id: string; image: string; + info?: GraphQLTypes['JSON'] | undefined; /** The name of a card
*/ name: string; skills?: Array | undefined; }; + ['JSON']: unknown; ['SpecialSkills']: GraphQLTypes['SpecialSkills']; ['SpecialCard']: { effect: string; @@ -228,6 +232,7 @@ export type GraphQLTypes = { key: string; region: string; }; + ['JSON']: unknown; ['ChangeCard']: { __typename: 'SpecialCard' | 'EffectCard'; ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; @@ -270,6 +275,7 @@ export type GraphQLTypes = { description: string; id: string; image: string; + info?: GraphQLTypes['JSON'] | undefined; /** The name of a card
*/ name: string; skills?: Array | undefined; diff --git a/src/TreeToTS/functions/new/variableParameter.sts b/src/TreeToTS/functions/new/variableParameter.sts deleted file mode 100644 index c734e62b..00000000 --- a/src/TreeToTS/functions/new/variableParameter.sts +++ /dev/null @@ -1,10 +0,0 @@ -export const VariableParameters = (variables: T) => ( - values: { - // eslint-disable-next-line prettier/prettier - [P in keyof T]: string; - }, -) => { - return Object.keys(variables) - .map((k) => `${k}: ${values[k as keyof T]}`) - .join(', '); -}; From 95143cb38e8df9995368665245a9575946986771 Mon Sep 17 00:00:00 2001 From: Sean Date: Sun, 17 Apr 2022 13:50:51 +0200 Subject: [PATCH 17/74] Update README.md with new Discussion forum info and link to MIT License --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ad421dd2..a8613bc6 100644 --- a/README.md +++ b/README.md @@ -35,17 +35,17 @@ Example using a generated `chain` client. Queries, mutations and subscriptions a ![](images/example.png) -## Support And Community +## Join the Community and Spread the Word -[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI) +⚡️ [Join the Discussion forum on GitHub](https://github.com/graphql-editor/graphql-zeus/discussions) 📣 -Leave a GitHub star ⭐️ 😊 +⚡️ Leave a GitHub star ⭐️ 👆 -Spread the word! +⚡️ Spread the word on your socials and with your networks! 🗣 ## Contribute -For a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md). +For a complete guide to contributing to GraphQL Zeus, see the [Contribution Guide](CONTRIBUTING.md). 1. Fork this repo 2. Create your feature branch: git checkout -b feature-name @@ -55,4 +55,4 @@ For a complete guide to contributing to GraphQL Editor, see the [Contribution Gu ## License -MIT 🕊 +[MIT](https://opensource.org/licenses/MIT) 🕊 From f3bfae89e465cb7e6aca2064302f04e5afd98d1b Mon Sep 17 00:00:00 2001 From: Sean Date: Sun, 17 Apr 2022 13:54:43 +0200 Subject: [PATCH 18/74] Update README.md with new Discussion forum info and link to MIT License --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a8613bc6..af6a6f85 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Example using a generated `chain` client. Queries, mutations and subscriptions a ![](images/example.png) -## Join the Community and Spread the Word +## Join the Zeus Community and Spread the Word ⚡️ [Join the Discussion forum on GitHub](https://github.com/graphql-editor/graphql-zeus/discussions) 📣 From 2d5bcfa3791ccea1207af3d7e52bcbbad5aab186 Mon Sep 17 00:00:00 2001 From: aexol Date: Sun, 17 Apr 2022 12:38:48 +0200 Subject: [PATCH 19/74] :pencil2: Fixed old files --- .github/workflows/landing.yml | 1 + examples/typescript-node/src/index.ts | 1 + examples/typescript-node/src/zeus/apollo.ts | 32 +-- examples/typescript-node/src/zeus/const.ts | 162 ++++++------ examples/typescript-node/src/zeus/index.ts | 238 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- examples/typescript-node/zeus.graphql | 116 ++++----- package.json | 4 +- src/TreeToTS/functions/generated.ts | 12 - src/TreeToTS/functions/new/mocks.ts | 6 + .../functions/new/variableParameter.sts | 10 - 11 files changed, 292 insertions(+), 314 deletions(-) delete mode 100644 src/TreeToTS/functions/new/variableParameter.sts diff --git a/.github/workflows/landing.yml b/.github/workflows/landing.yml index 23ecf776..002684b7 100644 --- a/.github/workflows/landing.yml +++ b/.github/workflows/landing.yml @@ -18,3 +18,4 @@ jobs: with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./doc/out + cname: zeus.graphqleditor.com diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index a667e1d9..c95a82f5 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -6,6 +6,7 @@ const sel = Selector('Query')({ drawCard: { Children: true, Attack: true, + info: true, attack: [{ cardID: ['sss'] }, { Attack: true }], }, cardById: [{ cardId: '' }, { Attack: true }], diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 2f84d501..2f3a3d66 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,10 +1,24 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; -import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; -import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; +import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; +import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +export function useTypedSubscription( + subscription: Z | ValueTypes[O], + options?: SubscriptionHookOptions>, + operationOptions?: OperationOptions, +) { + return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); +} +export function useTypedMutation( + mutation: Z | ValueTypes[O], + options?: MutationHookOptions>, + operationOptions?: OperationOptions, +) { + return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); +} export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, @@ -19,17 +33,3 @@ export function useTypedLazyQuery( ) { return useLazyQuery>(gql(Zeus("query",LazyQuery, operationOptions)), options); } -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationOptions?: OperationOptions, -) { - return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); -} -export function useTypedSubscription( - subscription: Z | ValueTypes[O], - options?: SubscriptionHookOptions>, - operationOptions?: OperationOptions, -) { - return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); -} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index fc4b0b56..10a7783d 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,84 +1,88 @@ /* eslint-disable */ -export const AllTypesProps: Record = { - SpecialSkills: true, - JSON: 'String', - createCard: { - skills: 'SpecialSkills', - }, - Query: { - cardById: {}, - }, - Mutation: { - addCard: { - card: 'createCard', - }, - }, - Card: { - attack: {}, - }, -}; +export const AllTypesProps: Record = { + SpecialSkills: true, + Mutation:{ + addCard:{ + card:"createCard" + } + }, + createCard:{ + skills:"SpecialSkills" + }, + Card:{ + attack:{ -export const ReturnTypes: Record = { - CardStack: { - cards: 'Card', - name: 'String', - }, - Query: { - cardById: 'Card', - drawCard: 'Card', - drawChangeCard: 'ChangeCard', - listCards: 'Card', - myStacks: 'CardStack', - nameables: 'Nameable', - }, - Nameable: { - '...on CardStack': 'CardStack', - '...on SpecialCard': 'SpecialCard', - '...on Card': 'Card', - '...on EffectCard': 'EffectCard', - name: 'String', - }, - S3Object: { - bucket: 'String', - key: 'String', - region: 'String', - }, - SpecialCard: { - effect: 'String', - name: 'String', - }, - Mutation: { - addCard: 'Card', - }, - Subscription: { - deck: 'Card', - }, - Card: { - Attack: 'Int', - Children: 'Int', - Defense: 'Int', - attack: 'Card', - cardImage: 'S3Object', - description: 'String', - id: 'ID', - image: 'String', - info: 'JSON', - name: 'String', - skills: 'SpecialSkills', - }, - ChangeCard: { - '...on SpecialCard': 'SpecialCard', - '...on EffectCard': 'EffectCard', - }, - EffectCard: { - effectSize: 'Float', - name: 'String', - }, -}; + } + }, + JSON: "String", + Query:{ + cardById:{ + + } + } +} + +export const ReturnTypes: Record = { + Subscription:{ + deck:"Card" + }, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, + Mutation:{ + addCard:"Card" + }, + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" + }, + SpecialCard:{ + effect:"String", + name:"String" + }, + CardStack:{ + cards:"Card", + name:"String" + }, + Card:{ + Attack:"Int", + Children:"Int", + Defense:"Int", + attack:"Card", + cardImage:"S3Object", + description:"String", + id:"ID", + image:"String", + info:"JSON", + name:"String", + skills:"SpecialSkills" + }, + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" + }, + Nameable:{ + "...on SpecialCard": "SpecialCard", + "...on CardStack": "CardStack", + "...on Card": "Card", + "...on EffectCard": "EffectCard", + name:"String" + }, + EffectCard:{ + effectSize:"Float", + name:"String" + } +} export const Ops = { - query: 'Query' as const, - mutation: 'Mutation' as const, - subscription: 'Subscription' as const, -}; +subscription: "Subscription" as const, + mutation: "Mutation" as const, + query: "Query" as const +} \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index ae893578..3a278254 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -514,32 +514,30 @@ export type VariableInput = { }; -export const VariableParameters = (variables: T) => ( - values: { - // eslint-disable-next-line prettier/prettier - [P in keyof T]: string; - }, -) => { - return Object.keys(variables) - .map((k) => `${k}: ${values[k as keyof T]}`) - .join(', '); -}; - - type ZEUS_INTERFACES = GraphQLTypes["Nameable"] type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["SpecialSkills"]:SpecialSkills; - ["JSON"]:unknown; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean | `@${string}`, + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], __typename?: boolean | `@${string}` }>; /** create card inputs
*/ ["createCard"]: { + /** input skills */ + skills?: Array | undefined | null, /** The name of a card
*/ name: string, /** Description of a card
*/ @@ -549,34 +547,10 @@ export type ValueTypes = { /** The attack power
*/ Attack: number, /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined | null + Defense: number }; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], - /** Draw a card
*/ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean | `@${string}` -}>; - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on CardStack']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on Card']?: Omit; - ['...on EffectCard']?: Omit; - __typename?: boolean | `@${string}` -}>; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` }>; ["SpecialCard"]: AliasType<{ @@ -584,12 +558,10 @@ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; /** Card used in card game
*/ @@ -614,8 +586,24 @@ attack?: [{ /** Attacked card/card ids
*/ skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] + ["JSON"]:unknown; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], + /** Draw a card
*/ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean | `@${string}` +}>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on SpecialCard']?: Omit; + ['...on CardStack']?: Omit; + ['...on Card']?: Omit; + ['...on EffectCard']?: Omit; __typename?: boolean | `@${string}` }>; ["EffectCard"]: AliasType<{ @@ -626,42 +614,31 @@ attack?: [{ /** Attacked card/card ids
*/ } export type ModelTypes = { - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["JSON"]:any; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string -}; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"]; - ["Query"]: { - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array + ["Subscription"]: { + deck?: Array | undefined }; - ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["SpecialCard"] | ModelTypes["Card"] | ModelTypes["EffectCard"]; /** Aws S3 File */ ["S3Object"]: { bucket: string, key: string, region: string }; - ["SpecialCard"]: { - effect: string, - name: string -}; + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; ["Mutation"]: { /** add Card to Cards database
*/ addCard: GraphQLTypes["Card"] }; - ["Subscription"]: { - deck?: Array | undefined + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"]; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["SpecialCard"]: { + effect: string, + name: string +}; + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, + name: string }; /** Card used in card game
*/ ["Card"]: { @@ -684,7 +661,18 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["JSON"]:any; + ["Query"]: { + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["Nameable"]: ModelTypes["SpecialCard"] | ModelTypes["CardStack"] | ModelTypes["Card"] | ModelTypes["EffectCard"]; ["EffectCard"]: { effectSize: number, name: string @@ -692,17 +680,28 @@ export type ModelTypes = { } export type GraphQLTypes = { - ["SpecialSkills"]: SpecialSkills; - ["JSON"]: any; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, - name: string + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined +}; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string +}; + ["SpecialSkills"]: SpecialSkills; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] }; /** create card inputs
*/ ["createCard"]: { - /** The name of a card
*/ + /** input skills */ + skills?: Array | undefined, + /** The name of a card
*/ name: string, /** Description of a card
*/ description: string, @@ -711,49 +710,23 @@ export type GraphQLTypes = { /** The attack power
*/ Attack: number, /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined + Defense: number }; - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - ["Nameable"]: { - __typename:"CardStack" | "SpecialCard" | "Card" | "EffectCard", - name: string - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string }; ["SpecialCard"]: { __typename: "SpecialCard", effect: string, name: string }; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, + name: string }; /** Card used in card game
*/ ["Card"]: { @@ -777,9 +750,24 @@ export type GraphQLTypes = { name: string, skills?: Array | undefined }; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ["JSON"]: any; + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["Nameable"]: { + __typename:"SpecialCard" | "CardStack" | "Card" | "EffectCard", + name: string + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; ["EffectCard"]: { diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 77ddaaaf..0c742c2d 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useQuery, useMutation } from 'react-query'; -import type { UseQueryOptions, UseMutationOptions } from 'react-query'; +import { useMutation, useQuery } from 'react-query'; +import type { UseMutationOptions, UseQueryOptions } from 'react-query'; -export function useTypedQuery>( - queryKey: string | unknown[], - query: TData | ValueTypes[O], - options?: Omit, 'queryKey' | 'queryFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); -} export function useTypedMutation>( mutationKey: string | unknown[], mutation: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } +export function useTypedQuery>( + queryKey: string | unknown[], + query: TData | ValueTypes[O], + options?: Omit, 'queryKey' | 'queryFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 4b78ed48..357ca6c9 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,3 +1,21 @@ +"""""" +type Subscription { + """""" + deck: [Card!] +} + +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! + + """""" + key: String! + + """""" + region: String! +} + """""" enum SpecialSkills { """Lower enemy defense -5
""" @@ -11,19 +29,16 @@ enum SpecialSkills { } """""" -scalar JSON - -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - - """""" - name: String! +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! } """create card inputs
""" input createCard { + """input skills""" + skills: [SpecialSkills!] + """The name of a card
""" name: String! @@ -38,49 +53,10 @@ input createCard { """The defense power
""" Defense: Int! - - """input skills""" - skills: [SpecialSkills!] } """""" -type Query { - """""" - cardById(cardId: String): Card - - """Draw a card
""" - drawCard: Card! - - """""" - drawChangeCard: ChangeCard! - - """list All Cards availble
""" - listCards: [Card!]! - - """""" - myStacks: [CardStack!] - - """""" - nameables: [Nameable!]! -} - -"""""" -interface Nameable { - """""" - name: String! -} - -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - - """""" - key: String! - - """""" - region: String! -} +union ChangeCard = SpecialCard | EffectCard """""" type SpecialCard implements Nameable { @@ -91,16 +67,13 @@ type SpecialCard implements Nameable { name: String! } -"""""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! -} +"""Stack of cards""" +type CardStack implements Nameable { + """""" + cards: [Card!] -"""""" -type Subscription { """""" - deck: [Card!] + name: String! } """Card used in card game
""" @@ -143,7 +116,34 @@ type Card implements Nameable { } """""" -union ChangeCard = SpecialCard | EffectCard +scalar JSON + +"""""" +type Query { + """""" + cardById(cardId: String): Card + + """Draw a card
""" + drawCard: Card! + + """""" + drawChangeCard: ChangeCard! + + """list All Cards availble
""" + listCards: [Card!]! + + """""" + myStacks: [CardStack!] + + """""" + nameables: [Nameable!]! +} + +"""""" +interface Nameable { + """""" + name: String! +} """""" type EffectCard implements Nameable { diff --git a/package.json b/package.json index 3625c615..22219df7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-7", + "version": "5.0.0-rc-8", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", @@ -16,7 +16,7 @@ "test": "jest", "cli": "node ./lib/CLI/index.js", "examples-generate": "npm run generate-typescript-node", - "generate-typescript-node": "node ./lib/CLI/index.js https://faker.graphqleditor.com/a-team/olympus/graphql examples/typescript-node/src --ts --n -g examples/typescript-node/zeus.graphql --apollo --reactQuery --stuccoSubscriptions", + "generate-typescript-node": "node ./lib/CLI/index.js https://faker.graphqleditor.com/a-team/olympus/graphql examples/typescript-node/src --n -g examples/typescript-node/zeus.graphql --apollo --reactQuery --stuccoSubscriptions", "run-example-typescript-node": "./run-example.sh examples/typescript-node", "lint": "ttsc && eslint \"./src/**/*.{ts,js}\" --quiet --fix", "doc:ci": "cd doc && npm i && npm run build", diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 5d6d6666..70185055 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -505,16 +505,4 @@ export type VariableInput = { $params: ReturnType>['$params']; values: Record; }; - - -export const VariableParameters = (variables: T) => ( - values: { - // eslint-disable-next-line prettier/prettier - [P in keyof T]: string; - }, -) => { - return Object.keys(variables) - .map((k) => \`\${k}: \${values[k as keyof T]}\`) - .join(', '); -}; `; diff --git a/src/TreeToTS/functions/new/mocks.ts b/src/TreeToTS/functions/new/mocks.ts index b211177a..9a74c335 100644 --- a/src/TreeToTS/functions/new/mocks.ts +++ b/src/TreeToTS/functions/new/mocks.ts @@ -48,6 +48,7 @@ export const Ops = { export type ZEUS_INTERFACES = GraphQLTypes['Nameable']; export type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; +export type ZEUS_SCALARS = GraphQLTypes['JSON']; export type ValueTypes = { ['Nameable']: AliasType<{ @@ -110,6 +111,7 @@ export type ValueTypes = { description?: boolean; id?: boolean; image?: boolean; + info?: boolean; /** The name of a card
*/ name?: boolean; skills?: boolean; @@ -190,10 +192,12 @@ export type ModelTypes = { description: string; id: string; image: string; + info?: GraphQLTypes['JSON'] | undefined; /** The name of a card
*/ name: string; skills?: Array | undefined; }; + ['JSON']: unknown; ['SpecialSkills']: GraphQLTypes['SpecialSkills']; ['SpecialCard']: { effect: string; @@ -228,6 +232,7 @@ export type GraphQLTypes = { key: string; region: string; }; + ['JSON']: unknown; ['ChangeCard']: { __typename: 'SpecialCard' | 'EffectCard'; ['...on SpecialCard']: '__union' & GraphQLTypes['SpecialCard']; @@ -270,6 +275,7 @@ export type GraphQLTypes = { description: string; id: string; image: string; + info?: GraphQLTypes['JSON'] | undefined; /** The name of a card
*/ name: string; skills?: Array | undefined; diff --git a/src/TreeToTS/functions/new/variableParameter.sts b/src/TreeToTS/functions/new/variableParameter.sts deleted file mode 100644 index c734e62b..00000000 --- a/src/TreeToTS/functions/new/variableParameter.sts +++ /dev/null @@ -1,10 +0,0 @@ -export const VariableParameters = (variables: T) => ( - values: { - // eslint-disable-next-line prettier/prettier - [P in keyof T]: string; - }, -) => { - return Object.keys(variables) - .map((k) => `${k}: ${values[k as keyof T]}`) - .join(', '); -}; From 520e7eba87407820e7691aa52e4538bff4aa6735 Mon Sep 17 00:00:00 2001 From: aexol Date: Tue, 19 Apr 2022 14:02:01 +0200 Subject: [PATCH 20/74] :bookmark: 5.0.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7e792cee..19b11dc6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0-rc-8", + "version": "5.0.0", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", From bd216d3dce59089479c5c3fdba4dc8b5d090464b Mon Sep 17 00:00:00 2001 From: META DREAMER Date: Tue, 19 Apr 2022 14:02:31 -0600 Subject: [PATCH 21/74] Fix invalid query generation when query arguments have arrays of objects or are empty --- src/TreeToTS/functions/new/buildQuery.spec.ts | 47 +++++++++++++++++++ src/TreeToTS/functions/new/buildQuery.ts | 8 +--- src/TreeToTS/functions/new/resolvePath.ts | 2 +- 3 files changed, 50 insertions(+), 7 deletions(-) diff --git a/src/TreeToTS/functions/new/buildQuery.spec.ts b/src/TreeToTS/functions/new/buildQuery.spec.ts index 5871e261..10a1cdcd 100644 --- a/src/TreeToTS/functions/new/buildQuery.spec.ts +++ b/src/TreeToTS/functions/new/buildQuery.spec.ts @@ -69,6 +69,30 @@ describe('Test generated function buildQuery', () => { } }`); }); + test('Query with array and object arguments', () => { + const matchExact = replSpace( + builder('query', { + cards: [ + { + where: { active: true }, + order_by: [{ date: 'asc' }, { age: 'desc' }], + }, + { + name: true, + age: true, + bio: true, + }, + ], + }), + ); + matchExact(`query{ + cards(where: {active: true}, order_by: [{date: "asc"}, {age: "desc"}]){ + name + age + bio + } + }`); + }); test('Query with arguments and variables', () => { const variables = useZeusVariables({ id: 'String!' })({ id: 'a1', @@ -102,6 +126,28 @@ describe('Test generated function buildQuery', () => { } }`); }); + + test('Query with empty arguments params', () => { + const matchExact = replSpace( + builder('query', { + cards: [ + {}, + { + name: true, + age: true, + bio: true, + }, + ], + }), + ); + matchExact(`query{ + cards { + name + age + bio + } + }`); + }); test('Mutation with arguments', () => { const enum Status { CREATED = 'CREATED', @@ -155,6 +201,7 @@ describe('Test generated function buildQuery', () => { } }`); }); + test('Undefined param', () => { const Children = undefined; const matchExact = replSpace( diff --git a/src/TreeToTS/functions/new/buildQuery.ts b/src/TreeToTS/functions/new/buildQuery.ts index 4848392f..0343d5b5 100644 --- a/src/TreeToTS/functions/new/buildQuery.ts +++ b/src/TreeToTS/functions/new/buildQuery.ts @@ -29,12 +29,8 @@ export const InternalsBuildQuery = ( return `${k} ${o}`; } if (Array.isArray(o)) { - return `${ibb( - `${k}(${InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath)})`, - o[1], - p, - false, - )}`; + const args = InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath); + return `${ibb(args ? `${k}(${args})` : k, o[1], p, false)}`; } if (k === '__alias') { const alias = Object.keys(o)[0]; diff --git a/src/TreeToTS/functions/new/resolvePath.ts b/src/TreeToTS/functions/new/resolvePath.ts index e6d71be5..4f646d51 100644 --- a/src/TreeToTS/functions/new/resolvePath.ts +++ b/src/TreeToTS/functions/new/resolvePath.ts @@ -91,7 +91,7 @@ export const InternalArgsBuilt = ( ) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { if (Array.isArray(a)) { - return `[${a.map((arr) => arb(arr, p)).join(', ')}]`; + return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; } if (typeof a === 'string') { if (a.startsWith('$') && variables?.[a.slice(1)]) { From 634dc95094d46645d664cea4e70a7a2cccef26c3 Mon Sep 17 00:00:00 2001 From: aexol Date: Tue, 19 Apr 2022 22:30:54 +0200 Subject: [PATCH 22/74] :ambulance: 5.0.1 Fixed array args --- examples/typescript-node/src/zeus/apollo.ts | 18 +- examples/typescript-node/src/zeus/const.ts | 80 +++--- examples/typescript-node/src/zeus/index.ts | 266 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- examples/typescript-node/zeus.graphql | 146 +++++----- src/TreeToTS/functions/generated.ts | 10 +- 6 files changed, 268 insertions(+), 276 deletions(-) diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index dd397ecb..27fa5887 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,17 +1,10 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; -import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client'; -import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +import { gql, useSubscription, useQuery, useLazyQuery, useMutation } from '@apollo/client'; +import type { SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions, MutationHookOptions } from '@apollo/client'; -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationOptions?: OperationOptions, -) { - return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); -} export function useTypedSubscription( subscription: Z | ValueTypes[O], options?: SubscriptionHookOptions>, @@ -33,3 +26,10 @@ export function useTypedLazyQuery( ) { return useLazyQuery>(gql(Zeus("query",LazyQuery, operationOptions)), options); } +export function useTypedMutation( + mutation: Z | ValueTypes[O], + options?: MutationHookOptions>, + operationOptions?: OperationOptions, +) { + return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); +} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 9d824748..f187c4a0 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,64 +1,45 @@ /* eslint-disable */ export const AllTypesProps: Record = { - Card:{ - attack:{ + JSON: "String", + createCard:{ + skills:"SpecialSkills" + }, + Query:{ + cardById:{ } }, + SpecialSkills: true, Mutation:{ addCard:{ card:"createCard" } }, - JSON: "String", - SpecialSkills: true, - Query:{ - cardById:{ + Card:{ + attack:{ } - }, - createCard:{ - skills:"SpecialSkills" } } export const ReturnTypes: Record = { - Card:{ - Attack:"Int", - Children:"Int", - Defense:"Int", - attack:"Card", - cardImage:"S3Object", - description:"String", - id:"ID", - image:"String", - info:"JSON", - name:"String", - skills:"SpecialSkills" - }, - Nameable:{ - "...on Card": "Card", - "...on EffectCard": "EffectCard", - "...on SpecialCard": "SpecialCard", - "...on CardStack": "CardStack", - name:"String" - }, S3Object:{ bucket:"String", key:"String", region:"String" }, + Subscription:{ + deck:"Card" + }, + SpecialCard:{ + effect:"String", + name:"String" + }, EffectCard:{ effectSize:"Float", name:"String" }, - Mutation:{ - addCard:"Card" - }, - Subscription:{ - deck:"Card" - }, Query:{ cardById:"Card", drawCard:"Card", @@ -71,18 +52,37 @@ export const ReturnTypes: Record = { "...on SpecialCard":"SpecialCard", "...on EffectCard":"EffectCard" }, - SpecialCard:{ - effect:"String", + Nameable:{ + "...on SpecialCard": "SpecialCard", + "...on EffectCard": "EffectCard", + "...on CardStack": "CardStack", + "...on Card": "Card", name:"String" }, CardStack:{ cards:"Card", name:"String" + }, + Mutation:{ + addCard:"Card" + }, + Card:{ + Attack:"Int", + Children:"Int", + Defense:"Int", + attack:"Card", + cardImage:"S3Object", + description:"String", + id:"ID", + image:"String", + info:"JSON", + name:"String", + skills:"SpecialSkills" } } export const Ops = { -mutation: "Mutation" as const, - subscription: "Subscription" as const, - query: "Query" as const +subscription: "Subscription" as const, + query: "Query" as const, + mutation: "Mutation" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 88e1fb08..b8e5eaef 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -114,12 +114,8 @@ export const InternalsBuildQuery = ( return `${k} ${o}`; } if (Array.isArray(o)) { - return `${ibb( - `${k}(${InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath)})`, - o[1], - p, - false, - )}`; + const args = InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath); + return `${ibb(args ? `${k}(${args})` : k, o[1], p, false)}`; } if (k === '__alias') { const alias = Object.keys(o)[0]; @@ -380,7 +376,7 @@ export const InternalArgsBuilt = ( ) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { if (Array.isArray(a)) { - return `[${a.map((arr) => arb(arr, p)).join(', ')}]`; + return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; } if (typeof a === 'string') { if (a.startsWith('$') && variables?.[a.slice(1)]) { @@ -518,36 +514,7 @@ type ZEUS_INTERFACES = GraphQLTypes["Nameable"] type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - /** Card used in card game
*/ -["Card"]: AliasType<{ - /** The attack power
*/ - Attack?:boolean | `@${string}`, - /**
How many children the greek god had
*/ - Children?:boolean | `@${string}`, - /** The defense power
*/ - Defense?:boolean | `@${string}`, -attack?: [{ /** Attacked card/card ids
*/ - cardID: Array},ValueTypes["Card"]], - /** Put your description here */ - cardImage?:ValueTypes["S3Object"], - /** Description of a card
*/ - description?:boolean | `@${string}`, - id?:boolean | `@${string}`, - image?:boolean | `@${string}`, - info?:boolean | `@${string}`, - /** The name of a card
*/ - name?:boolean | `@${string}`, - skills?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on Card']?: Omit; - ['...on EffectCard']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on CardStack']?: Omit; - __typename?: boolean | `@${string}` -}>; + ["JSON"]:unknown; /** Aws S3 File */ ["S3Object"]: AliasType<{ bucket?:boolean | `@${string}`, @@ -555,19 +522,33 @@ attack?: [{ /** Attacked card/card ids
*/ region?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, - name?:boolean | `@${string}`, + /** create card inputs
*/ +["createCard"]: { + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined | null, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined | null, + /** The name of a card
*/ + name: string +}; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], __typename?: boolean | `@${string}` }>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["JSON"]:unknown; - ["SpecialSkills"]:SpecialSkills; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; ["Query"]: AliasType<{ @@ -585,75 +566,69 @@ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` }>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, - name?:boolean | `@${string}`, + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; + ['...on CardStack']?: Omit; + ['...on Card']?: Omit; __typename?: boolean | `@${string}` }>; + ["SpecialSkills"]:SpecialSkills; /** Stack of cards */ ["CardStack"]: AliasType<{ cards?:ValueTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - /** create card inputs
*/ -["createCard"]: { + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + /** Card used in card game
*/ +["Card"]: AliasType<{ /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined | null, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined | null -} - } - -export type ModelTypes = { - /** Card used in card game
*/ -["Card"]: { - /** The attack power
*/ - Attack: number, + Attack?:boolean | `@${string}`, /**
How many children the greek god had
*/ - Children?: number | undefined, + Children?:boolean | `@${string}`, /** The defense power
*/ - Defense: number, - /** Attack other cards on the table , returns Cards after attack
*/ - attack?: Array | undefined, + Defense?:boolean | `@${string}`, +attack?: [{ /** Attacked card/card ids
*/ + cardID: Array},ValueTypes["Card"]], /** Put your description here */ - cardImage?: GraphQLTypes["S3Object"] | undefined, + cardImage?:ValueTypes["S3Object"], /** Description of a card
*/ - description: string, - id: string, - image: string, - info: GraphQLTypes["JSON"], + description?:boolean | `@${string}`, + id?:boolean | `@${string}`, + image?:boolean | `@${string}`, + info?:boolean | `@${string}`, /** The name of a card
*/ - name: string, - skills?: Array | undefined -}; - ["Nameable"]: ModelTypes["Card"] | ModelTypes["EffectCard"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"]; + name?:boolean | `@${string}`, + skills?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}> + } + +export type ModelTypes = { + ["JSON"]:any; /** Aws S3 File */ ["S3Object"]: { bucket: string, key: string, region: string +}; + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"]; + ["Subscription"]: { + deck?: Array | undefined +}; + ["SpecialCard"]: { + effect: string, + name: string }; ["EffectCard"]: { effectSize: number, name: string -}; - ["Mutation"]: { - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - ["JSON"]:any; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["Subscription"]: { - deck?: Array | undefined }; ["Query"]: { cardById?: GraphQLTypes["Card"] | undefined, @@ -666,24 +641,20 @@ export type ModelTypes = { nameables: Array }; ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["SpecialCard"]: { - effect: string, - name: string -}; + ["Nameable"]: ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] | ModelTypes["CardStack"] | ModelTypes["Card"]; + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; /** Stack of cards */ ["CardStack"]: { cards?: Array | undefined, name: string }; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"] - } - -export type GraphQLTypes = { - /** Card used in card game
*/ + ["Mutation"]: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] +}; + /** Card used in card game
*/ ["Card"]: { - __typename: "Card", - /** The attack power
*/ + /** The attack power
*/ Attack: number, /**
How many children the greek god had
*/ Children?: number | undefined, @@ -701,15 +672,11 @@ export type GraphQLTypes = { /** The name of a card
*/ name: string, skills?: Array | undefined -}; - ["Nameable"]: { - __typename:"Card" | "EffectCard" | "SpecialCard" | "CardStack", - name: string - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; -}; +} + } + +export type GraphQLTypes = { + ["JSON"]: any; /** Aws S3 File */ ["S3Object"]: { __typename: "S3Object", @@ -717,21 +684,34 @@ export type GraphQLTypes = { key: string, region: string }; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, + /** create card inputs
*/ +["createCard"]: { + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined, + /** The name of a card
*/ name: string }; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - ["JSON"]: any; - ["SpecialSkills"]: SpecialSkills; ["Subscription"]: { __typename: "Subscription", deck?: Array | undefined +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string +}; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string }; ["Query"]: { __typename: "Query", @@ -749,31 +729,47 @@ export type GraphQLTypes = { ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, + ["Nameable"]: { + __typename:"SpecialCard" | "EffectCard" | "CardStack" | "Card", name: string + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; }; + ["SpecialSkills"]: SpecialSkills; /** Stack of cards */ ["CardStack"]: { __typename: "CardStack", cards?: Array | undefined, name: string }; - /** create card inputs
*/ -["createCard"]: { - /** The attack power
*/ + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] +}; + /** Card used in card game
*/ +["Card"]: { + __typename: "Card", + /** The attack power
*/ Attack: number, + /**
How many children the greek god had
*/ + Children?: number | undefined, /** The defense power
*/ Defense: number, - /** input skills */ - skills?: Array | undefined, - /** The name of a card
*/ - name: string, + /** Attack other cards on the table , returns Cards after attack
*/ + attack?: Array | undefined, + /** Put your description here */ + cardImage?: GraphQLTypes["S3Object"] | undefined, /** Description of a card
*/ description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined + id: string, + image: string, + info: GraphQLTypes["JSON"], + /** The name of a card
*/ + name: string, + skills?: Array | undefined } } export const enum SpecialSkills { diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 0c742c2d..77ddaaaf 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useMutation, useQuery } from 'react-query'; -import type { UseMutationOptions, UseQueryOptions } from 'react-query'; +import { useQuery, useMutation } from 'react-query'; +import type { UseQueryOptions, UseMutationOptions } from 'react-query'; -export function useTypedMutation>( - mutationKey: string | unknown[], - mutation: TData | ValueTypes[O], - options?: Omit, 'mutationKey' | 'mutationFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); -} export function useTypedQuery>( queryKey: string | unknown[], query: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); } +export function useTypedMutation>( + mutationKey: string | unknown[], + mutation: TData | ValueTypes[O], + options?: Omit, 'mutationKey' | 'mutationFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index d565c2bf..d5b5b820 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,58 +1,52 @@ -"""Card used in card game
""" -type Card implements Nameable { - """The attack power
""" - Attack: Int! - - """
How many children the greek god had
""" - Children: Int +"""""" +scalar JSON - """The defense power
""" - Defense: Int! +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! - """Attack other cards on the table , returns Cards after attack
""" - attack( - """Attacked card/card ids
""" - cardID: [String!]! - ): [Card!] + """""" + key: String! - """Put your description here""" - cardImage: S3Object + """""" + region: String! +} +"""create card inputs
""" +input createCard { """Description of a card
""" description: String! - """""" - id: ID! + """
How many children the greek god had
""" + Children: Int - """""" - image: String! + """The attack power
""" + Attack: Int! - """""" - info: JSON! + """The defense power
""" + Defense: Int! + + """input skills""" + skills: [SpecialSkills!] """The name of a card
""" name: String! - - """""" - skills: [SpecialSkills!] } """""" -interface Nameable { +type Subscription { """""" - name: String! + deck: [Card!] } -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - +"""""" +type SpecialCard implements Nameable { """""" - key: String! + effect: String! """""" - region: String! + name: String! } """""" @@ -64,33 +58,6 @@ type EffectCard implements Nameable { name: String! } -"""""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! -} - -"""""" -scalar JSON - -"""""" -enum SpecialSkills { - """Lower enemy defense -5
""" - THUNDER - - """Attack multiple Cards at once
""" - RAIN - - """50% chance to avoid any attack
""" - FIRE -} - -"""""" -type Subscription { - """""" - deck: [Card!] -} - """""" type Query { """""" @@ -116,14 +83,23 @@ type Query { union ChangeCard = SpecialCard | EffectCard """""" -type SpecialCard implements Nameable { - """""" - effect: String! - +interface Nameable { """""" name: String! } +"""""" +enum SpecialSkills { + """Lower enemy defense -5
""" + THUNDER + + """Attack multiple Cards at once
""" + RAIN + + """50% chance to avoid any attack
""" + FIRE +} + """Stack of cards""" type CardStack implements Nameable { """""" @@ -133,25 +109,49 @@ type CardStack implements Nameable { name: String! } -"""create card inputs
""" -input createCard { +"""""" +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! +} + +"""Card used in card game
""" +type Card implements Nameable { """The attack power
""" Attack: Int! + """
How many children the greek god had
""" + Children: Int + """The defense power
""" Defense: Int! - """input skills""" - skills: [SpecialSkills!] + """Attack other cards on the table , returns Cards after attack
""" + attack( + """Attacked card/card ids
""" + cardID: [String!]! + ): [Card!] - """The name of a card
""" - name: String! + """Put your description here""" + cardImage: S3Object """Description of a card
""" description: String! - """
How many children the greek god had
""" - Children: Int + """""" + id: ID! + + """""" + image: String! + + """""" + info: JSON! + + """The name of a card
""" + name: String! + + """""" + skills: [SpecialSkills!] } schema{ diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 70185055..b17b2aca 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -107,12 +107,8 @@ export const InternalsBuildQuery = ( return \`\${k} \${o}\`; } if (Array.isArray(o)) { - return \`\${ibb( - \`\${k}(\${InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath)})\`, - o[1], - p, - false, - )}\`; + const args = InternalArgsBuilt(props, returns, ops, options?.variables?.values)(o[0], newPath); + return \`\${ibb(args ? \`\${k}(\${args})\` : k, o[1], p, false)}\`; } if (k === '__alias') { const alias = Object.keys(o)[0]; @@ -373,7 +369,7 @@ export const InternalArgsBuilt = ( ) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { if (Array.isArray(a)) { - return \`[\${a.map((arr) => arb(arr, p)).join(', ')}]\`; + return \`[\${a.map((arr) => arb(arr, p, false)).join(', ')}]\`; } if (typeof a === 'string') { if (a.startsWith('$') && variables?.[a.slice(1)]) { From a8912ca675721c4f90c7fffe8c58d60a2079ca98 Mon Sep 17 00:00:00 2001 From: META DREAMER Date: Tue, 19 Apr 2022 15:33:51 -0600 Subject: [PATCH 23/74] Fix multiple aliases when generating query --- src/TreeToTS/functions/new/buildQuery.spec.ts | 34 +++++++++++++++++++ src/TreeToTS/functions/new/buildQuery.ts | 20 ++++++----- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/TreeToTS/functions/new/buildQuery.spec.ts b/src/TreeToTS/functions/new/buildQuery.spec.ts index 10a1cdcd..4011565f 100644 --- a/src/TreeToTS/functions/new/buildQuery.spec.ts +++ b/src/TreeToTS/functions/new/buildQuery.spec.ts @@ -266,6 +266,40 @@ describe('Test generated function buildQuery', () => { } }`); }); + test('Query with multiple aliases', () => { + const matchExact = replSpace( + builder('query', { + __alias: { + play: { + cards: { + name: true, + age: true, + bio: true, + }, + }, + shuffle: { + cards: { + name: true, + age: true, + bio: true, + }, + }, + }, + }), + ); + matchExact(`query{ + play:cards{ + name + age + bio + } + shuffle:cards{ + name + age + bio + } + }`); + }); test('Simple query with enums', () => { const enum Status { CREATED = 'CREATED', diff --git a/src/TreeToTS/functions/new/buildQuery.ts b/src/TreeToTS/functions/new/buildQuery.ts index 0343d5b5..8dd7394d 100644 --- a/src/TreeToTS/functions/new/buildQuery.ts +++ b/src/TreeToTS/functions/new/buildQuery.ts @@ -33,14 +33,18 @@ export const InternalsBuildQuery = ( return `${ibb(args ? `${k}(${args})` : k, o[1], p, false)}`; } if (k === '__alias') { - const alias = Object.keys(o)[0]; - const objectUnderAlias = o[alias]; - if (typeof objectUnderAlias !== 'object' || Array.isArray(objectUnderAlias)) { - throw new Error('Invalid alias it should be __alias:{ YOUR_ALIAS_NAME: { OPERATION_NAME: { ...selectors }}}'); - } - const operationName = Object.keys(objectUnderAlias)[0]; - const operation = objectUnderAlias[operationName]; - return ibb(`${alias}:${operationName}`, operation, p, false); + return Object.entries(o) + .map(([alias, objectUnderAlias]) => { + if (typeof objectUnderAlias !== 'object' || Array.isArray(objectUnderAlias)) { + throw new Error( + 'Invalid alias it should be __alias:{ YOUR_ALIAS_NAME: { OPERATION_NAME: { ...selectors }}}', + ); + } + const operationName = Object.keys(objectUnderAlias)[0]; + const operation = objectUnderAlias[operationName]; + return ibb(`${alias}:${operationName}`, operation, p, false); + }) + .join('\n'); } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; const hasVariables = root && options?.variables?.$params ? `(${options.variables?.$params})` : ''; From 230a0193347fdc4238e634c40ee4199f2989d682 Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 20 Apr 2022 10:42:17 +0200 Subject: [PATCH 24/74] :bug: alias fix --- .github/workflows/release.yml | 1 + examples/typescript-node/src/index.ts | 9 +- examples/typescript-node/src/zeus/apollo.ts | 18 +- examples/typescript-node/src/zeus/const.ts | 72 +++--- examples/typescript-node/src/zeus/index.ts | 272 ++++++++++---------- examples/typescript-node/zeus.graphql | 142 +++++----- src/TreeToTS/functions/generated.ts | 20 +- 7 files changed, 275 insertions(+), 259 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4be1bfb2..ef765fef 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,6 +13,7 @@ jobs: node-version: '14.x' registry-url: 'https://registry.npmjs.org' - run: npm install + - run: npm run produce-lib - run: npm test - run: npm run build - run: npm publish --access public --tag latest diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index c95a82f5..39ebafed 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -101,7 +101,11 @@ const run = async () => { }); printQueryResult('drawChangeCard thunder', blalbaThunder.drawChangeCard); - const { listCards: stack, drawCard: newCard, drawChangeCard } = await Gql('query')({ + const { + listCards: stack, + drawCard: newCard, + drawChangeCard, + } = await Gql('query')({ listCards: { name: true, cardImage: { @@ -171,6 +175,9 @@ const run = async () => { { listCards: { __alias: { + namy: { + name: true, + }, atak: { attack: [ { cardID: $('cardIds') }, diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 27fa5887..2f84d501 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,17 +1,10 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; -import { gql, useSubscription, useQuery, useLazyQuery, useMutation } from '@apollo/client'; -import type { SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions, MutationHookOptions } from '@apollo/client'; +import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; +import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; -export function useTypedSubscription( - subscription: Z | ValueTypes[O], - options?: SubscriptionHookOptions>, - operationOptions?: OperationOptions, -) { - return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); -} export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, @@ -33,3 +26,10 @@ export function useTypedMutation( ) { return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); } +export function useTypedSubscription( + subscription: Z | ValueTypes[O], + options?: SubscriptionHookOptions>, + operationOptions?: OperationOptions, +) { + return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); +} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index f187c4a0..fa153664 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,45 +1,29 @@ /* eslint-disable */ export const AllTypesProps: Record = { - JSON: "String", - createCard:{ - skills:"SpecialSkills" - }, Query:{ cardById:{ } }, SpecialSkills: true, + JSON: "String", + Card:{ + attack:{ + + } + }, Mutation:{ addCard:{ card:"createCard" } }, - Card:{ - attack:{ - - } + createCard:{ + skills:"SpecialSkills" } } export const ReturnTypes: Record = { - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, - Subscription:{ - deck:"Card" - }, - SpecialCard:{ - effect:"String", - name:"String" - }, - EffectCard:{ - effectSize:"Float", - name:"String" - }, Query:{ cardById:"Card", drawCard:"Card", @@ -48,24 +32,26 @@ export const ReturnTypes: Record = { myStacks:"CardStack", nameables:"Nameable" }, + CardStack:{ + cards:"Card", + name:"String" + }, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, ChangeCard:{ "...on SpecialCard":"SpecialCard", "...on EffectCard":"EffectCard" }, Nameable:{ - "...on SpecialCard": "SpecialCard", - "...on EffectCard": "EffectCard", "...on CardStack": "CardStack", "...on Card": "Card", + "...on SpecialCard": "SpecialCard", + "...on EffectCard": "EffectCard", name:"String" }, - CardStack:{ - cards:"Card", - name:"String" - }, - Mutation:{ - addCard:"Card" - }, Card:{ Attack:"Int", Children:"Int", @@ -78,11 +64,25 @@ export const ReturnTypes: Record = { info:"JSON", name:"String", skills:"SpecialSkills" + }, + Mutation:{ + addCard:"Card" + }, + Subscription:{ + deck:"Card" + }, + SpecialCard:{ + effect:"String", + name:"String" + }, + EffectCard:{ + effectSize:"Float", + name:"String" } } export const Ops = { -subscription: "Subscription" as const, - query: "Query" as const, - mutation: "Mutation" as const +query: "Query" as const, + mutation: "Mutation" as const, + subscription: "Subscription" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index b8e5eaef..4a08c1d3 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -118,14 +118,18 @@ export const InternalsBuildQuery = ( return `${ibb(args ? `${k}(${args})` : k, o[1], p, false)}`; } if (k === '__alias') { - const alias = Object.keys(o)[0]; - const objectUnderAlias = o[alias]; - if (typeof objectUnderAlias !== 'object' || Array.isArray(objectUnderAlias)) { - throw new Error('Invalid alias it should be __alias:{ YOUR_ALIAS_NAME: { OPERATION_NAME: { ...selectors }}}'); - } - const operationName = Object.keys(objectUnderAlias)[0]; - const operation = objectUnderAlias[operationName]; - return ibb(`${alias}:${operationName}`, operation, p, false); + return Object.entries(o) + .map(([alias, objectUnderAlias]) => { + if (typeof objectUnderAlias !== 'object' || Array.isArray(objectUnderAlias)) { + throw new Error( + 'Invalid alias it should be __alias:{ YOUR_ALIAS_NAME: { OPERATION_NAME: { ...selectors }}}', + ); + } + const operationName = Object.keys(objectUnderAlias)[0]; + const operation = objectUnderAlias[operationName]; + return ibb(`${alias}:${operationName}`, operation, p, false); + }) + .join('\n'); } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; const hasVariables = root && options?.variables?.$params ? `(${options.variables?.$params})` : ''; @@ -514,44 +518,7 @@ type ZEUS_INTERFACES = GraphQLTypes["Nameable"] type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["JSON"]:unknown; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - /** create card inputs
*/ -["createCard"]: { - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined | null, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined | null, - /** The name of a card
*/ - name: string -}; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean | `@${string}` -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Query"]: AliasType<{ + ["Query"]: AliasType<{ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], /** Draw a card
*/ drawCard?:ValueTypes["Card"], @@ -562,27 +529,31 @@ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], nameables?:ValueTypes["Nameable"], __typename?: boolean | `@${string}` }>; + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` }>; ["Nameable"]:AliasType<{ name?:boolean | `@${string}`; - ['...on SpecialCard']?: Omit; - ['...on EffectCard']?: Omit; ['...on CardStack']?: Omit; ['...on Card']?: Omit; - __typename?: boolean | `@${string}` -}>; - ["SpecialSkills"]:SpecialSkills; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; __typename?: boolean | `@${string}` }>; /** Card used in card game
*/ @@ -606,31 +577,44 @@ attack?: [{ /** Attacked card/card ids
*/ name?:boolean | `@${string}`, skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}> +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + /** create card inputs
*/ +["createCard"]: { + /** input skills */ + skills?: Array | undefined | null, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined | null, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number +} } export type ModelTypes = { - ["JSON"]:any; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"]; - ["Subscription"]: { - deck?: Array | undefined -}; - ["SpecialCard"]: { - effect: string, - name: string -}; - ["EffectCard"]: { - effectSize: number, - name: string -}; - ["Query"]: { + ["Query"]: { cardById?: GraphQLTypes["Card"] | undefined, /** Draw a card
*/ drawCard: GraphQLTypes["Card"], @@ -640,18 +624,21 @@ export type ModelTypes = { myStacks?: Array | undefined, nameables: Array }; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["Nameable"]: ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] | ModelTypes["CardStack"] | ModelTypes["Card"]; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; /** Stack of cards */ ["CardStack"]: { cards?: Array | undefined, name: string }; - ["Mutation"]: { - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string }; + ["JSON"]:any; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; /** Card used in card game
*/ ["Card"]: { /** The attack power
*/ @@ -672,48 +659,28 @@ export type ModelTypes = { /** The name of a card
*/ name: string, skills?: Array | undefined -} - } - -export type GraphQLTypes = { - ["JSON"]: any; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string }; - /** create card inputs
*/ -["createCard"]: { - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined, - /** The name of a card
*/ - name: string + ["Mutation"]: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] }; ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined + deck?: Array | undefined }; ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, + effect: string, name: string }; ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, + effectSize: number, name: string }; - ["Query"]: { + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"] + } + +export type GraphQLTypes = { + ["Query"]: { __typename: "Query", cardById?: GraphQLTypes["Card"] | undefined, /** Draw a card
*/ @@ -724,30 +691,33 @@ export type GraphQLTypes = { myStacks?: Array | undefined, nameables: Array }; + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, + name: string +}; + ["SpecialSkills"]: SpecialSkills; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string +}; + ["JSON"]: any; ["ChangeCard"]:{ __typename:"SpecialCard" | "EffectCard" ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; ["Nameable"]: { - __typename:"SpecialCard" | "EffectCard" | "CardStack" | "Card", + __typename:"CardStack" | "Card" | "SpecialCard" | "EffectCard", name: string - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; ['...on Card']: '__union' & GraphQLTypes["Card"]; -}; - ["SpecialSkills"]: SpecialSkills; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, - name: string -}; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; /** Card used in card game
*/ ["Card"]: { @@ -770,6 +740,40 @@ export type GraphQLTypes = { /** The name of a card
*/ name: string, skills?: Array | undefined +}; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string +}; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string +}; + /** create card inputs
*/ +["createCard"]: { + /** input skills */ + skills?: Array | undefined, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The attack power
*/ + Attack: number, + /** The defense power
*/ + Defense: number } } export const enum SpecialSkills { diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index d5b5b820..6c6e477a 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,63 +1,3 @@ -"""""" -scalar JSON - -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - - """""" - key: String! - - """""" - region: String! -} - -"""create card inputs
""" -input createCard { - """Description of a card
""" - description: String! - - """
How many children the greek god had
""" - Children: Int - - """The attack power
""" - Attack: Int! - - """The defense power
""" - Defense: Int! - - """input skills""" - skills: [SpecialSkills!] - - """The name of a card
""" - name: String! -} - -"""""" -type Subscription { - """""" - deck: [Card!] -} - -"""""" -type SpecialCard implements Nameable { - """""" - effect: String! - - """""" - name: String! -} - -"""""" -type EffectCard implements Nameable { - """""" - effectSize: Float! - - """""" - name: String! -} - """""" type Query { """""" @@ -79,11 +19,11 @@ type Query { nameables: [Nameable!]! } -"""""" -union ChangeCard = SpecialCard | EffectCard +"""Stack of cards""" +type CardStack implements Nameable { + """""" + cards: [Card!] -"""""" -interface Nameable { """""" name: String! } @@ -100,19 +40,28 @@ enum SpecialSkills { FIRE } -"""Stack of cards""" -type CardStack implements Nameable { +"""Aws S3 File""" +type S3Object { """""" - cards: [Card!] + bucket: String! """""" - name: String! + key: String! + + """""" + region: String! } """""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! +scalar JSON + +"""""" +union ChangeCard = SpecialCard | EffectCard + +"""""" +interface Nameable { + """""" + name: String! } """Card used in card game
""" @@ -154,6 +103,57 @@ type Card implements Nameable { skills: [SpecialSkills!] } +"""""" +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! +} + +"""""" +type Subscription { + """""" + deck: [Card!] +} + +"""""" +type SpecialCard implements Nameable { + """""" + effect: String! + + """""" + name: String! +} + +"""""" +type EffectCard implements Nameable { + """""" + effectSize: Float! + + """""" + name: String! +} + +"""create card inputs
""" +input createCard { + """input skills""" + skills: [SpecialSkills!] + + """The name of a card
""" + name: String! + + """Description of a card
""" + description: String! + + """
How many children the greek god had
""" + Children: Int + + """The attack power
""" + Attack: Int! + + """The defense power
""" + Defense: Int! +} + schema{ query: Query, mutation: Mutation, diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index b17b2aca..20b31a77 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -111,14 +111,18 @@ export const InternalsBuildQuery = ( return \`\${ibb(args ? \`\${k}(\${args})\` : k, o[1], p, false)}\`; } if (k === '__alias') { - const alias = Object.keys(o)[0]; - const objectUnderAlias = o[alias]; - if (typeof objectUnderAlias !== 'object' || Array.isArray(objectUnderAlias)) { - throw new Error('Invalid alias it should be __alias:{ YOUR_ALIAS_NAME: { OPERATION_NAME: { ...selectors }}}'); - } - const operationName = Object.keys(objectUnderAlias)[0]; - const operation = objectUnderAlias[operationName]; - return ibb(\`\${alias}:\${operationName}\`, operation, p, false); + return Object.entries(o) + .map(([alias, objectUnderAlias]) => { + if (typeof objectUnderAlias !== 'object' || Array.isArray(objectUnderAlias)) { + throw new Error( + 'Invalid alias it should be __alias:{ YOUR_ALIAS_NAME: { OPERATION_NAME: { ...selectors }}}', + ); + } + const operationName = Object.keys(objectUnderAlias)[0]; + const operation = objectUnderAlias[operationName]; + return ibb(\`\${alias}:\${operationName}\`, operation, p, false); + }) + .join('\\n'); } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; const hasVariables = root && options?.variables?.$params ? \`(\${options.variables?.$params})\` : ''; From 05595a418afbbaf51ca2d668682b6677515f520c Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 27 Apr 2022 11:56:12 +0200 Subject: [PATCH 25/74] :sparkles: Added document node support --- doc/src/markdown/plugins/typedDocumentNode.md | 57 ++++ examples/typescript-node/package.json | 2 + examples/typescript-node/src/index.ts | 17 ++ examples/typescript-node/src/zeus/apollo.ts | 18 +- examples/typescript-node/src/zeus/const.ts | 60 ++-- examples/typescript-node/src/zeus/index.ts | 269 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- .../src/zeus/typedDocumentNode.ts | 22 ++ examples/typescript-node/zeus.graphql | 126 ++++---- package.json | 2 +- src/CLI/CLIClass.ts | 6 +- src/CLI/index.ts | 5 + src/TreeToTS/functions/generated.ts | 41 +-- src/TreeToTS/functions/new/models.ts | 5 +- .../functions/new/useZeusVariables.ts | 36 +-- src/plugins/typedDocumentNode/index.ts | 22 ++ 16 files changed, 425 insertions(+), 287 deletions(-) create mode 100644 doc/src/markdown/plugins/typedDocumentNode.md create mode 100644 examples/typescript-node/src/zeus/typedDocumentNode.ts create mode 100644 src/plugins/typedDocumentNode/index.ts diff --git a/doc/src/markdown/plugins/typedDocumentNode.md b/doc/src/markdown/plugins/typedDocumentNode.md new file mode 100644 index 00000000..9cbd6aab --- /dev/null +++ b/doc/src/markdown/plugins/typedDocumentNode.md @@ -0,0 +1,57 @@ +--- +link: plugins/typedDocumentNode +title: TypedDocumentNode +order: 4 +category: Plugins +--- + +## Usage with Typed Document Node + +Zeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query +representation understood by most GraphQL clients (including Apollo, urql etc) by adding the +`--typedDocumentNode` or `--td` flag to the CLI. + +### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders + +```sh +$ zeus https://yourschema.com/graphql ./ --typedDocumentNode +# typedDocumentNode.ts file with typed document node builders is now in the output destination +``` + +### TypedDocumentNode + Apollo Client useQuery examples + +The following example demonstrates usage with Apollo. Other clients should work similarly. + +```tsx +import { ZeusTD } from './zeus/typedDocumentNode'; +import { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus'; +import { useQuery } from '@apollo/client'; + +const variables = useZeusVariables({ cardId: 'String!' })({ + cardId: 'blabla', +}); +const { $ } = variables; + +const myQuery = ZeusTD( + 'query', + { + drawCard: { + id: true, + Attack: true, + Defense: true, + }, + cardById: [{ cardId: $('cardId') }, { id: true }], + }, + { variables }, +); + +const Main = () => { + const { data } = useQuery(myQuery, { + variables: variables.values, + }); + // data response is typed + return
{data.drawCard.name}
; +}; +``` + +[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node diff --git a/examples/typescript-node/package.json b/examples/typescript-node/package.json index df7b11ce..2785111d 100644 --- a/examples/typescript-node/package.json +++ b/examples/typescript-node/package.json @@ -15,6 +15,8 @@ }, "dependencies": { "@apollo/client": "^3.4.16", + "@graphql-typed-document-node/core": "^3.1.1", + "graphql-tag": "^2.12.6", "node-fetch": "^2.6.0", "react-query": "^3.27.0", "ws": "^8.5.0" diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index 39ebafed..8a7b54bf 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -1,5 +1,6 @@ import chalk from 'chalk'; import fetch from 'node-fetch'; +import { ZeusTD } from './zeus/typedDocumentNode'; import { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus'; const sel = Selector('Query')({ @@ -294,5 +295,21 @@ const run = async () => { }, ); printQueryResult('variable Test', test); + + const zeusTDDVars = useZeusVariables({ cardId: 'String!' })({ + cardId: 'blabla', + }); + + const selectorTDD = Selector('Query')({ + drawCard: { + id: true, + Attack: true, + Defense: true, + }, + cardById: [{ cardId: zeusTDDVars.$('cardId') }, { id: true }], + }); + + const generatedTypedDocumentNode = ZeusTD('query', selectorTDD, { variables: zeusTDDVars }); + printQueryResult('Generated TypedDocumentNode Test', generatedTypedDocumentNode); }; run(); diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 2f84d501..3ebba2e8 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,10 +1,17 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; -import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; -import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; +import { gql, useMutation, useQuery, useLazyQuery, useSubscription } from '@apollo/client'; +import type { MutationHookOptions, QueryHookOptions, LazyQueryHookOptions, SubscriptionHookOptions } from '@apollo/client'; +export function useTypedMutation( + mutation: Z | ValueTypes[O], + options?: MutationHookOptions>, + operationOptions?: OperationOptions, +) { + return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); +} export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, @@ -19,13 +26,6 @@ export function useTypedLazyQuery( ) { return useLazyQuery>(gql(Zeus("query",LazyQuery, operationOptions)), options); } -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationOptions?: OperationOptions, -) { - return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); -} export function useTypedSubscription( subscription: Z | ValueTypes[O], options?: SubscriptionHookOptions>, diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index fa153664..3040a954 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,37 +1,29 @@ /* eslint-disable */ export const AllTypesProps: Record = { + Mutation:{ + addCard:{ + card:"createCard" + } + }, + createCard:{ + skills:"SpecialSkills" + }, Query:{ cardById:{ } }, - SpecialSkills: true, JSON: "String", + SpecialSkills: true, Card:{ attack:{ } - }, - Mutation:{ - addCard:{ - card:"createCard" - } - }, - createCard:{ - skills:"SpecialSkills" } } export const ReturnTypes: Record = { - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" - }, CardStack:{ cards:"Card", name:"String" @@ -45,13 +37,28 @@ export const ReturnTypes: Record = { "...on SpecialCard":"SpecialCard", "...on EffectCard":"EffectCard" }, + Mutation:{ + addCard:"Card" + }, + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" + }, Nameable:{ "...on CardStack": "CardStack", - "...on Card": "Card", "...on SpecialCard": "SpecialCard", + "...on Card": "Card", "...on EffectCard": "EffectCard", name:"String" }, + SpecialCard:{ + effect:"String", + name:"String" + }, Card:{ Attack:"Int", Children:"Int", @@ -65,24 +72,17 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, - Mutation:{ - addCard:"Card" - }, - Subscription:{ - deck:"Card" - }, - SpecialCard:{ - effect:"String", - name:"String" - }, EffectCard:{ effectSize:"Float", name:"String" + }, + Subscription:{ + deck:"Card" } } export const Ops = { -query: "Query" as const, - mutation: "Mutation" as const, +mutation: "Mutation" as const, + query: "Query" as const, subscription: "Subscription" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 4a08c1d3..09eef311 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -268,10 +268,11 @@ export type SubscriptionFunction = (query: string) => any; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; -export type OperationOptions = { - variables?: VariableInput; +export type OperationOptions = Record> = { + variables?: VariableInput; operationName?: string; }; + export interface GraphQLResponse { data?: Record; errors?: Array<{ @@ -490,27 +491,29 @@ export type SubscriptionToGraphQL = { }; -export const useZeusVariables = (variables: T) => < - Z extends { - [P in keyof T]: unknown; - } ->( - values: Z, -) => { - return { - $params: Object.keys(variables) - .map((k) => `$${k}: ${variables[k as keyof T]}`) - .join(', '), - $: (variable: U) => { - return (`$${variable}` as unknown) as Z[U]; +export const useZeusVariables = + (variables: T) => + < + Z extends { + [P in keyof T]: unknown; }, - values, + >( + values: Z, + ) => { + return { + $params: Object.keys(variables) + .map((k) => `$${k}: ${variables[k as keyof T]}`) + .join(', '), + $: (variable: U) => { + return `$${variable}` as unknown as Z[U]; + }, + values, + }; }; -}; -export type VariableInput = { +export type VariableInput> = { $params: ReturnType>['$params']; - values: Record; + values: Z; }; @@ -518,24 +521,12 @@ type ZEUS_INTERFACES = GraphQLTypes["Nameable"] type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], - /** Draw a card
*/ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean | `@${string}` -}>; - /** Stack of cards */ + /** Stack of cards */ ["CardStack"]: AliasType<{ cards?:ValueTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["SpecialSkills"]:SpecialSkills; /** Aws S3 File */ ["S3Object"]: AliasType<{ bucket?:boolean | `@${string}`, @@ -543,18 +534,54 @@ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], region?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["JSON"]:unknown; ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + /** create card inputs
*/ +["createCard"]: { + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined | null, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined | null, + /** The attack power
*/ + Attack: number +}; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], + /** Draw a card
*/ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean | `@${string}` }>; ["Nameable"]:AliasType<{ name?:boolean | `@${string}`; ['...on CardStack']?: Omit; - ['...on Card']?: Omit; ['...on SpecialCard']?: Omit; + ['...on Card']?: Omit; ['...on EffectCard']?: Omit; __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; + ["SpecialSkills"]:SpecialSkills; + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` }>; /** Card used in card game
*/ ["Card"]: AliasType<{ @@ -577,68 +604,54 @@ attack?: [{ /** Attacked card/card ids
*/ name?:boolean | `@${string}`, skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean | `@${string}` -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` }>; ["EffectCard"]: AliasType<{ effectSize?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - /** create card inputs
*/ -["createCard"]: { - /** input skills */ - skills?: Array | undefined | null, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined | null, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number -} + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}> } export type ModelTypes = { - ["Query"]: { - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - /** Stack of cards */ + /** Stack of cards */ ["CardStack"]: { cards?: Array | undefined, name: string }; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; /** Aws S3 File */ ["S3Object"]: { bucket: string, key: string, region: string }; - ["JSON"]:any; ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["Mutation"]: { + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] +}; + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"]; + ["Query"]: { + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["SpecialCard"] | ModelTypes["Card"] | ModelTypes["EffectCard"]; + ["JSON"]:any; + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + ["SpecialCard"]: { + effect: string, + name: string +}; /** Card used in card game
*/ ["Card"]: { /** The attack power
*/ @@ -659,45 +672,23 @@ export type ModelTypes = { /** The name of a card
*/ name: string, skills?: Array | undefined -}; - ["Mutation"]: { - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - ["Subscription"]: { - deck?: Array | undefined -}; - ["SpecialCard"]: { - effect: string, - name: string }; ["EffectCard"]: { effectSize: number, name: string }; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"] + ["Subscription"]: { + deck?: Array | undefined +} } export type GraphQLTypes = { - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
*/ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
*/ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - /** Stack of cards */ + /** Stack of cards */ ["CardStack"]: { __typename: "CardStack", cards?: Array | undefined, name: string }; - ["SpecialSkills"]: SpecialSkills; /** Aws S3 File */ ["S3Object"]: { __typename: "S3Object", @@ -705,19 +696,56 @@ export type GraphQLTypes = { key: string, region: string }; - ["JSON"]: any; ["ChangeCard"]:{ __typename:"SpecialCard" | "EffectCard" ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
*/ + addCard: GraphQLTypes["Card"] +}; + /** create card inputs
*/ +["createCard"]: { + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The attack power
*/ + Attack: number +}; + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
*/ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
*/ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array }; ["Nameable"]: { - __typename:"CardStack" | "Card" | "SpecialCard" | "EffectCard", + __typename:"CardStack" | "SpecialCard" | "Card" | "EffectCard", name: string ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["JSON"]: any; + ["SpecialSkills"]: SpecialSkills; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string }; /** Card used in card game
*/ ["Card"]: { @@ -740,40 +768,15 @@ export type GraphQLTypes = { /** The name of a card
*/ name: string, skills?: Array | undefined -}; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
*/ - addCard: GraphQLTypes["Card"] -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined -}; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, - name: string }; ["EffectCard"]: { __typename: "EffectCard", effectSize: number, name: string }; - /** create card inputs
*/ -["createCard"]: { - /** input skills */ - skills?: Array | undefined, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The attack power
*/ - Attack: number, - /** The defense power
*/ - Defense: number + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined } } export const enum SpecialSkills { diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 77ddaaaf..0c742c2d 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useQuery, useMutation } from 'react-query'; -import type { UseQueryOptions, UseMutationOptions } from 'react-query'; +import { useMutation, useQuery } from 'react-query'; +import type { UseMutationOptions, UseQueryOptions } from 'react-query'; -export function useTypedQuery>( - queryKey: string | unknown[], - query: TData | ValueTypes[O], - options?: Omit, 'queryKey' | 'queryFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); -} export function useTypedMutation>( mutationKey: string | unknown[], mutation: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } +export function useTypedQuery>( + queryKey: string | unknown[], + query: TData | ValueTypes[O], + options?: Omit, 'queryKey' | 'queryFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/src/zeus/typedDocumentNode.ts b/examples/typescript-node/src/zeus/typedDocumentNode.ts new file mode 100644 index 00000000..222bd1f6 --- /dev/null +++ b/examples/typescript-node/src/zeus/typedDocumentNode.ts @@ -0,0 +1,22 @@ +import { TypedQueryDocumentNode } from 'graphql'; +import gql from 'graphql-tag'; +import { ValueTypes, GenericOperation, OperationOptions, InternalsBuildQuery, GraphQLTypes, InputType } from './'; +import { Ops, AllTypesProps, ReturnTypes } from './const'; + +export const ZeusTD = < + Z extends ValueTypes[R], + O extends keyof typeof Ops, + T extends Record, + R extends keyof ValueTypes = GenericOperation, +>( + operation: O, + o: Z | ValueTypes[R], + ops?: OperationOptions, +) => { + const varValues = ops?.variables?.values; + + return gql(InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, ops)(operation, o as any)) as TypedQueryDocumentNode< + InputType, + typeof varValues + >; +}; diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 6c6e477a..f8231382 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,3 +1,54 @@ +"""Stack of cards""" +type CardStack implements Nameable { + """""" + cards: [Card!] + + """""" + name: String! +} + +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! + + """""" + key: String! + + """""" + region: String! +} + +"""""" +union ChangeCard = SpecialCard | EffectCard + +"""""" +type Mutation { + """add Card to Cards database
""" + addCard(card: createCard!): Card! +} + +"""create card inputs
""" +input createCard { + """The defense power
""" + Defense: Int! + + """input skills""" + skills: [SpecialSkills!] + + """The name of a card
""" + name: String! + + """Description of a card
""" + description: String! + + """
How many children the greek god had
""" + Children: Int + + """The attack power
""" + Attack: Int! +} + """""" type Query { """""" @@ -19,15 +70,15 @@ type Query { nameables: [Nameable!]! } -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - +"""""" +interface Nameable { """""" name: String! } +"""""" +scalar JSON + """""" enum SpecialSkills { """Lower enemy defense -5
""" @@ -40,26 +91,11 @@ enum SpecialSkills { FIRE } -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - - """""" - key: String! - - """""" - region: String! -} - -"""""" -scalar JSON - """""" -union ChangeCard = SpecialCard | EffectCard +type SpecialCard implements Nameable { + """""" + effect: String! -"""""" -interface Nameable { """""" name: String! } @@ -103,27 +139,6 @@ type Card implements Nameable { skills: [SpecialSkills!] } -"""""" -type Mutation { - """add Card to Cards database
""" - addCard(card: createCard!): Card! -} - -"""""" -type Subscription { - """""" - deck: [Card!] -} - -"""""" -type SpecialCard implements Nameable { - """""" - effect: String! - - """""" - name: String! -} - """""" type EffectCard implements Nameable { """""" @@ -133,25 +148,10 @@ type EffectCard implements Nameable { name: String! } -"""create card inputs
""" -input createCard { - """input skills""" - skills: [SpecialSkills!] - - """The name of a card
""" - name: String! - - """Description of a card
""" - description: String! - - """
How many children the greek god had
""" - Children: Int - - """The attack power
""" - Attack: Int! - - """The defense power
""" - Defense: Int! +"""""" +type Subscription { + """""" + deck: [Card!] } schema{ diff --git a/package.json b/package.json index 19b11dc6..3cf2e5a6 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "test": "jest", "cli": "node ./lib/CLI/index.js", "examples-generate": "npm run generate-typescript-node", - "generate-typescript-node": "node ./lib/CLI/index.js https://faker.graphqleditor.com/a-team/olympus/graphql examples/typescript-node/src --n -g examples/typescript-node/zeus.graphql --apollo --reactQuery --stuccoSubscriptions", + "generate-typescript-node": "node ./lib/CLI/index.js https://faker.graphqleditor.com/a-team/olympus/graphql examples/typescript-node/src --n -g examples/typescript-node/zeus.graphql --apollo --reactQuery --stuccoSubscriptions --td", "run-example-typescript-node": "./run-example.sh examples/typescript-node", "lint": "ttsc && eslint \"./src/**/*.{ts,js}\" --quiet --fix", "doc:ci": "cd doc && npm i && npm run build", diff --git a/src/CLI/CLIClass.ts b/src/CLI/CLIClass.ts index 65848a74..3d89b1b5 100644 --- a/src/CLI/CLIClass.ts +++ b/src/CLI/CLIClass.ts @@ -8,7 +8,7 @@ import { Parser } from 'graphql-js-tree'; import { pluginApollo } from '@/plugins/apollo'; import { pluginReactQuery } from '@/plugins/react-query'; import { pluginStucco } from '@/plugins/stuccoSubscriptions'; - +import { pluginTypedDocumentNode } from '@/plugins/typedDocumentNode'; /** * basic yargs interface */ @@ -30,6 +30,7 @@ interface CliArgs extends Yargs { apollo?: boolean; reactQuery?: boolean; stuccoSubscriptions?: boolean; + typedDocumentNode?: boolean; } /** * Main class for controlling CLI @@ -96,6 +97,9 @@ export class CLI { if (args.stuccoSubscriptions) { writeFileRecursive(path.join(pathToFile, 'zeus'), `stuccoSubscriptions.ts`, pluginStucco({ tree }).ts); } + if (args.typedDocumentNode) { + writeFileRecursive(path.join(pathToFile, 'zeus'), `typedDocumentNode.ts`, pluginTypedDocumentNode); + } }; } diff --git a/src/CLI/index.ts b/src/CLI/index.ts index 541205e0..ebffab2c 100644 --- a/src/CLI/index.ts +++ b/src/CLI/index.ts @@ -31,6 +31,11 @@ zeus [path] [output_path] [options] describe: 'Generate Stucco.js stuccoSubscriptions module', boolean: true, }) + .option('typedDocumentNode', { + alias: 'td', + describe: 'Generate TypedDocumentNode createQuery module', + boolean: true, + }) .option('reactQuery', { alias: 'rq', describe: 'Generate React Query useTypedQuery module', diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 20b31a77..6ab1e364 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -261,10 +261,11 @@ export type SubscriptionFunction = (query: string) => any; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; -export type OperationOptions = { - variables?: VariableInput; +export type OperationOptions = Record> = { + variables?: VariableInput; operationName?: string; }; + export interface GraphQLResponse { data?: Record; errors?: Array<{ @@ -483,26 +484,28 @@ export type SubscriptionToGraphQL = { }; -export const useZeusVariables = (variables: T) => < - Z extends { - [P in keyof T]: unknown; - } ->( - values: Z, -) => { - return { - $params: Object.keys(variables) - .map((k) => \`$\${k}: \${variables[k as keyof T]}\`) - .join(', '), - $: (variable: U) => { - return (\`$\${variable}\` as unknown) as Z[U]; +export const useZeusVariables = + (variables: T) => + < + Z extends { + [P in keyof T]: unknown; }, - values, + >( + values: Z, + ) => { + return { + $params: Object.keys(variables) + .map((k) => \`$\${k}: \${variables[k as keyof T]}\`) + .join(', '), + $: (variable: U) => { + return \`$\${variable}\` as unknown as Z[U]; + }, + values, + }; }; -}; -export type VariableInput = { +export type VariableInput> = { $params: ReturnType>['$params']; - values: Record; + values: Z; }; `; diff --git a/src/TreeToTS/functions/new/models.ts b/src/TreeToTS/functions/new/models.ts index 073bfdfb..0bb9dd7e 100644 --- a/src/TreeToTS/functions/new/models.ts +++ b/src/TreeToTS/functions/new/models.ts @@ -57,10 +57,11 @@ export type SubscriptionFunction = (query: string) => any; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; -export type OperationOptions = { - variables?: VariableInput; +export type OperationOptions = Record> = { + variables?: VariableInput; operationName?: string; }; + export interface GraphQLResponse { data?: Record; errors?: Array<{ diff --git a/src/TreeToTS/functions/new/useZeusVariables.ts b/src/TreeToTS/functions/new/useZeusVariables.ts index 22400926..b5f77a74 100644 --- a/src/TreeToTS/functions/new/useZeusVariables.ts +++ b/src/TreeToTS/functions/new/useZeusVariables.ts @@ -1,22 +1,24 @@ -export const useZeusVariables = (variables: T) => < - Z extends { - [P in keyof T]: unknown; - } ->( - values: Z, -) => { - return { - $params: Object.keys(variables) - .map((k) => `$${k}: ${variables[k as keyof T]}`) - .join(', '), - $: (variable: U) => { - return (`$${variable}` as unknown) as Z[U]; +export const useZeusVariables = + (variables: T) => + < + Z extends { + [P in keyof T]: unknown; }, - values, + >( + values: Z, + ) => { + return { + $params: Object.keys(variables) + .map((k) => `$${k}: ${variables[k as keyof T]}`) + .join(', '), + $: (variable: U) => { + return `$${variable}` as unknown as Z[U]; + }, + values, + }; }; -}; -export type VariableInput = { +export type VariableInput> = { $params: ReturnType>['$params']; - values: Record; + values: Z; }; diff --git a/src/plugins/typedDocumentNode/index.ts b/src/plugins/typedDocumentNode/index.ts new file mode 100644 index 00000000..e02c47fa --- /dev/null +++ b/src/plugins/typedDocumentNode/index.ts @@ -0,0 +1,22 @@ +export const pluginTypedDocumentNode = `import { TypedQueryDocumentNode } from 'graphql'; +import gql from 'graphql-tag'; +import { ValueTypes, GenericOperation, OperationOptions, InternalsBuildQuery, GraphQLTypes, InputType } from './'; +import { Ops, AllTypesProps, ReturnTypes } from './const'; + +export const ZeusTD = < + Z extends ValueTypes[R], + O extends keyof typeof Ops, + T extends Record, + R extends keyof ValueTypes = GenericOperation, +>( + operation: O, + o: Z | ValueTypes[R], + ops?: OperationOptions, +) => { + const varValues = ops?.variables?.values; + + return gql(InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, ops)(operation, o as any)) as TypedQueryDocumentNode< + InputType, + typeof varValues + >; +};`; From 13c179da37b813ecf080374d77a0f9977a30ea4d Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 27 Apr 2022 12:04:49 +0200 Subject: [PATCH 26/74] :bookmark: 5.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3cf2e5a6..efeb7920 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.0", + "version": "5.0.1", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", From 6e35449b61d458e28143100ad440df3aeed40d11 Mon Sep 17 00:00:00 2001 From: Pablo Rocha Date: Sat, 30 Apr 2022 10:50:06 -0500 Subject: [PATCH 27/74] joserocha3:remove-extra-ticks --- doc/src/markdown/graphql/directives.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/markdown/graphql/directives.md b/doc/src/markdown/graphql/directives.md index dabd790c..ddc862fd 100644 --- a/doc/src/markdown/graphql/directives.md +++ b/doc/src/markdown/graphql/directives.md @@ -49,7 +49,7 @@ const listCardsAndDraw = await chain('query')({ ### Use on function -````ts +```ts import { Chain } from './zeus'; // Create a Chain client instance with the endpoint @@ -74,7 +74,7 @@ const listCardsAndDraw = await chain('query')({ }); ``` -#### Use it with variables +### Use it with variables ```ts import { Chain } from './zeus'; @@ -98,4 +98,4 @@ const listCardsAndDraw = await chain('query')({ variables } }); -```` +``` From d3713ec2c020143f3816c880c8abc5ba0999c825 Mon Sep 17 00:00:00 2001 From: aexol Date: Sun, 1 May 2022 22:28:34 +0200 Subject: [PATCH 28/74] :bug: Fixed __directives gql generation on objects --- examples/typescript-node/src/zeus/apollo.ts | 18 +- examples/typescript-node/src/zeus/const.ts | 54 ++--- examples/typescript-node/src/zeus/index.ts | 196 +++++++++--------- .../src/zeus/typedDocumentNode.ts | 2 +- examples/typescript-node/zeus.graphql | 114 +++++----- package.json | 2 +- src/TreeToTS/functions/new/buildQuery.spec.ts | 20 ++ src/TreeToTS/functions/new/buildQuery.ts | 5 +- 8 files changed, 216 insertions(+), 195 deletions(-) diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 3ebba2e8..dd397ecb 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,8 +1,8 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; -import { gql, useMutation, useQuery, useLazyQuery, useSubscription } from '@apollo/client'; -import type { MutationHookOptions, QueryHookOptions, LazyQueryHookOptions, SubscriptionHookOptions } from '@apollo/client'; +import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client'; +import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; export function useTypedMutation( @@ -12,6 +12,13 @@ export function useTypedMutation( ) { return useMutation>(gql(Zeus("mutation",mutation, operationOptions)), options); } +export function useTypedSubscription( + subscription: Z | ValueTypes[O], + options?: SubscriptionHookOptions>, + operationOptions?: OperationOptions, +) { + return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); +} export function useTypedQuery( query: Z | ValueTypes[O], options?: QueryHookOptions>, @@ -26,10 +33,3 @@ export function useTypedLazyQuery( ) { return useLazyQuery>(gql(Zeus("query",LazyQuery, operationOptions)), options); } -export function useTypedSubscription( - subscription: Z | ValueTypes[O], - options?: SubscriptionHookOptions>, - operationOptions?: OperationOptions, -) { - return useSubscription>(gql(Zeus("subscription",subscription, operationOptions)), options); -} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 3040a954..290d1e53 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,45 +1,55 @@ /* eslint-disable */ export const AllTypesProps: Record = { + JSON: "String", Mutation:{ addCard:{ card:"createCard" } }, - createCard:{ - skills:"SpecialSkills" - }, Query:{ cardById:{ } }, - JSON: "String", - SpecialSkills: true, Card:{ attack:{ } + }, + SpecialSkills: true, + createCard:{ + skills:"SpecialSkills" } } export const ReturnTypes: Record = { + EffectCard:{ + effectSize:"Float", + name:"String" + }, CardStack:{ cards:"Card", name:"String" }, + Nameable:{ + "...on EffectCard": "EffectCard", + "...on CardStack": "CardStack", + "...on Card": "Card", + "...on SpecialCard": "SpecialCard", + name:"String" + }, S3Object:{ bucket:"String", key:"String", region:"String" }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, Mutation:{ addCard:"Card" }, + Subscription:{ + deck:"Card" + }, Query:{ cardById:"Card", drawCard:"Card", @@ -48,17 +58,6 @@ export const ReturnTypes: Record = { myStacks:"CardStack", nameables:"Nameable" }, - Nameable:{ - "...on CardStack": "CardStack", - "...on SpecialCard": "SpecialCard", - "...on Card": "Card", - "...on EffectCard": "EffectCard", - name:"String" - }, - SpecialCard:{ - effect:"String", - name:"String" - }, Card:{ Attack:"Int", Children:"Int", @@ -72,17 +71,18 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, - EffectCard:{ - effectSize:"Float", - name:"String" + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" }, - Subscription:{ - deck:"Card" + SpecialCard:{ + effect:"String", + name:"String" } } export const Ops = { mutation: "Mutation" as const, - query: "Query" as const, - subscription: "Subscription" as const + subscription: "Subscription" as const, + query: "Query" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 09eef311..ed767b16 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -521,42 +521,41 @@ type ZEUS_INTERFACES = GraphQLTypes["Nameable"] type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - /** Stack of cards */ + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + /** Stack of cards */ ["CardStack"]: AliasType<{ cards?:ValueTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on EffectCard']?: Omit; + ['...on CardStack']?: Omit; + ['...on Card']?: Omit; + ['...on SpecialCard']?: Omit; + __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; /** Aws S3 File */ ["S3Object"]: AliasType<{ bucket?:boolean | `@${string}`, key?:boolean | `@${string}`, region?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}>; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] - __typename?: boolean | `@${string}` }>; ["Mutation"]: AliasType<{ addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], __typename?: boolean | `@${string}` }>; - /** create card inputs
*/ -["createCard"]: { - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined | null, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined | null, - /** The attack power
*/ - Attack: number -}; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; ["Query"]: AliasType<{ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], /** Draw a card
*/ @@ -567,21 +566,6 @@ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], myStacks?:ValueTypes["CardStack"], nameables?:ValueTypes["Nameable"], __typename?: boolean | `@${string}` -}>; - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on CardStack']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on Card']?: Omit; - ['...on EffectCard']?: Omit; - __typename?: boolean | `@${string}` -}>; - ["JSON"]:unknown; - ["SpecialSkills"]:SpecialSkills; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` }>; /** Card used in card game
*/ ["Card"]: AliasType<{ @@ -605,36 +589,58 @@ attack?: [{ /** Attacked card/card ids
*/ skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, - name?:boolean | `@${string}`, + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` }>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}> +}>; + ["SpecialSkills"]:SpecialSkills; + /** create card inputs
*/ +["createCard"]: { + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined | null, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined | null, + /** The attack power
*/ + Attack: number +} } export type ModelTypes = { - /** Stack of cards */ + ["EffectCard"]: { + effectSize: number, + name: string +}; + /** Stack of cards */ ["CardStack"]: { cards?: Array | undefined, name: string }; + ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["CardStack"] | ModelTypes["Card"] | ModelTypes["SpecialCard"]; + ["JSON"]:any; /** Aws S3 File */ ["S3Object"]: { bucket: string, key: string, region: string }; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; ["Mutation"]: { /** add Card to Cards database
*/ addCard: GraphQLTypes["Card"] }; - /** create card inputs
*/ -["createCard"]: GraphQLTypes["createCard"]; + ["Subscription"]: { + deck?: Array | undefined +}; ["Query"]: { cardById?: GraphQLTypes["Card"] | undefined, /** Draw a card
*/ @@ -644,13 +650,6 @@ export type ModelTypes = { listCards: Array, myStacks?: Array | undefined, nameables: Array -}; - ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["SpecialCard"] | ModelTypes["Card"] | ModelTypes["EffectCard"]; - ["JSON"]:any; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["SpecialCard"]: { - effect: string, - name: string }; /** Card used in card game
*/ ["Card"]: { @@ -673,53 +672,52 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["EffectCard"]: { - effectSize: number, + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["SpecialCard"]: { + effect: string, name: string }; - ["Subscription"]: { - deck?: Array | undefined -} + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + /** create card inputs
*/ +["createCard"]: GraphQLTypes["createCard"] } export type GraphQLTypes = { - /** Stack of cards */ + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string +}; + /** Stack of cards */ ["CardStack"]: { __typename: "CardStack", cards?: Array | undefined, name: string }; + ["Nameable"]: { + __typename:"EffectCard" | "CardStack" | "Card" | "SpecialCard", + name: string + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; +}; + ["JSON"]: any; /** Aws S3 File */ ["S3Object"]: { __typename: "S3Object", bucket: string, key: string, region: string -}; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; ["Mutation"]: { __typename: "Mutation", /** add Card to Cards database
*/ addCard: GraphQLTypes["Card"] }; - /** create card inputs
*/ -["createCard"]: { - /** The defense power
*/ - Defense: number, - /** input skills */ - skills?: Array | undefined, - /** The name of a card
*/ - name: string, - /** Description of a card
*/ - description: string, - /**
How many children the greek god had
*/ - Children?: number | undefined, - /** The attack power
*/ - Attack: number + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined }; ["Query"]: { __typename: "Query", @@ -731,21 +729,6 @@ export type GraphQLTypes = { listCards: Array, myStacks?: Array | undefined, nameables: Array -}; - ["Nameable"]: { - __typename:"CardStack" | "SpecialCard" | "Card" | "EffectCard", - name: string - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - ["JSON"]: any; - ["SpecialSkills"]: SpecialSkills; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, - name: string }; /** Card used in card game
*/ ["Card"]: { @@ -769,14 +752,31 @@ export type GraphQLTypes = { name: string, skills?: Array | undefined }; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, name: string }; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined + ["SpecialSkills"]: SpecialSkills; + /** create card inputs
*/ +["createCard"]: { + /** The defense power
*/ + Defense: number, + /** input skills */ + skills?: Array | undefined, + /** The name of a card
*/ + name: string, + /** Description of a card
*/ + description: string, + /**
How many children the greek god had
*/ + Children?: number | undefined, + /** The attack power
*/ + Attack: number } } export const enum SpecialSkills { diff --git a/examples/typescript-node/src/zeus/typedDocumentNode.ts b/examples/typescript-node/src/zeus/typedDocumentNode.ts index 222bd1f6..2a374539 100644 --- a/examples/typescript-node/src/zeus/typedDocumentNode.ts +++ b/examples/typescript-node/src/zeus/typedDocumentNode.ts @@ -19,4 +19,4 @@ export const ZeusTD = < InputType, typeof varValues >; -}; +}; \ No newline at end of file diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index f8231382..f358ea1c 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,3 +1,12 @@ +"""""" +type EffectCard implements Nameable { + """""" + effectSize: Float! + + """""" + name: String! +} + """Stack of cards""" type CardStack implements Nameable { """""" @@ -7,6 +16,15 @@ type CardStack implements Nameable { name: String! } +"""""" +interface Nameable { + """""" + name: String! +} + +"""""" +scalar JSON + """Aws S3 File""" type S3Object { """""" @@ -19,34 +37,16 @@ type S3Object { region: String! } -"""""" -union ChangeCard = SpecialCard | EffectCard - """""" type Mutation { """add Card to Cards database
""" addCard(card: createCard!): Card! } -"""create card inputs
""" -input createCard { - """The defense power
""" - Defense: Int! - - """input skills""" - skills: [SpecialSkills!] - - """The name of a card
""" - name: String! - - """Description of a card
""" - description: String! - - """
How many children the greek god had
""" - Children: Int - - """The attack power
""" - Attack: Int! +"""""" +type Subscription { + """""" + deck: [Card!] } """""" @@ -70,36 +70,6 @@ type Query { nameables: [Nameable!]! } -"""""" -interface Nameable { - """""" - name: String! -} - -"""""" -scalar JSON - -"""""" -enum SpecialSkills { - """Lower enemy defense -5
""" - THUNDER - - """Attack multiple Cards at once
""" - RAIN - - """50% chance to avoid any attack
""" - FIRE -} - -"""""" -type SpecialCard implements Nameable { - """""" - effect: String! - - """""" - name: String! -} - """Card used in card game
""" type Card implements Nameable { """The attack power
""" @@ -140,18 +110,48 @@ type Card implements Nameable { } """""" -type EffectCard implements Nameable { +union ChangeCard = SpecialCard | EffectCard + +"""""" +type SpecialCard implements Nameable { """""" - effectSize: Float! + effect: String! """""" name: String! } """""" -type Subscription { - """""" - deck: [Card!] +enum SpecialSkills { + """Lower enemy defense -5
""" + THUNDER + + """Attack multiple Cards at once
""" + RAIN + + """50% chance to avoid any attack
""" + FIRE +} + +"""create card inputs
""" +input createCard { + """The defense power
""" + Defense: Int! + + """input skills""" + skills: [SpecialSkills!] + + """The name of a card
""" + name: String! + + """Description of a card
""" + description: String! + + """
How many children the greek god had
""" + Children: Int + + """The attack power
""" + Attack: Int! } schema{ diff --git a/package.json b/package.json index efeb7920..8cab0a63 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.1", + "version": "5.0.2", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/TreeToTS/functions/new/buildQuery.spec.ts b/src/TreeToTS/functions/new/buildQuery.spec.ts index 4011565f..0c57e17c 100644 --- a/src/TreeToTS/functions/new/buildQuery.spec.ts +++ b/src/TreeToTS/functions/new/buildQuery.spec.ts @@ -385,4 +385,24 @@ describe('Test generated function buildQuery', () => { } }`); }); + test('Simple query with directives on object', () => { + const builder = InternalsBuildQuery(AllTypesProps, ReturnTypes, Ops, { operationName: 'MyQuery' }); + const matchExact = replSpace( + builder('query', { + cards: { + __directives: `@skip(if: true)`, + name: true, + age: true, + bio: true, + }, + }), + ); + matchExact(`query MyQuery{ + cards @skip(if:true){ + name + age + bio + } + }`); + }); }); diff --git a/src/TreeToTS/functions/new/buildQuery.ts b/src/TreeToTS/functions/new/buildQuery.ts index 8dd7394d..255a8511 100644 --- a/src/TreeToTS/functions/new/buildQuery.ts +++ b/src/TreeToTS/functions/new/buildQuery.ts @@ -48,8 +48,9 @@ export const InternalsBuildQuery = ( } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; const hasVariables = root && options?.variables?.$params ? `(${options.variables?.$params})` : ''; - const keyForDirectives = o.__directives ? `${k} ${o.__directives}` : k; - return `${keyForDirectives}${hasOperationName}${hasVariables}{${Object.entries(o) + const keyForDirectives = o.__directives ?? ''; + return `${k} ${keyForDirectives}${hasOperationName}${hasVariables}{${Object.entries(o) + .filter(([k]) => k !== '__directives') .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join(SEPARATOR), false)) .join('\n')}}`; }; From db2df27f68403ef39a92153bdb6a4e9ba7609089 Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 6 May 2022 21:57:09 +0200 Subject: [PATCH 29/74] :memo: Added examples to the docs --- doc/.gitignore | 1 + doc/.purplehaze/Layout/index.js | 2 +- doc/.purplehaze/ssg/markdown.js | 108 +- doc/.purplehaze/ssg/routes.js | 18 + doc/out/Layout/index.js | 73 - doc/out/images/example.png | Bin 45163 -> 0 bytes doc/out/images/zeus-bash-command.png | Bin 27280 -> 0 bytes doc/out/images/zeus-logo.png | Bin 16168 -> 0 bytes doc/out/images/zeus.gif | Bin 160403 -> 0 bytes doc/out/images/zeusexample.gif | Bin 4866977 -> 0 bytes doc/out/index.html | 52 - doc/out/index.js | 35 - doc/out/markdownRoutes.js | 13 - doc/out/mdtransform.js | 22 - doc/out/page.js | 56 - doc/out/page/custom-fetch.html | 86 - doc/out/page/esmodules.html | 29 - doc/out/page/examples.html | 36 - doc/out/page/getting-started.html | 142 -- doc/out/page/graphql/aliases.html | 60 - doc/out/page/graphql/directives.html | 65 - doc/out/page/graphql/gql.html | 40 - .../page/graphql/interfaces-and-unions.html | 91 -- doc/out/page/graphql/variables.html | 72 - doc/out/page/javascript.html | 40 - doc/out/page/library.html | 49 - doc/out/page/plugins/apollo.html | 71 - doc/out/page/plugins/react-query.html | 42 - doc/out/page/plugins/stucco.html | 34 - doc/out/page/selector.html | 61 - doc/out/page/spec.html | 67 - doc/out/ssg/markdown.js | 174 -- doc/out/ssg/routes.js | 7 - doc/out/tw.css | 1408 ----------------- doc/package.json | 2 +- doc/src/Layout/index.tsx | 2 +- doc/src/markdown/basics/examples.md | 24 - doc/src/markdown/examples/forms.md | 38 + doc/src/markdown/examples/state.md | 68 + doc/src/purplehaze.d.ts | 8 +- doc/src/ssg/markdown.ts | 108 +- doc/src/ssg/routes.ts | 18 + doc/src/tw.css | 2 +- src/TreeToTS/functions/new/apiFetch.ts | 44 +- src/TreeToTS/functions/new/clientFunctions.ts | 26 +- .../functions/new/fullChainConstruct.ts | 14 +- .../new/fullSubscriptionConstruct.ts | 14 +- src/TreeToTS/functions/new/mocks.ts | 4 +- src/TreeToTS/functions/new/types.ts | 28 +- 49 files changed, 342 insertions(+), 3012 deletions(-) create mode 100644 doc/.gitignore delete mode 100644 doc/out/Layout/index.js delete mode 100644 doc/out/images/example.png delete mode 100644 doc/out/images/zeus-bash-command.png delete mode 100644 doc/out/images/zeus-logo.png delete mode 100644 doc/out/images/zeus.gif delete mode 100644 doc/out/images/zeusexample.gif delete mode 100644 doc/out/index.html delete mode 100644 doc/out/index.js delete mode 100644 doc/out/markdownRoutes.js delete mode 100644 doc/out/mdtransform.js delete mode 100644 doc/out/page.js delete mode 100644 doc/out/page/custom-fetch.html delete mode 100644 doc/out/page/esmodules.html delete mode 100644 doc/out/page/examples.html delete mode 100644 doc/out/page/getting-started.html delete mode 100644 doc/out/page/graphql/aliases.html delete mode 100644 doc/out/page/graphql/directives.html delete mode 100644 doc/out/page/graphql/gql.html delete mode 100644 doc/out/page/graphql/interfaces-and-unions.html delete mode 100644 doc/out/page/graphql/variables.html delete mode 100644 doc/out/page/javascript.html delete mode 100644 doc/out/page/library.html delete mode 100644 doc/out/page/plugins/apollo.html delete mode 100644 doc/out/page/plugins/react-query.html delete mode 100644 doc/out/page/plugins/stucco.html delete mode 100644 doc/out/page/selector.html delete mode 100644 doc/out/page/spec.html delete mode 100644 doc/out/ssg/markdown.js delete mode 100644 doc/out/ssg/routes.js delete mode 100644 doc/out/tw.css delete mode 100644 doc/src/markdown/basics/examples.md create mode 100644 doc/src/markdown/examples/forms.md create mode 100644 doc/src/markdown/examples/state.md diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 00000000..c585e193 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1 @@ +out \ No newline at end of file diff --git a/doc/.purplehaze/Layout/index.js b/doc/.purplehaze/Layout/index.js index b3c64815..961c6e43 100644 --- a/doc/.purplehaze/Layout/index.js +++ b/doc/.purplehaze/Layout/index.js @@ -26,7 +26,7 @@ var Layout = ({children, routes, activeRoute, prefix = ""}) => { className: "text-gray-400 block ml-2 text-md mt-1" }, "Autocomplete client for GraphQL"), /* @__PURE__ */ React.createElement("span", { className: "ml-auto mr-2 text-gray-500" - }, "4.0.4"), /* @__PURE__ */ React.createElement("a", { + }, "5.0.x"), /* @__PURE__ */ React.createElement("a", { href: "https://github.com/graphql-editor/graphql-zeus", className: "text-purple-500", title: "Github repository" diff --git a/doc/.purplehaze/ssg/markdown.js b/doc/.purplehaze/ssg/markdown.js index 9dde874b..8496e11e 100644 --- a/doc/.purplehaze/ssg/markdown.js +++ b/doc/.purplehaze/ssg/markdown.js @@ -1,15 +1,23 @@ // src/ssg/markdown.ts var htmlContent = { - "markdown/plugins/stucco.md": { - "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", + "markdown/plugins/typedDocumentNode.md": { + "content": "\n## Usage with Typed Document Node\n\nZeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query\nrepresentation understood by most GraphQL clients (including Apollo, urql etc) by adding the\n`--typedDocumentNode` or `--td` flag to the CLI.\n\n### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders\n\n```sh\n$ zeus https://yourschema.com/graphql ./ --typedDocumentNode\n# typedDocumentNode.ts file with typed document node builders is now in the output destination\n```\n\n### TypedDocumentNode + Apollo Client useQuery examples\n\nThe following example demonstrates usage with Apollo. Other clients should work similarly.\n\n```tsx\nimport { ZeusTD } from './zeus/typedDocumentNode';\nimport { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus';\nimport { useQuery } from '@apollo/client';\n\nconst variables = useZeusVariables({ cardId: 'String!' })({\n cardId: 'blabla',\n});\nconst { $ } = variables;\n\nconst myQuery = ZeusTD(\n 'query',\n {\n drawCard: {\n id: true,\n Attack: true,\n Defense: true,\n },\n cardById: [{ cardId: $('cardId') }, { id: true }],\n },\n { variables },\n);\n\nconst Main = () => {\n const { data } = useQuery(myQuery, {\n variables: variables.values,\n });\n // data response is typed\n return
{data.drawCard.name}
;\n};\n```\n\n[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node\n", "data": { - "link": "plugins/stucco", - "title": "Stucco", - "order": 3, + "link": "plugins/typedDocumentNode", + "title": "TypedDocumentNode", + "order": 4, "category": "Plugins" }, "excerpt": "" }, + "markdown/index.md": { + "content": "\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n\u26A1\uFE0F Types mapped from your schema
\n\u26A1\uFE0F Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
\n\u26A1\uFE0F Works with Subscriptions
\n\u26A1\uFE0F Infer complex response types
\n\u26A1\uFE0F Create reusable selection sets (like fragments) for use across multiple queries
\n\u26A1\uFE0F Supports GraphQL Unions, Interfaces, Aliases and Variables
\n\u26A1\uFE0F Handles **massive** schemas
\n\u26A1\uFE0F Supports Browsers, Node.js and React Native in Javascript and Typescript
\n\u26A1\uFE0F Schema downloader
\n\u26A1\uFE0F JSON schema generation
\n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star \u2B50\uFE0F \u{1F60A}\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT \u{1F54A}\n", + "data": { + "link": "", + "title": "" + }, + "excerpt": "" + }, "markdown/plugins/react-query.md": { "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. \u{1F680}\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n", "data": { @@ -20,6 +28,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/plugins/stucco.md": { + "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", + "data": { + "link": "plugins/stucco", + "title": "Stucco", + "order": 3, + "category": "Plugins" + }, + "excerpt": "" + }, "markdown/plugins/apollo.md": { "content": "\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. \u{1F680}\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./ --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
{data.drawCard.name}
;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
{data.drawCard.name}
;\n};\n```\n", "data": { @@ -30,14 +48,6 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/index.md": { - "content": "\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n\u26A1\uFE0F Types mapped from your schema
\n\u26A1\uFE0F Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
\n\u26A1\uFE0F Works with Subscriptions
\n\u26A1\uFE0F Infer complex response types
\n\u26A1\uFE0F Create reusable selection sets (like fragments) for use across multiple queries
\n\u26A1\uFE0F Supports GraphQL Unions, Interfaces, Aliases and Variables
\n\u26A1\uFE0F Handles **massive** schemas
\n\u26A1\uFE0F Supports Browsers, Node.js and React Native in Javascript and Typescript
\n\u26A1\uFE0F Schema downloader
\n\u26A1\uFE0F JSON schema generation
\n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star \u2B50\uFE0F \u{1F60A}\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT \u{1F54A}\n", - "data": { - "link": "", - "title": "" - }, - "excerpt": "" - }, "markdown/graphql/variables.md": { "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by using `useZeusVariables` function. It forces you to be type-safe also\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", "data": { @@ -48,16 +58,6 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/graphql/interfaces-and-unions.md": { - "content": '\n## GraphQL Unions\n\nYou can use Zeus with [GraphQL Unions](https://spec.graphql.org/June2018/#sec-Unions):\n\n```js\nconst { drawChangeCard } = await chain(\'query\')({\n drawChangeCard: {\n __typename: true,\n \'...on EffectCard\': {\n effectSize: true,\n name: true,\n },\n \'...on SpecialCard\': {\n effect: true,\n name: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "effectSize": 195.99532210956377,\n "name": "Destinee",\n "__typename": "EffectCard"\n}\n```\n\n## GraphQL Interfaces\n\nZeus works with [GraphQL Interfaces](http://spec.graphql.org/June2018/#sec-Interfaces)\n\n```ts\nconst { nameables } = await Gql(\'query\')({\n nameables: {\n __typename: true,\n name: true,\n \'...on CardStack\': {\n cards: {\n Defense: true,\n },\n },\n \'...on Card\': {\n Attack: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "nameables": [\n {\n "__typename": "EffectCard",\n "name": "Hector"\n },\n {\n "__typename": "CardStack",\n "name": "Scotty",\n "cards": [\n {\n "Defense": 1950\n },\n {\n "Defense": 76566\n }\n ]\n },\n {\n "__typename": "SpecialCard",\n "name": "Itzel"\n }\n ]\n}\n```\n', - "data": { - "link": "graphql/interfaces-and-unions", - "title": "Interfaces and Unions", - "order": 1, - "category": "GraphQL" - }, - "excerpt": "" - }, "markdown/graphql/gql.md": { "content": "\n## Generate GraphQL Gql Strings\n\nUse the `Zeus` function to generate a gql string\n\n```js\nimport { Zeus } from './zeus';\n\nconst stringGql = Zeus('query', {\n listCards: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n\n// stringGql value:\n// query{listCards{name skills Attack}}\n```\n", "data": { @@ -68,8 +68,18 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/graphql/interfaces-and-unions.md": { + "content": '\n## GraphQL Unions\n\nYou can use Zeus with [GraphQL Unions](https://spec.graphql.org/June2018/#sec-Unions):\n\n```js\nconst { drawChangeCard } = await chain(\'query\')({\n drawChangeCard: {\n __typename: true,\n \'...on EffectCard\': {\n effectSize: true,\n name: true,\n },\n \'...on SpecialCard\': {\n effect: true,\n name: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "effectSize": 195.99532210956377,\n "name": "Destinee",\n "__typename": "EffectCard"\n}\n```\n\n## GraphQL Interfaces\n\nZeus works with [GraphQL Interfaces](http://spec.graphql.org/June2018/#sec-Interfaces)\n\n```ts\nconst { nameables } = await Gql(\'query\')({\n nameables: {\n __typename: true,\n name: true,\n \'...on CardStack\': {\n cards: {\n Defense: true,\n },\n },\n \'...on Card\': {\n Attack: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "nameables": [\n {\n "__typename": "EffectCard",\n "name": "Hector"\n },\n {\n "__typename": "CardStack",\n "name": "Scotty",\n "cards": [\n {\n "Defense": 1950\n },\n {\n "Defense": 76566\n }\n ]\n },\n {\n "__typename": "SpecialCard",\n "name": "Itzel"\n }\n ]\n}\n```\n', + "data": { + "link": "graphql/interfaces-and-unions", + "title": "Interfaces and Unions", + "order": 1, + "category": "GraphQL" + }, + "excerpt": "" + }, "markdown/graphql/directives.md": { - "content": "\n## GraphQL Directives\n\nZeus supports using directives on fields.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: true)`,\n },\n});\n```\n\nSo you need to put full string instead of `true`.\n\n#### Use it with variables\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst variables = useZeusVariables({\n isDefense: 'Boolean!'\n})({\n isDefense:true\n});\nconst { $ } = variables;\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: ${$('isDefense')})`,\n },\n {\n variables\n }\n});\n```\n", + "content": "\n## GraphQL Directives\n\nZeus supports using directives on fields.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: true)`,\n },\n});\n```\n\nSo you need to put full string instead of `true`.\n\n### Use on object field\n\nUse directive on `drawCard`\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n __directives: `@skip(if:true)`,\n name: true,\n skills: true,\n },\n});\n```\n\n### Use on function\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n attack:[\n {\n cardId:['2312321']\n },\n {\n __directives: `@skip(if:true)`,\n name: true,\n skills: true,\n }\n ]\n }\n});\n```\n\n### Use it with variables\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst variables = useZeusVariables({\n isDefense: 'Boolean!'\n})({\n isDefense:true\n});\nconst { $ } = variables;\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: ${$('isDefense')})`,\n },\n {\n variables\n }\n});\n```\n", "data": { "link": "graphql/directives", "title": "Directives", @@ -88,6 +98,26 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/examples/state.md": { + "content": "\nWhen query returns an object and you want to store it in React State, you can use zeus to have 100% type-safe objects in your state.\n\nHaving the following schema:\n\n```graphql\ntype Query {\n listUsers: [User!]\n}\n\ntype User {\n createdAt: String!\n firstName: String!\n lastName: String!\n age: Int\n username: String!\n id: String!\n}\n```\n\nYou can use zeus types to get the type of the objects received from GraphQL Backend\n\n```tsx\nimport React, { useState } from 'react';\nimport { GraphQLTypes, InputType, Selector, Chain } from './zeus';\n\nconst userSelector = Selector('User')({\n createdAt: true,\n firstName: true,\n lastName: true,\n id: true,\n});\n\ntype StoredUser = InputType\n\nconst getFullName = (u:StoredUser) => u.firstName + ' ' + u.lastName\n\nexport const UsersList: React.FC = () => {\n const [users, setUsers] = useState>([]);\n\n useEffect(()=>{\n Chain('https://yourschemaurl.com/graphql', {})('query')({\n listUsers: userSelector\n }).then( response => {\n // 100% type-safe\n setUsers(response.data)\n })\n };\n },[])\n\n return (\n
\n {users.map((u) => (\n
\n
{getFullName(u)}
\n
{u.createdAt}
\n
\n ))}\n
\n );\n};\n```\n", + "data": { + "link": "state", + "title": "React State", + "order": 2, + "category": "Examples" + }, + "excerpt": "" + }, + "markdown/examples/forms.md": { + "content": "\nTo use zeus with forms you should make use of it's generated ValueTypes. When submitting form using a mutation It is much easier and type-safe to do it using `ValueTypes`.\n\nHaving the following schema:\n\n```graphql\ntype Mutation {\n createUser(user: CreateUser!): String\n}\n\ninput CreateUser {\n firstName: String!\n lastName: String!\n age: Int\n username: String!\n}\n```\n\nYou can use `ValueTypes['CreateUser']` as params for submit form function\n\n```ts\nconst submitForm = (values: ValueTypes['CreateUser']) => {\n // ..,rest of the code, validation\n return Chain('https://yourschemaurl.com/graphql', {\n headers: {\n Authorization: 'yourtoken',\n },\n })('mutation')({\n createUser: [{ user: values }, true],\n });\n};\n```\n", + "data": { + "link": "forms", + "title": "Forms", + "order": 1, + "category": "Examples" + }, + "excerpt": "" + }, "markdown/basics/use-as-a-library.md": { "content": "\n## Generate Code\n\nThis will be rarely used, but here you are! Generate Typescript and Javascript from GraphQL definitions\n\n```js\nimport { TreeToTS } from 'graphql-zeus';\nimport { Parser } from 'graphql-js-tree';\n\nconst schemaFileContents = `\ntype Query{\n hello: String!\n}\nschema{\n query: Query\n}\n`;\n\nconst typeScriptDefinition = TreeToTS.resolveTree(Parser.parse(schemaFileContents));\n```\n\n## Dynamically Fetch Schema\n\nThis is useful when you need your schema fetched from your GraphQL endpoint in-code\n\n```js\nimport { Utils } from 'graphql-zeus';\n\nUtils.getFromUrl('https://faker.graphqleditor.com/a-team/olympus/graphql').then((schemaContent) => {\n // Use schema content here\n});\n```\n", "data": { @@ -118,16 +148,6 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/basics/javascript.md": { - "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", - "data": { - "link": "javascript", - "title": "Javascript", - "order": 6, - "category": "Basics" - }, - "excerpt": "" - }, "markdown/basics/getting-started.md": { "content": "\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n cardById: [\n {\n cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n },\n {\n name: true,\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n name\n description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n deck: {\n id: true,\n },\n}).on((response) => {\n console.log(response.deck);\n});\n```\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./ --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n", "data": { @@ -138,16 +158,6 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/basics/examples.md": { - "content": "\n## Zeus Included Examples\n\nTo run the included examples navigate to: `./examples` and install packages with:\n\n```sh\n$ npm i\n# OR\n# yarn\n```\n\nthen run the examples with\n\n```sh\n$ npm run start\n# OR\n# yarn start\n```\n", - "data": { - "link": "examples", - "title": "Examples", - "order": 2, - "category": "Basics" - }, - "excerpt": "" - }, "markdown/basics/esmodule.md": { "content": "\n#### Return with .js import for esModules\n\nDue to validity of `.js` imports in TS for esmodules you can use flag `es` to generate `.js` imports\n\n```sh\n$ zeus schema.graphql ./ --es\n```\n", "data": { @@ -158,6 +168,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/basics/javascript.md": { + "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", + "data": { + "link": "javascript", + "title": "Javascript", + "order": 6, + "category": "Basics" + }, + "excerpt": "" + }, "markdown/basics/custom.-fetch.md": { "content": "\n## Perform Queries with Thunder - An Abstracted Fetch Function\n\nWith Zeus `Thunder` you have total control of fetch function but will not lose the result type. \u26A1\uFE0F\n\n```js\nimport { Thunder } from './zeus';\n\n// Create thunder fetch client with endpoint, options and response handlers\nconst thunder = Thunder(async (query) => {\n const response = await fetch('https://faker.graphqleditor.com/a-team/olympus/graphql', {\n body: JSON.stringify({ query }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n return new Promise((resolve, reject) => {\n response\n .text()\n .then((text) => {\n try {\n reject(JSON.parse(text));\n } catch (err) {\n reject(text);\n }\n })\n .catch(reject);\n });\n }\n\n const json = await response.json();\n\n return json.data;\n});\n\n// Call thunder client with type-safe arguments, fields and get type-safe result type\nconst listCardsAndDraw = await thunder('query')({\n cardById: [\n {\n cardId: 'sdsd',\n },\n {\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['s', 'sd'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n```\n", "data": { diff --git a/doc/.purplehaze/ssg/routes.js b/doc/.purplehaze/ssg/routes.js index 042baaa7..b9fffa52 100644 --- a/doc/.purplehaze/ssg/routes.js +++ b/doc/.purplehaze/ssg/routes.js @@ -1,5 +1,23 @@ // src/ssg/routes.ts var routes = { + "page/plugins/typedDocumentNode": "/page/plugins/typedDocumentNode", + "page/plugins/stucco": "/page/plugins/stucco", + "page/plugins/apollo": "/page/plugins/apollo", + "page/plugins/react-query": "/page/plugins/react-query", + "page/graphql/variables": "/page/graphql/variables", + "page/graphql/gql": "/page/graphql/gql", + "page/graphql/interfaces-and-unions": "/page/graphql/interfaces-and-unions", + "page/graphql/directives": "/page/graphql/directives", + "page/graphql/aliases": "/page/graphql/aliases", + "page/state": "/page/state", + "page/library": "/page/library", + "page/forms": "/page/forms", + "page/spec": "/page/spec", + "page/selector": "/page/selector", + "page/javascript": "/page/javascript", + "page/getting-started": "/page/getting-started", + "page/esmodules": "/page/esmodules", + "page/custom-fetch": "/page/custom-fetch", "index": "/index" }; export { diff --git a/doc/out/Layout/index.js b/doc/out/Layout/index.js deleted file mode 100644 index b3c64815..00000000 --- a/doc/out/Layout/index.js +++ /dev/null @@ -1,73 +0,0 @@ -// src/Layout/index.tsx -import React, {useState} from "https://cdn.skypack.dev/react"; -var GithubIcon = () => /* @__PURE__ */ React.createElement("svg", { - xmlns: "http://www.w3.org/2000/svg", - width: "24", - height: "24", - viewBox: "0 0 24 24", - fill: "none", - stroke: "currentColor", - "stroke-width": "2", - "stroke-linecap": "round", - "stroke-linejoin": "round" -}, /* @__PURE__ */ React.createElement("path", { - d: "M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22" -})); -var Layout = ({children, routes, activeRoute, prefix = ""}) => { - const [mobileMenuOpen, setMobileMenuOpen] = useState(false); - return /* @__PURE__ */ React.createElement("div", { - className: "h-full flex flex-col" - }, /* @__PURE__ */ React.createElement("div", { - className: "w-full sm:flex hidden px-10 border-b border-purple-200 items-center" - }, /* @__PURE__ */ React.createElement("a", { - className: "block py-4 text-xl logo font-black", - href: `${prefix}/` - }, "GraphQL Zeus"), /* @__PURE__ */ React.createElement("span", { - className: "text-gray-400 block ml-2 text-md mt-1" - }, "Autocomplete client for GraphQL"), /* @__PURE__ */ React.createElement("span", { - className: "ml-auto mr-2 text-gray-500" - }, "4.0.4"), /* @__PURE__ */ React.createElement("a", { - href: "https://github.com/graphql-editor/graphql-zeus", - className: "text-purple-500", - title: "Github repository" - }, /* @__PURE__ */ React.createElement(GithubIcon, null))), /* @__PURE__ */ React.createElement("div", { - className: "flex w-full flex-1 overflow-hidden" - }, /* @__PURE__ */ React.createElement("div", { - className: "absolute sm:hidden block cursor-pointer top-6 right-6", - onClick: () => setMobileMenuOpen(!mobileMenuOpen) - }, /* @__PURE__ */ React.createElement("div", { - className: "h-2 w-10 bg-purple-500 mb-2 rounded" - }), /* @__PURE__ */ React.createElement("div", { - className: "h-2 w-10 bg-purple-500 mb-2 rounded" - }), /* @__PURE__ */ React.createElement("div", { - className: "h-2 w-10 bg-purple-500 mb-2 rounded" - })), mobileMenuOpen && /* @__PURE__ */ React.createElement("div", { - className: "py-10 px-20 bg-gray-100 h-full w-80 sm:hidden block absolute top-0 left-0" - }, /* @__PURE__ */ React.createElement("a", { - className: "block py-4 text-lg text-purple-900 font-black", - href: `${prefix}/` - }, "GraphQL Zeus"), Object.entries(routes).map(([k, v]) => { - return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { - className: "block py-3 text-md font-medium" - }, k), /* @__PURE__ */ React.createElement("div", null, v.map((r) => /* @__PURE__ */ React.createElement("a", { - className: `block py-3 text-md font-medium${activeRoute === r.link ? " text-purple-600" : "text-gray-600"}`, - href: `${prefix}/page/${r.link}.html` - }, r.title)))); - })), /* @__PURE__ */ React.createElement("div", { - className: "py-6 px-10 w-80 sm:block hidden border-r border-purple-200" - }, Object.entries(routes).map(([k, v]) => { - return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { - className: "block text-md font-medium pb-2" - }, k), /* @__PURE__ */ React.createElement("div", { - className: "pl-2 pb-4" - }, v.map((r) => /* @__PURE__ */ React.createElement("a", { - className: `transition-all block pb-2 text-md font-medium${activeRoute === r.link ? " text-purple-600" : " text-gray-600 hover:text-purple-600"}`, - href: `${prefix}/page/${r.link}.html` - }, r.title)))); - })), /* @__PURE__ */ React.createElement("div", { - className: "container mx-auto px-20 py-6 pb-20 h-full overflow-auto" - }, children))); -}; -export { - Layout -}; diff --git a/doc/out/images/example.png b/doc/out/images/example.png deleted file mode 100644 index 7b913b165e213f321488ee7e1a7119601c2257a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45163 zcmZ6zbzGEN_Xi3Lozl&qQqrPygMc*B-6cbJ!_Xil-3`(u9YYM=NOyNj_eIZn&+p#* z$9(pad#}CnyVl;%geu5MV4#wq!oa{_NPhmL2m=FW0Rsb@gN*ocMGd^q`_jNVC`yRH zl#h_@y_|e9QI|B8m4%^yIYx$o4gLxP|L2jHAIZxP1_qD?3j=s*VgFpqg8ScHIEyU6 z|BhjE{yf+t;vWVBBLpM)Nm$tx_D}~&pS*jV;?i20x!Oc4!J~V2cJ@M76swgc8$rYu z1}yaX1{@HBhysSeg#QeqghLrX;BHsg(=)reTw<)n98;?Ml^BA5LiQBB1*)+O_or^_W!H5R{*;K7z7JD9@a^w|9glMkxn6(`@bPy`WH%L zizfc@m}5=N1Gtz@`~(!<7knWA-h`5gsSsf;6kLg}kVTM?LxrRu6u$|O36^-Fcd186 zEnWT{%wgT@@ZKOgg>SuILhIypoT@|W^o-^Inb4~=Fy)RT>b~DO=?=jQy|*yL&4im# z)4RR_|4v4-U#Q^{4A&Sy>Wn(M?$+1&*wO8<(t4Lr+Pmd6l=l`f1iYzFISwGNKex#N zs@V@QZ+ub6GR@0J3b6L!;~&Eh`2o4;I#Wvh+h4=`v8kQj4Adl<-YF$7yA1)cExf|Z z$@bJIx~5{5r8!kKa=xbIQLdEwc z_WWc-D(N9kirNxh6CM4B6fm3#-%~k}6$8xCcFabi_YD@K_^~$wH8HxPKkx zW7h_z-;B9*AU%SGb?)I#lz1&hn3|Q9$z@b;0kUeShL0cnL1g5(T_dLu$zRiGN(K`l zaCv)>AGc80wdZDL=JGL*%eOtEgk2A+#jMgPe89*{`bd+`jOI6GWuo)^_B-lxVA2J2 zQXBow)LxqHZznhzVD)rhE_yh8)E&<%rvlCun_3h@7$o%R<_Ky1(a=OMwoM3}!qa1@ zSj1Lu|EhF6_%2utBWY!nV4jO(xuKtjPd}Bx14hW*5Nr_HOOR z5#=nMhCH4F>SWjF(Eiu^x^AyZp;0`0vAGBZ{rGXOc$=73oVI)1rdhA8Qu+#j20+@q3!qBjU$2hKbu5GuHg8VV6`34}k@2Bl`LC2?E2% z)qoSK;dctSu{|K)NB!`tePa%|!_M|2_=~8rTZ^}FZC7uzN&fY1pX`}0u@`Sqbua3? z;Fb69R!cC*496p}p7+CFSp|ZS?ABO|SEv|&IA_t&gw3?yb#NVacRA4w!L3-qpC0Ue z@C7!oz1W$Uo)pa$#EmxoR}h$pZ@7bl(9~Vu zTJJcC!tCtHUv6M)7xk{~$+J>ExZmI@e1GvBp7$NdK9UJPbh8TNcH}Wf+KUTXBSt2wY#_I35E9q*!^8B0x8CPo%xyCq zMqVI11l(PmQa8P`7lb_O2eeTQC^0DD`X93Udb4tPIQcE$T}i382|RFl-c)wzavdJ( zI81xqIgubH!XIm$()9WLwW>m*Q~acc+E*8z`#6gY=?pse1@$Ee){w)_i|(o5RgsI1 z?kL|PZVEH5HgDGAQFxXgs#yfqm5WcW!krD_Na9~-v-lW1%z6fN7?yCfNUV@O-~H~i z;90RUcUJyK!LW%#wzyfeU#+`YbHMWzK!_K{rm<=*x;BJRqO*0%3EWlfF4v$~B9j5V zn|tyIv_9NUaO@Mts=b_Py4?f)Al!L|jHkGMt9sNavN{S^r0Lx;D#roOTl*AlYKliE zKS`0ls)zG_6=yQ!?S)4MJ0g97LrFG&D~7z@kZ!k!;Ta|RQ8tkmk=2)XI9Ds(xu^j;`tc?9T-Pa}WCvzC$bLS%ayBxzIXo zyA&I{p>k)Oc2wp%xHt9}TjqLn8WeIBLb$a_i{O+bM(bQ$IhLczeultw1bIQ`Iu267 zq>=4IADQB`cq?!A^rI++nRiZVK;}nfnOyp&I?{MGw!dDVk_({Q0Up-!J=soRhBkbu3RT1V5j)0+m3hZOLzJP{z?kzpggzz;2 z*eirz;f|s~oebF;VRRlFX6H`5S#y>sXIVK4>n{D#0=_>lu0h-0{o}4fK!}E3-VX4L z-XnWb3W3Id20~RmX)a0c=n3i;7vsf7w45ajmcL-Yxl_A)-Q`X(9c3NOcR7hZc_Deo zlVRvb0#h!aZE5KW=qXTJ_=fYXoD6~?U?m$gUZSoM*(FY*1pX^ZDq|rOA+jBVL})Dn z`@CEHy@F>BTIfur#c6IG)0sJ=C0?d?C7jXu)_T;pGG{VZWkZqHUr5X!9y*-zc>X|tLY?PSin%<(c68lw#|aq)a61^JM}D8 z$Q~Tyk6oDG&_7807J(|+VQ+z8VOZ^kS(D_17(Kr1Tfg?PRhD*sjFrxLwS`reXFRA6 zL*2*&u40?H4sxWTr~HrFBoncw0d)X4eAWbATqEZsz{TZNHF%+>*2o=q2K5-PFOM2L zYZ8W)K)4_9TIF0@>YcZ%<;gara{ShoYG0L9LfNjMQ@Xw}wDOP_9#eURFK%+AB_(kf z6dKlWu2PRk(>{QRzA{`SH5+{74kj^fYGoKHVVVq-E~tafMgK)xU@Fu0^P0kUPmGK+8nDsj=SD27vxFDaUbf&V(UMV)^f6FJA~bl*&urEVqoTO# z(Da06<_NbiLmNzj8U3!Y-%6cOtBdFe!!>lmQIVM>T)AS7_@<}jXOX!d z^4-V>buz^SYXFS;dWAo_M0n#TuFPRgXQpA zhvg>Dird4;0vT`X&^kohn1GmC;PLrahC@15%CC_2;fitpqz%z2=&ossRsmda)G8$i z+J=wO9TDYbb(lUR;`3qb9TxJ5&4|Y4y`EtK2mUo;+4+PAL6WqV+}ic^?=-}|N~`26 zaJ#{=zkhep;SeiLCP$xWTr+iwvq3`$X}z%K5o2CB+rWCCPzIG7M^V$xtH~d5o0B#J zM;vjHiM>7@52kC0efJX5^WFe-h~X<85|}>Qt<4-vnjTW%4xE>nFfM#?D&=QZBRw5M zOS+&&$c{8h)#dq=e8IsBpRIS)PDa!fYTS;7zinM-Z9l~!JkXC@n2g*D4*N)K#qRTm zj0gtzuN(OePzL*tF6Ub`iLw^n4U1Gi(aD|y-m-Jf-d8JmDJ1{3fn(!#+vTttH{v`x z%!h^!cm*y-BT6 z%-c^?7gkW@z$iWvE#R>SNz5WxQ{A~ceA3sDZN7^{)o^jsymXgJmy3N*hHV(Df}U$U zXt=Go*V^34;BC|T=~tyfe1Deark@4%b4A%We}RrzJ1b)YIz+$2>?ZT@5)u08GN+RTQUm(U?{8Hb? z&%<#y;FPz>XS~sd_Fr9d1u+=jhiMN42y&)NTE}E(vf68|CsxJOK)uJRMzt$p11RrXJ z4`!_PJ7q8#nhr9H?7r2CM{A+S6~)%#Fe%~9pi&U|X zVIm=jo&^7j+B<7oyqbtIS9gd{_G`^}B~ET%KKkQ3dtH?SspN%Sr|}m$>#scfYX#;l zKc??u5;AxxZdH@Xv4F4qa=n^UEdF{=M{+b~0=zE$djy_SL5rF{3E z4uQg9Lh%NNNV`yuJWj=cf_W#sz4D;I-p?h^kT=`p%0@-;N9mUV~2azgcn(|8SR5 zIqDoB_Pzc_9J;aLWMCdGjn6^FkiyUA%Tw}USBs*Jy1xG-pXz&V*4I@#C!a0($a{j> zssQX{aqa#3Mi;qjRN~*IiJdzu_|WC9i)Omdq}+sjIx}1}sM19ICu^X2#=sz3qxoqQcvpHCysS1)pWJ zM@VM&17KV}^k-U@_JBI=c;?}UiU4zmY=I+0 zRSc0Vz$o3J8?;}!$c!^SjnFFwg|XU)*4kE=&+fCej$}*m>RP2(l3z(Jh^GTvgF1?} zsxSL7KH2}JZ9N(Gl5FU15BW_EWbix#nNjSgFk*6b4(-`m*@p z{BfK5hC+x0H2J|pcHS}LQKrV}SeMRut@sbf4B(&X;u>Oo*gy6sO&b>#-za6t#xF(Uo4iAX!|lE0-B^Uq`esj45hKHCAMy zNx^fJQx@wAsM9RW>9e#-+H4vsPCax?R$*CWLy}T$g?Hmk6mkdoXA4rj`6mabL^Om7 zd6-gs#EbGLe+xl#%AY6`Li5rB6SEjr1|B2}_jHSlb|hfM8B`y-evg+GChPsG{u)~Q zW&ZPP2IOZE(=D17$%5o=5IctT&m4c(qin4tkmHOV?4E~M~cwj}ou0QI5zx%%cMRAEW^QUT~_VoeZ? zV(eGY$-Jr`af2ZfkS5=<9hAFQjw@I)n- zsNs~F(O+3U5NE%Z!1C_1($@mEe-c5VdNyBDga(2@=MGkAt&GN~vCj81ieeBcs$=V$ z4cDVYZM49}>O_^Yku92J*3TJyFTtvp@|*DQ578vzcZ!>eG!NC<1CD7bGnW>vxjMH1 zeb)l$V0zrkJpLBOz!}EA6=I&PowbZL0+$haRAzB$8q&N2AgKo4-`dmDH2u?o}%xl~GdmSe?3|3sNT-R?>vZfY89m-v<1 zx#BUqmRCDI=ufc`a{2T>aj8J4#^>)XsIIcQ&?e!qkBnBksc;tUpTpA2_@$Xmct*r3 z)~DF&iYE6uVBaIh{SDzl=off^?AksM|M@S2ie%k#E7f$fg!HE4eJ(AXs_q;Rj<*hM zI%@E@~2<^uTBCle-+^lP9kL|3Y3QCPP-9rsb*d_9Vh++LH{J}@~l}E z^6pF5DLd0{poot}Zdx=5v2J^gxLt@H2Um8A@()5x$loJjKgi;V(VS7RMOIz#=uTQ) z=T>2&HCp8`Siy7CbpAD$KUJvrX1-;TJ+-K$FY|@4mxf&q4oo#^ZWq9TZtY^TwP~h; zQ1azbKJSaXKuTTFBCHl&39WZZw7HtwSqcn1(*$uETwS(leWC>yssC~E3*uz0WL%YK z%MhCCwPz`~DWX)1xq){u>QyqUNTQ*eA%ewS`<~OnY9Ohj7|Y`>E+%=3F`am0`G-kz zu0c5~rEdM$|C2R^iEo+8{yf#7NMt&$iS`TB-zup6vM-{5G(C~Qz$Ch)8zQ!lQ@&Yl z#gN3sO!JcOet07bAjy`IgBjEfGZfe|8@`D`oZ!4Lzx3zxe*? zZ&dpu5EnMeY5GR-HIGU4n1jsfj6k$$k)ZU0%!{vO-?eQXV~z}UtV9u#D+!iiq#eJ+ zAX-!r5rE+OC3B~zs;3gdVsVrAWK7sUi?)V^ip}&R{aZ_U{|X;4J)c)D?|Fm+BH-bS zPYy3BT~wVuZHgrQ#gY#0!kE0-9LGXB7}#7@DJ$QfLNSN#a}-X-Sn73GSI2#5DPlCC zS7ibnDa8LL7;D5EO_MU4NVbD;?Lirn!N_ZkOYCDx8Fd<^1;rU#N3#h#a3eO-2>LgP zucmy?#RqqJaumR_KClXH)V^qJiK~*viX<*>q>)OSz}+@%hcJ0kGNRZtrwu6iU|<^4 z{Ic>)(WJnoy?x!8ZUD{7Ylb6FbZf-X+)7Qb_+YD}{Ge~w_bSGDw-2pp~0J@2_Kg?G$`U89GLGs(fy8Y1~ zl5o%%UWE)`ssu&K$^r?Lp-wBhR}n#=UXlCI(K*hHo^L{|Bhh4U&V~c{RN(1 zExJu$oj)(7mpM(|Q!fy1;adY0x&HTWhN27qi_AqXZe$sVx5>wq>V5%1I1-IS91`53uIws zd0u!UW$i9DRev%|X1n4Xt5_bp{pL4jlJYnVR@)qG#pvkS)ObQ@*_gK}k1d<2N5|cq# ztUQI~#z=jpxKD3`czyk0*j9$wcF(*djfM56b&t2D_^!H}rpY9awNvVLqC^ z1d47=le8|JA8~=50qw{HQy!Bnl`9Oo_B+5^HV zEU|tCkRw{>BAP)>dOrdTq120#ApW0#>Vfkk;S`e)u$G(~wqsfnY)Jm6f3#-IAANS3 z#$>p<%w$$D+kxRjYs#kPk2yOBjFS1=@q-(xB3kjRAOHgrr{eY{O4iIRqph8_feA3~ z=`-;Mr#J+;%><7~TsCT#ul#95^*X~N|*ws%IK@4s}i{4owKp1 zQ}TaEe|AdNo$(4NG6EV4cItbmrxSrw#P<_y_~Dh(*oU<&PC zXz#uqJnMjMp_Of2+}lQZ|94<4%vJuc`&)9HjE1kiaaf}O$yTrPiV}Hs+8cfbsn=xx zk10^}Qzsd{pXxfYhGn?wlSL*~8TO=vTBPE3%$^Kye8kGgKZeaFwh=U=#=C-3^m44Y zOxhc?i=<7Nl85E!j{uCUZxUI%D>fh>3vjI#>_3X@Y=Th)mflg2MeCf=QL6G`TlnE` z*9{^e$++tTVG)PWia3!^^V-j)qfGk)Xj+*?OI_b6&wNS$$NOZF60L$_nwXo)4B&Fh z4H9G=l}h8^NHl5^aHVRWcf5b8lnZq<+~O*HzwbuzB-;!nEbNZ?$gMx1@9?aeexQ>qFffa(bT=KZog_GLWv|-?{z`wGA|L(;p5)q7A;sn~)DC;qg~!5@m02tM$b! ziQiyblw_FrW zC-cTN9PeS8VlMzd{Gc`>j1aA1rhNA5T+@ox)6`erPE>RM$LUz~%0Q9QFMPd_)pY|+ zA;;1%Y@UxQn-;`6-!^GD_q}d#ol#PnE6P!vga(8HkLu+aGwJB3^Gi1-QD_|N(wxRr z&Ai3Fqv}LV2OYR&-*#7D@cG5R&TAuQn9?iVsvu_Zq%r_EFP3n#g`M;72 z+yxW;|Fy1*q}yQ{sHL-7>WzwCVZo#2`=gwNXXGGBg_nhF-%lTUyU*=~QyPSg8IUHE z(5g#l^k$1|n_d-^cn}c2W$pBub312TpBpj+r)S!1Na%q@d=09TSSsF6Cp)-=Lw{I@ zfebl!7t~cgsajiXt5;Outr8-=5L8A=0=)yxEA&=f#KWBv#l-y)IoR5uy+QmPD0S?7 zgw9?|=cuTiHMvQy$i(1VW84Q`Eq>+8=Y{HPn^!JU8^uiyek6paKs~aXgKZM^ez^A&BP0W=hlOB|`pNq{9$0TX{cSBq z^@Ul(MGa_r%@(QF+OpbjPp@=eAG_5lRddZzKS}7zE1J_YqT6T}PJZqF@`!%}cvl*1 zJ-d_^^ybcloq3w=^~3=g&0$qed|>+42tTeDF7i}VG`0NkB~RH6uauxa5lYXnc>H;_ z0Jn13Md+K#Fzp-YkFS+L}i?6#`>_nS)S02*f{5W=qT*Wx2aHJc4W`OB5+QWo77c=8rKHI~{ZnjmTwf9!XALGi zKdE=$k8-&3F}|8)TK1_k;Pn>bzreoCy5h-L`B}%r0dZXUr;6@N6aowI^upmaAIf|? z+gXdgl^~KZRoAG1A26^>dh{t$@e4uY#K1cgKPOGva4N{j7pQPMaAq^#fxVg`@7Wd- zkg>HWzB!a$#=I%Tta;J0*?;TU-rI9+ny>cJ9OcX$ z?Y`%p(27*Y47dW;9NV~}(gHfxgO#={=E^=W6L}d9K;FHS^o9ld|6QyM0aNI|sJjLz zNw(M6K4Rj&sMM`VYFZ^+GXX}ma3XQy#DDyvO6-4E+H`rGO>XJHU6E^yWrVU=A z6yCm4&nV%k9g4HInmsJ~yOQ%~bAlrP5Xmm7^K-I#nXuqPc?3`7lo;uo#8<;@lOX$0 z`D2ma@D}!zcI~AdHT{c-Y-Fl3=m`rCD2>~RM)1=EBqId{2x{&Mzr;^ z*C?4}mt`7UVpobv7W^K7QNduJ-J53QDjc6ONK+b@EQ=$V(hg1;TooULSivQyt!+*% z5U}Y)UZu#?sw^mO6_`r?3oT!WBm~&Y;vA$-RmOdbGzXCpqLIq}D0k~zOhDsJWfjLS zV|o93p4=LTOW|BPDyqXyhHqP|Z;>V;8jZ}kmqv*;jm}7Kvf3~g$#FO8pE}?ln|O;} zc!2LLq|-dfR;*k)rjcH^$Cx~XSK5?-+A2xo$ktmI%S-(NKm4~q?GNY)?1h*<1s$r! zWEGQ-AE{|M{F2M~Fu$nUbX{yk3;mZ-T(eS6^Y>CKXrq-~D(J&q_Gtq0BetZctFroC zc@Z0jX@tbedtoizkyD7knv8wl{SViMIK@-57DuRl&c}GyhSD~7ZsNQRRQ@-&r9^ZO zf_2hyxDe7gVa#tItd%JRy^%=Mbmlt3`wUEfBhio5V-T0*M}379<;UkfdIr%zY&hd(MoSJg*l! z^y}N@m(5>877T}XbhhS&3HiAJ%v1(h+w2t6FvYRLOb$x#`=ppz-?)5yU6~-#ea5yw z7sX7-Go+FZ6-4B z31T$?=a)U31pPLX!;lSA#7J6>Kj%4u# z_wc=)420ajeEw(kWQoZX_PPrB^cUl;Y?8-+cWS%{DH67krU-hJ`96`WAlAuJzNUyn$mG9j4=qvU zG^IoKnE?zvTV`!>@&=~d+ceVkFB$iD3tjJ zyT3p;m>09Go~GC6g@jxV(x0Qxa6WVl4T#o`tY{zSpn=R9$Gr|NN2bxKqv|krU9qY4 zv!-=E-GA-v?CbB{?~%-1rBY3Y^PX2c`)3vFPl2c@1=h=|dYY?oWY2vX*w~|?zAOe9 z8FvyS3jPA`cWgoHSKgRJrJuEJPgSfg_a;@L=!T4LO+t=uD)98Ry;$!znMmi(;G4vt zfb8@{UAUtEbH^V54dPW)GlC@)F*$FPV-C{F355`7Kk=E_R|$kI7I3Oea!ghSULN&s z@_L)}6BpiYYmuARmhvcU3s(zA6Ex3#?**ChWgT>bUJ zoB->Cj4I%?=C0`mjha^=l;{$6TDP_go{rWz%ap9tx0Khj0lf}jRtw!S&z;NGo{h{7P3UvGz#%4e0mnoGW5Y!dwQ^{R?8b|q_!h0$b>MUj7{VvJ2Tm1%kMx1aTmsbHz zBK)LdoF<6Ek$7R;N;#TcSmpa^s8`HmwP#<`urK|8&TRBOAIx%sbYhn#XSf6Ch$QC3XdlHC6+FcaDI_?~hzpDSiLi|4?sBmpDr)c5 zRSzPK6fCLat`AtHJ_~z`J1akq^nDJN05&2mdv0jlTpkI28&Gp0zHT<8!XulF;!I3P z#cafN5A^OKgq?mX$-NQA^Qit*9kkutG(gwySIv9n8@|q{7G6%oVTsK5yr{Pp``ijg z__S)NlOA_@f|(AR7|zpqKAV#c)g7@5uMU=I^EHd2^R3pC52$I`^*fYi79gaNBRZJh z`W+^+JHa`ll1UeKaq*FeGdtihx9job>@M>O84-Q=#O?Fi&D}DBS$ptF8@x~BGc(Z# z(|{ipH%f@wKQ5d`ovf6mc|t>DbEE2?)N2|>e`TyQY36j!GsJ%4@A-VxfHn0)Q=EF5 ziMa0d!WUb`o^pm<3RGB-$l`!WmF0-1Hd#?(dRl&Wj=NQ{nPvOL}?$kfhh@h zZ<-5%Y{s$9R?k}tu7{9`wI?JBf1s{=M#+h>qRgQVrpGnup8MyjBxw0aGF&g+Pd&%y zB;n`eNBgYZ5XH}xL8ID7YZsDSDX~O{#(f!QY1yMV0LA`-ycK z*Mn#z`PBnN;du*l_IGnW#L6G8?at!$=GGRhZgo+G4YEas!VND0WOZ&ueaK)G(J-&{ z*^rlU;rX$!MaS;;dTnk;Hz*+?q40s~+k5-79*{iLC`u5Gl+)UoECC2PeW-Qqw-2@w zLAI5Zk~Y%mW=Hj@ETzFpuBknB*KsmpO!XuMr?A5DDy_({mE|9o_NZkQ0J&qP@I&t- zdg|r1EPEZ%X_9B1zIB{se5nGaaXwHIsm=oHIHud7gUfz|(_SO|KdJ=l27Ad6T>F2x zI16~TdND0RRx>NBym@C%R(#OYK0FAy+AR^<4&Q7T2wB_QT;H**a;`iqO#fu)r9k_k zc8KQX5T=g?+Ni=m>6j=na~RU`NJran$MVZ&RDeEY!EQ7>ut+ZlxG?xXmawJk+*yJ^ z^|j=AF(2w)NmYWHng#}eb;^A8u}5#wE$f|{=D?X@d52D4U7-cq(w0-T>5{D)O5YECS` zJtnmZo_DXjiEDDJ$Pt%Xkv@91qB-*|5KnF&kE0 zT5hY`H=TW&)I{p3$f_-i5S^HKyOMskkbn~GaL~}<(UJ8aps+HHeqyN$)24BQ!y;Js zjDOnq+huj4Y>=$LXW>NRv>yMYb6tmY?W*6bV^aWMAw~x|b#}4m_V!_3K7Tm+0dl%S zO!)h5J)Lxo@I3Q74`Y`F<_|(s5udtq4Obz-zQara#>$~z@yjySL>SK;#lRpi1+_8O zU34ObWY%>;#C&0T=<@dd68w}H1>aJWoDh#0Vg7t?!nj)zf8~ENhg*#p%lP>w#II-kAIDXo8fXq7I2nAj0c?9stg|0FlyM{qS~1EYN# z%b(pqg(To=^Y*YD1m52lzuEc8&`?5aN{-UjXvEB@QR6>@C1{UK_L!b+J0UOlU6$NM z1R?GEv5M8)7PeGV191Ix#c*?#I@X9HOsK;HMu@ShbW`H@Jjt$6u=6@~Pe0Rhje7cu zZbYw6yt&m-eaH4_y(9G(F(iX{6E*K=h`^<9h0=kJVcjC1q6gMV!NzZ2mwI{#ptjr; zO2k?vzO-5Qv>N^;R$^&;v@=^~z)5S$rt&wII0dR&8<(=+%y3>z3KO)&vy)|nqr-|UItCynJvkQBk(KSn;t$tor=3T<+U7hrJngGF8FgKyen4l3KB^d`K6Sn<`mOTDiGU9iS^fwXdkD#6 zEf9)g4cqCuvQU;d|5<)fqROMEJk6#7Vijb7H5r;!ZJC183=Tv;EEb=++|_0*^2ba^ zc_OE9CJ@~}Z9EXh=Cgxt-(f7kDxWD@BL&cHh7MlJR0AM>O(G$j66tRgwE}CN#3G3v zM4IXelicn4T$oxb!1ad^Y&OcE8)-@&wq8Peg^tM zp2a^_ju@8kL7$9|x8y?>gS%i)2U8tAk(l3}{rlW^nhyFgg zeI~@{F5BF>YaRC@PUGshXsW=QiJ8h0noYI7OV18J8-wRZvt7eesG3;!tG>QI-+^K# z%=<3vmyBr}Pw!<{-*Kgegs(kugNC}B?b<%htVZSS0p9tQ32zvmSXjCb`iXD@W&yOOxfZ34eaarF{c3gQVoynbRB~hOVnWWBbLEcG*Mzp_BoGSYQpussuZLRC zSQNjNfPqnYDW9H5t;xYI^7zjG*031SV$nDKlvDdQz6L*VeF9PRe1EBOD`U*B=4dVc z0rEDRko!0(WU|th(6YrFT-aHz##tondEXBn7NYiKjE;IS_7%vw>UeH-n=`*>#z3%!h%w)~MUD8paxi;PX*CT^!6( zG8YpUzS_u{VxSfPUtVU1*RxDTR-41~Mq#$0V>w~lPi@6(p~c8^{T(zrI~)J$WP5Dn z@y-ctwfRRBYol$vj^`Y_>yaR6wVzgGC){cdOY# z{n=j5jPhcjO${n0mu&)b9qWy3fD< z;GB_rh1UkwoD8NRTc!LN;J=!%=%{U7IdQhOKg(=LH4-de4{`4s{2i7}xPX0MIMC9* zVItqMdEOOIqOH4m&qKI8+;59xng8O^FiGFwZA?$*ALFfM6g30~NYr!qF zm7RqIUS}?Nj$fY7j|EU+q$6m?z(9b@3Wkm%#y*3YBle`%qMKW|C=Z1GG_P)3_=BC$6ION*^xDM|J1$KR7Mih)^s?iC z*zseH@IoX(dpF5F7_7P0kxe_izkH(Y>*!;_pDWLy-$qL4bR~Ke8+NH=ZDSMc^RVI8 za4?d(W_X3S+NSr!a)UB?to6GIcx~`rN&WOvw9bgP*c@hsd{AyQfQCTbAVsZ}gqhe2 zo+Xpp(x+XA?;*H9gIZMMRej3f*$g)n(>HeThp2`wigCV~kgzIqY0-J_4@Vr6*NMYz zbtweq>Xm~NO3)T^#g!IQ&Ssf;wdu3po^6BTB2UZIz8j3wbr)}*<4qW#f%*kDkl@K^2*B9;0-D+?h7ulS=8LlPVnn^fzxMoth6| z^)TYn)4Px3j~<$@)#{=XClcN(nLyZw+gn++4yPGi#Fe&FTJIrCB2Rq83Ez<>$|dO4CF zD^S<Lvwk!sOFOZ_vaH^+tk z)OTp(RU+|#`{{&suVs`t*BWC5F&`6lk%!a2=C*n~w>LL#?zp*&_|5`^5yr~b!BGB0 zI^eFU(TEU)MY=yFE3f11jMzpii*U5OL_Aw)|3y_V;(IJPNvabFWB|Pzfw7@(u4!~v z*%1^PbKbJQZg;spR&~8j$2fd9XiyolwBUT2?Y~B==1G-;o<>-SWKnlA`xWiiSSX?1 ziO(s@DwaT5WCelyWo^9yT61YyG|CJOMR=$rG*V=s3p*RrCk_R_j`<-AYYOv#k$WCF z)aY94#O9FCCGf{Fzk^dZHvI1*84fjGL82-3UM(lB(|n^b-M&xdcj2Wi-Ro4G>GHPTDin@JL^fZ#fkn-HfDREcHWZZ4i@3z@(MY8;32tXvu>T>7^Q7NOZ<}F zOvmwXztM>r?mL&LwHFEXjT9ryXy!6f9e+*CNrT~7FmE+q zmGqfKCla!)+#0h66-s6?GXq0JSKNZK%JKFIH7+JAGAaAK0Fs?riO<)ak%ybm^oqhc zNGr;|Me3YVPuXebIfIqpIizMK*Mhe;3^AVUB$xLvci>frJtB@^F)F456oaYrdOc2zNryTO8zaO}n(ZXlUUXMp)RZ0JvWClunmdzh{{jvH?6cj6PNyd|aNZ zRI|+|pXp2!Kb)Z`Xe)P{$md^|ckg*g2qU1KvYO;2>tFb$=KnayDe~s465+j<=#FPc2rJ@d)OEO%^yUzkgc*I@`=g z`Dxo=BxcFsN@47lYC4xa%#gHush2|ZB zhtyBJ48Bu(b3^&DHEZbQ;og{g!oBRxK!n6~8<|B4=`36dl$mJ?I@*@9#o9|=A9@&c z!WsF1pk+U?I$e=zbdBq^*6xNvLXvv(_}a~_@lXKwdN7Fwh{5=(xWx-Q?#U7TqSX=} zEpqlz-%?ns`xptT{8-Qauvh=Z28jOk@Ru~8Im+w+z>sx=_biMF$uXKiBh{b%c`qWN zMEbGveu@Ng+yeZ3QS$KA>RJ`S-#XoA4Yy)Dr4~6@%{vExAyN)Qf(u~U-W5zo@Jp&@ zK)nH=IsL3>6FhIUWN7x}-5gcYzX%Tg&46-KjI{y_dp&kr;!>eNnY|o4QFJtqvwXt! zt#y0r1WCK!rTz5XXzC6>;Ci$nM6k57#uT@W@Tl`kaFulWH&~Zhf}cpbr$DL(qwu|o z!IdCAS#DARo-60}`vr(`qTq?v1BnOqut4O<#>nZ!A=|-EB)!3^YtQ>I&oRV~@gW0G zdR(A!2d!X#pC=q7H7w{9#hbhTEx0M!o~>Mae21hLom3(lG*aC zXry|9_P59UsdqQ~PLTB>p?ihrQWHj{>zO^*`YB+oap!phfqmb0Wv1Ub% zW#RHNGN&$~r5PbP7WMazTU>69KF*iV?hFrm%IGsy1oCl$O z9jimcWDK0qb;HSc-eEW$KO9}1kZ-%N=uru-_|)#zM7>4y>RTNcN$=VuI#!!Af!)y8-tM%dMCyvW3 z0mH!FTfd4sb*=iTb8pFttJ4^Psurk$XWN4OM6 z;sqbZ5U_Q_GlNM4z0n^o?iRxJ1wHxCZoC$qr%MUfzH#eyjHF-PAB9J5d}=Vhvr!-F zW^OtoeWP(oJwR01UtO-|NK|Q;7C*={&q`eJZBZ;pd$v;DOg&?aW!~sFT`)}c3XaWO zArCXolX`d16nIICP-3yQtf!@R6&&;vO~5n6cf`PQF6DwR#K=7s^Rc0y+zK9dRSqh3 zMM19=9h7m3cyM_*g(M819Y?!p3**NK6X-Q+gY~WI&q^Q@qff#lb(~53x4|}A zz0w(+%Z?IxIw7ItBZ*Uo?_?{2H9Oe@99HC`gS;!r7ge0me!aroBinw`I9+V9cX@f& zCiM{jm5=UOFuc}8#P~IK+-3tAg)3z8%@hy&I8}Ka6X-EN!SEUCd^Yv}u=U;XRKM^4 zNyx73trV5)y_F)FMMgFu+4JDwkWiVWPUV6_-TAM5qDCE2NE6+6WXl^61 z7DLJ?@Qk993vgY(eB9^ya}SfO#xY5Ug>R*gnwWS5Ys`6R%C|KbK0G_HXr!l`_lKNBDGUf}a=C98ToMy@h_rior&q_f}wvMER|0_8H@E zZ813MfM^v4^gI!1%*Qt&_w8p9N}IHf6LiU9T$tQxnk6aJCM}OD@>MO|h%C0>bi{d! z*G5GH*(_HD%-K$x)25pl{pOL(3CPy3f5Hehmo#Az`e`oHz=YOVWvfVn{=6zM?wQnL zB6&~1V=b0^=P5G)Z>1GHk={;Y+C&#-~T^IVl#T%)Zjdll9x^H$qR(l_-OkGe(@@%!| z0prl?pd!ha#y<{}joIC4#bHmi3PX&uoh>if9h0xL3H6W04)~aEsoy=jjrL+7eq8!E zX#8PJs=ifkOepAt0&s79&6F=ZlYoA)Vr(+0cIOq0E&DJfayI}pN@;b@OYlBzn`6cG)tv`gfzlYNjA1^Ts+D}oj z=PitWT1G$op`)!95gkl>%TL%=}7!JF5x}V*5*=t zk|GxOc@XXtG{b_-ENNC;4q>eUCp77g9PDY1JpNs^&+W%@X~UMvXW)tOphlB&A2KmG zo{#j_hYVWh?>bZsaZ!S-MUw3){DSil35Jpvk#$QnEgV8rW0>qES{T`p*g=$M#^waw zoG0?U#-qQN(?ra(8_5hWj+=`ej`8U$$&OMh^y3SDs_AceGSKjJ)`n0x(b z^W*z;+IFEj<`d0Sn#mi189v8Pj1>2S@-1q^xs1B$kz?DHg6E(l?XcS;WdWO36HWd( z@;jOKDU@5ACIBsyTIJ&c`+I_vRW$)eoW+(w!b{YwR5n2Y0`ydDL=urqtqAX;oRWgU zaz8rpr-mws;1E-V+48K6nIN*ZS^#W{+@9~X0_f0W;%FU`d9tq~yTq9@q!MG<>B0GY zajAXzw0ZrV{K=}yoF!7`v)p#G&`w^lY3heRLj$sHxK;0dy0~{g%}f4RiQ9iY-t)#Q z{)EVuKBWl6!#RybL|5IAX2X*9%}Gxoqtl^%VbqtN%=M<)bK9sZw~Fd$^_xy5dm+cq zk^oyvx)3W4&4xokWW|1eY~IR&4HuWvk#KYJ)9y_sSRk9YO94gwL!A}h;(+}Pi?$ja z`}SEn?aK(;m_+_v^Xe4brp+%j=fx(zO`_?QfQ~~s$T90qb4}ajtn1CbvE74?n-?ak zUu1stV|dpQ6t z#{3-j!Ic%pbwICox6m?Q0x|J~IEr0ON|-&Gh7Uy^=53G-Vwf47Oa znycIw>2C6Tn5R zrF)?A&m<%@KJIy17aR)DZ%a8kzL>rHA#S|9C-1>e1oKaPg*((yF!UgWeYJ0jbr-8a zB-B$HaB$Vd;J6=TwRpp@r4XXj#>v?A8n^jmbsmVgBG|s{dtB{vEc({57)m8jy&TIc zWK@1}C*n^b+^zO=rCJz_OUY9+kJ(O8yO?11Kq(c*dThGR{ketlLaxck`!wr}pkY;? z_8^v-deK9o(Cdv%PJLoJZAc-dh~=$O-4;Rjy^m>DQtv?@ecXA#PM=|5<{d@J_wQ8E zbtuYEHAX7yjEI7)>M*4Y;Wz~&-JgQSdm7(3iE>|PEJkmBaQcs`6dcaZamGenwsS#SNlHx5)?Xeg*uL57@oA?}^C8u2 z<0KXh_$dbJ(q;DjF0!duLpK?Eex?hRd9`#8CUvYra9YOIx5T@>BVFwTKBU z-xFZP0=hpXi&nYGu6Ul}cDRZxWy_8Pr^_0l3?g1fmXuf94LRHwzWCdkW?v_+WBhp- z=QHp%mDnrxSrrxQmb>+BB6jP=Yzfxy(dD5{PZpBpPGgm*WwzjCnSLuYL9r8G!LEsc zrpUo`%OgLf;MUIc^PfqM%aN0LM@7;U#x0dw3$fSxOM(++65%KyGhizkGs>~0)mLtd zL3{_R&Pt+}`%7 zOFVh1MvQn@#HB&LdEo-vqJFVV!{QiDN&lpcQf4=vAKAi_K{Co?_GbFZ&|k}V@lLTr1M{U-Az=a^O(pV{(MX#eB2K-&Zs44Je?C1 zR+3;RE4X!z-eOgGq+s4?1T> zVuTVv>lXZ&G!gFiroT(q{}%8KGT@gQBRtAR9EeV6>3ZMpBwG026Ux4%tDMz4?3b_I zBNY`LvRZD3MBIu;1>5!*wAHUzT+ZYZ{XOT0@PQ}sL=+=WJfYyFd_HYF^er6yC^s{hd8bL(KiK;GdO9g`IYw{C^oAs>5F49z=P=F9yBA>{4&osx^`za9VO z<+D~<5*_Fl@~^&FnF`-$h@T|!OI0<9nOWxR`NG1QlaMRF=Y#xdhNYq!RCr1HPa~R7gNElaLXjc8y_&u#*reGg z)t?D!gkyb3!&CF~feI8$=8L}_2pJxzy8!n?@zf!vdKw_aBiH^dc%87|bz+v-2oVsj zR`?Yx@4seRZqjQu_^D)FzC8R~RN@j6cMS{@Xs_QrBMOmq3*l6}1`iqONbxBkZaF#1 zy*&?``Ph_y%qZxxbF&0tOcDF`-=FZk)h5gt$|WW*a{qCiz?zHw=M*$A z;U9fyO?tckm~-Tg8I{~}-<;ZK6WMd3k^V9@)P zOVERd??+;%(f6bS_Kf2a&06}(()^gKs%sw^j;EgpTV~XFkCWaMyoqt{5NNYx&UMn>RNQjrW#QYUs|3y7gSysgb_gc}SD zR#F*|Ci@wqa9I&@1m#?tEc_W(9xxohtZPcM!tN28Mav}^K-6rEz9lX`e%H>QF~z6l zlUwT?BseUVi*{?vxqM*4#!7$kd0pU`3?cP-Ec3u^1!ew91tm=lPeQ+L=Q^t%pAW@z zZ{CJIpNW)IbZ_74h=fTcyG3Ms=W0Fbvl$bUIiX+Y_skmGd zh!ZKs&kF$%$zcuAFRvE-{rQ9iP(&?UD;6a(Z0QPw_rO-nVer{AE+1E1s zuBo^4jn28HU#Z|)k9zU!^M4r$6;Y<8`wolKjkrJ@?@~|q2nnSegB-~BHZ6PP`)>=h z06Xsg?CJ}9sw02i!aVR+fM=&r=8FR(X7AnD*I!mh7}~8yZWt0v8i?B)xB}Wu%A=>NCcQP3-LT9q8!K2c2G~U3Cgca`eL@GCv8Uu=}NC?lKe3) zA$3-GgH^{uvHs?#vcC_b_|r;Qp3nXUkH-lzLcz6(O|k<0a}2w|@}hXE*QY(^)!uOb z6WGokLZXOWls?<``8VJ+t5ZWwZa;e3i6ZgQoq)PJnmheJdqcQ5P;&Xudd9TVnRF-Q zuo_o)8q$<%yEpyE(o?zd3O=RIwxETWEakoq`aj8wH$nt=cf?A&9{ocZn;RV`mqE1? za$av;BIvxOZuJRQ?7gjTHwM2sGRL_)co?wj_9D{iENV|VDj@#U#T#5lV zHD`d|ivJAt!duW4<{e1kp($6v68-axlSm!oooc!c?4rG{aKLr@;F(P&4{@O^!OHSC z7RU>XDRXqGH{wyRqM-7~@?eNVlQ%L#S32OrEHT;IX6uCjl8Ce&hvCMnOL3z`Nf0&a zo+F+QTwHH{M3DC@tmxMr4DG*m$Y|uQm7*-XeMEfjg>-rLt8uX*mE`#q&J!`5C^S*& zlpkbtuHq>E2RuF8fdNQ_c)iD>3m2kKnkOa!M$6M17zob#AC7ZC8ZL7lZzu?RuU~(v z`M3Q7-wK9z`N(r?BhP(FWuHBp{f&A*ouS@`1KlAH05kp306`3^WYaF!#Qr#B0sP|V z+EfmxnT!{D0MZrqVy-ho=$mvHdN~DcP$&5hSR6GuSMw*{?Yn|jaBuI2TqNZT`Y4_p zbeh$OfmCYG3pE}t5K|wuUjX1P7uM)&Slp!`(~@V=PH`^~uRreP^F5Xf5Ml*(Z&kgI zP?1Diw`%1@obUysaOlqR4}l@)g#6~^CW3rUcrZOAzCzPdj*20MirWF)DiiXD2b6A0 zu|lt}hW1#(8^i8t%KSA`w8C+uweTg$X$$+2ghbsnbQaUTy355PU1? z$}yabs~xzF6@r5wVgC$`yurK!825gpdzVZdpN6dV2H$#^;{{d!I$Lqyqvckp87OD7gzY&2^2E9F4= z)Re4IgVT-P&tgh7)NxX0XpQ?VO9n^vbxx?SbQJ)Oy;$QsO`~*#Gj?k|&g)c3%%?qD zRk=+V5A+CFd-7LNS;GZM=fc-TWyd$Fs;l{y@9LKQ>w@954)z)Ge{-bo;4{)?MYsVn z4Xq-kO(F{YNt#W;;g#}lMQ+j;Y66$cF3|i`HZb57m#Ss%Bc*1&NDBoq=^Jhb^Tf!u zzqxw#428!1B)H1ku|ZPoz{iiTQjUCy7MQ#7%Xpyi;)4eyap~#y-~WvIB>>2WwuH4m zsX-`X12-ogm(MioWdgR%%U>SKjwj#_%M7hBMzZkw z;eqYf)NGOwKdunMg5Of~@ByCd8b2P##@nRHx!z4Vc-`h6(}=0J^eT zXM${UK;iV=xv>ksXO#Zg5XHy~8ZQ=NI=-0DraY~1Jsoh@zS&E&F(QwDy=B*>iM`gu zTFHddz%zN-NuW%&GZ(pJ&WIDt*-mm;yEgHY8 zrbcEOIC`UeCI|?y=^6PKRK>9qq>X)nIZ^E~zCxC4xDtC4@4ygPPI*;z9iOFA=QRD^FF% z|Bixh>!rkxP4}kk8@YJK6#@lXSu&Ifi~fqHTBK#6uqkWi9P(_3M3xM|(aJxJR{-kU zL&KunVmx4tfOx$#MzuuaKLAa->Srn(XEsE3vIXSMwhyEIu-C(%F;K-KvJEh>qrt3W zRx*m88}$aptNeR05`Vx5Cb{elcTyk06k4uy;GQ)c2k9QpH?8W#l_ zR~;?X4;45#IC%5B)qWe)x^C|~@T!79)o#Gtl~ zak)uQ@pI5tN6T3urG#36lxd0nxBqe>n-@>(oaH*c?~lvU4lmGC6$Fz@!OyRKp3>LS ziBPYFlW0xXv`Im5Hx_9HBOWK3k%PyjL#sUpjs-P8%U?D>L9qz~;OA#L&1Xz0b(#Q7 zi_cfuz4I_6=IQ&=`Us=;EtBG4YJR+T*KIw2hiX;P7<1ccs`=fxOdOVV3Up`j`BLO< z`egs;TAtTKGcFnx7xa-~(ZyrI>UY z=@^z56Xl#4?a)?yM*nK97dPdQOUMcJMg}3L?*&y?-Dv`)kn5qQh?~uKN*-_XI=Q-r zQjhX;OM!z`3Vli!yy==7XI|7T6^I>`vaTmOr`W$@v5nACq+~T&pHpX~uK`rK_o69J z$;q^(-=3G?vAKSoU^=I~X9rd(Apt@AL|rm6?+3nr1?f6LL$9+9>dT~5 zMNz$Qv_nODd%4tCOPxSY?~KXMEono@xwLil3{+`G#PusRavigMhmoVgwOBLbyt6p- zrKqKa$dh!2Vj2t_r$RD!Yl^K`50GtvPoS_XQ-+)Xi+7KK@Q9_?Snv>`7Yb<@@2$&Ze` z5VGFjr$u9JxqVMn75?0E;4@8lor!(s5p6%jL9MuE+#~3KRNA@JVkZ8O(u@@<0urnm z8NIibskUc>0B;lNN)NH;rvl&(ZhPvTE#JxQ0;Pv`*7~QyIfR`@=HlW%GtnRhZMbVz zc8Kc(@EHPTLq%Bl@oF+tW|i+v&=vigJ654hs+_!q@?7FCxaHkW&2|=*ILo`wh8V;( z5jPnrtWCN)Gm58BvCqz~k>>(52js5gL325D*b^J}`2$hK)gf@&JRY#BFJfa?D zg%obhZlR^S2<%Ny$MQ*gpK`Ug(m{FvM=rh?>6TPcrL`O#uGeC;jifl=?&)$*l!5Q| z#){?XF5g4F0L!_GTGxf7O4{bMp547wHVeh8B1RKc1y}48_OGP`O_Ae~0omapZmL!$ z^KbLH@;wne`1UicTtlcl27gVkRr=VY@uaM$Sa$pjd~d%PcQWGG%4Xkq*Q+7ug%SO- z6go|TmSmQy-EVrf7gxZ|g3m159Mo23+&K^wE43_J>%!j?M?d{EHu10iceTo$xSd& zZQLep)_8)MCDvKfjH!>?H7%I-;;p~2AZ?J~`xyCof#{i`@jb;s8oHhwXyLx*Dgz7S zgD1|vs{*v~(EGl;1Y1f-jcPm16QG>9feQ`d&OJ)p2^Bw%cKw=ZTsW>#m`9B!blMfn zY1bbh`eOL?@4?%6(4KPdTFtUqE!3gU-uKIOEsvMPA*|OVti)Y@r&LdESmEx*XBR`5%L=EMXO)43a;Pz z&+%kmApnBg(LS#@9sOMdL9Sm+P-VbylqQNY>J#mmfy`|eqUKFxlEcgf!mdE! zuj!Ds!-Ly-U$=b6bAH66_XN=T9}Q11^PXm-4xd@#rpre1T_>t8@9-7nGaaxh^uJlt zwt|?4TEfP1V3XIYAN(nmxU@om?<>R~3t?=Yqlbj>dy(c&=qoFp%z=?Xl*qUunx2p> z%gfnJS|9=mmw?v%CS=jX<{cKsP5$lK(+E4Eei~=iSTJH`5YB$`wH1?Y;dt5*QYFf? z1N^#_m(t%HEPTnQ%z~1iD=-cO(tkk9@`TjT%uj?6ke0j6SwCf{323#FYM%|t$^ezM z3TJQMOcM6ua@jvg>9lJ7GTA6!>~%h+ZXjo;Hv(dx{-q%y@Oz*R^6-@wA$N4oY(ZPv zZ>A?Rvw#tPvhENw&?ES|Nauv^RD5*IjIGWIpLvzW1{YZwt@-BLN>)Pr$l)eC^5egR z{*v*C;L4BK6F+W`o`CvZ9i*5t_X!4$xf+qNSzx7BvK^)ky0s3OPG{hW=b%rYt{{5J z)gN+`t0)U=zIxM@&wZXk+q;k<`Oh*3YUI_DDT=5sYOI>T$MIa=!^@lVoT$v$dO4xvSJS>IvwM>jwvjoKQ@}K&7htdm_Y-!!6bTK5 z)I$Y=FmDlWP@wPF6A2;DqgG$%yp(`fz>{HZZ^tot@x^;vKtpWaX$5MMMko+oi=;sf zJ3?+d7?wdShQY>S0QaN2s6_c=4g{Rc)my3Ya*aru@U6iLu<`WeOs9%{~W`r zAc;}F_jr(-#NCjPPyFAf6w7}(8-qKX>lSL>Nt%om`yBN!n9J3=CMG$6H?O%9qu}v< zkJZ1NLqm3)05dv4tBB)e!|$G`aUpjNZP_1NyV-nTh8e8E^V4wvXc2TXkO>9T0I^rp zgexvoJ8Y<;b~+?zl!nqAhx7W}#%GTCQCUThn+OvF)6^{6iad6|1QndnozuAZ^wz!N zbW;=qU??lS=bk_j^IgJ@l>s+f?v=MAi@b!+%hBg?Q| zeFPb&7r(*GY+5R4!C0M~wDd`7rY$Hir) zLZCUXciF|p6)ro=xcN=`32HhEb88Ge4qs9Vc6$xp40pY+om$~E8RWA26$W)Jt;>zM zm-2Tr>O?`YQ_|#p4&iw%Em%~2m>TDjoj^C}2kE!c=Dl&3Ulp-{y`ZX{TRN%Eoy&bR zVa#yDaH0ObY6(M&8(gYJzTe+Bf8{@ouR}qamyiK_dSsBiJ~TiHL5_>hC;Rv$)&D0s z;`4y-J0P+$-JmT()OTm@6Jjth)*C!9?RnFx?ZH)_!66$AN2n5|eIm z>RsE}hJ{v;rE~5!0W6kdWOusVi#y1ac6

_KM3fiYFJtCiDm#%5S-FtHpkV_o1)$ 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 diff --git a/doc/out/images/zeus-bash-command.png b/doc/out/images/zeus-bash-command.png deleted file mode 100644 index a666bf2864d958bf585ed5d5a59a9cf00412ff8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27280 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 diff --git a/doc/out/images/zeus-logo.png b/doc/out/images/zeus-logo.png deleted file mode 100644 index 58854ec65c99b03250906ae678bfcdbbc880c060..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16168 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 Vm&?b=oP`K5GBCS`yz3J4{{W@$K34z$ diff --git a/doc/out/images/zeus.gif b/doc/out/images/zeus.gif deleted file mode 100644 index bf51011ea2a7a46294873d8f71d954a6fa322043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160403 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

(0|=(!xhuB$t*{$~ zLIoQ;qr5kb6?pDyV$FhKpePh-r5hDB73{ppu__-D&J`3k6A7h511 zuM|7WoZ9Z1JV+Y%b2_z1 zD=mOJ?pzY1zLj*IkEy&$IxP)BuPdA&1wk@#eBT3!7rP>%DjsjRz-}*-8j)-v*S~suj!`@MPkW+VwOpV>M9h z9D{Zf+U79|l3`S$CVAY%lZ8Wr@Om|<0C9a*$h*&d@4S@-w1~q$I|oPFY76vbCK&Y_ z!sE4RwbqmN1fhgU+G2g{DckCh9Q4QWd{asILOy4L2QiBp%9~6w2aB@q08#~R=b3y* zYp)t)8uv19W&c7bbS#7xqx=rfKL zIja43&tY;siRt{8Ld<-Luj$*ps+m1uYNuHhO-k{qV_(&aiG>Bq5?hZuFKQP1E7&DQ zzEc0=cMLkYtyys;8Iu@sejTwhsYT-LPZ$3>dGC+(odvfdMXFZfO_7&EQsu`PB`2$e zdQ=rVaXtTdmr4wq>i6nc(r%iX7Wpm?L<$+77fx-Z-jFrj)%!NuX{g(H;&=V;X8)H@ zgV`yh6#X~1*x@AtceJQ?U41#2;A38s>u@jNI_kl+_vuu}Qy!}o7aO1N8yoNb{c~q& zCtGKFA%&tqI8>zFQ0H+Ii!Kviu|oesU|hRULBEAej$}etS)948D)EC>+6Rh3>t3VE zVy^19y1Z&lL;nZ9=#7VkdWIC z_a%^jLQ4_YE5|3GkF4*IrEYKS5^z5X{ptx~>XHcHjx7&M3H|P1tJw8O;D}hNH-mL{ zN**+I6yZ9^iPvBGF&sukdh5y(gCrGY81d1vD1w6qp-5LCB>ox-rCx^gC~F@_V+OOh z_$7msxms~CQk#FcS22ip!x=GBimkk#&U$}Cc#z3q*-uQF2Q+eoV{-?y1vU@>>MCJz zs;q3mp!`0K8T*9Z!ECBl+g80aV(HE>6Mm5^r4L*uNe;cx#gzIaMdg#^Uk}&#%azo= zRzxRb`{JpOOt$^NT)zlLt(h5IVq8b&G>i2O zfDC_kKrUF7B{;Oj)(ZVF>PnaL`&Yhtb(WfOz8SkgSt$GXjA zK`rOinNH0r(4KnD%ImW-W}a_wPLYZB(OL+_H-%&44d>XrxG*B>R&BS2^BP+o=!yYrV#owzavh}r8(=`EmtwiL zm%hZ7vTSHYY@M*`Z?S!@wC0Aq3H}*@QdfBZ$Q>{6u&<{OyhGtQLY!bN1#d>}SJ_!1 zCLH^{=DtB5)Y-r!E{1yQwG|2g&oPO^r%Dmz2wz-3F#t?`=>5)O>E~1{fGo!br_I`w zgg5z7(R{T5zK1UV9>oHf(@Fqj&^fA5;ua37atm_76&h0jDc9X0kSo?;yav-HA<+84 zFojtttFGH?=qOx47chJb5gjc)LfbXr?eNfYg<%Q;;X@<^d14>T+Ri8QHj#)B)~Y&O zfe{~E8*#ngcG7H*nbchowjd^?{=A>m)wE9YZfZzttu0bh<&Wf~768E|{N<>L`CjA1 zh~uz*4AJPz|0vqVeQQi>iji6dY-%xmsc7 zpKE8v3B{h7s6n^1^|Z(0y6q^Q^X>FJuLIO{J7K@Puv7_R85IzO=6m2?Boe6urwRqc zVjNx=G10fqu$hP%rva>#f6PpE%7|4EErIM~8i!`QDN_Eb?3q8FnOTbvuTMn`P|Cez5opJWjlu+;Kv@P)NqXeq@das!%)h z`@8RV3()W+u}i3%_i-A*->pA6t*Jo^j1brhx?vNi_{0*sbdSGV&YiP4^ajv49f{N@P&E{?zUY0_WzDRQOfSE<%;jmeJ=5-=6B9sgYL zMbtw(pKC&AOV@Ia1=_rI_f_TtP_M$j6K1U6W*dh)AKLpg=iQ4fO`B`c&oX=oxdBWR zg6BCM?7K4QHybYZu1FRCT{I;;XTV;%=XHLiz4Py8R`TiP5+2q&>e5ycdMAz;mQJg+ zaeK^O>M^2#yIB$!KI=OsT>SCk!k6U7_2j(^2)*~MuCM6o*u8^tkMzHnKHmMyFIn#b zWd2?;A-2VVja@zlQG|909v9pQie8TuQ-mH6Kny@o!hFXrKzB%dVfqBjhpvp5zN1V8 zPFP=kATful->5hcsNnZ?nW!bmPq5BIuhma)nUD_RF9F6mJ1h8qUbd7(`SVc+?DzP8 zi6VS@>CXrWklh6FmHEi!F?_Q1SL{V7_Xa?7L4=n9I^_UO!9ZYM03SS1UjiAP6A07y z`GNBscFO;oN~XdNarRl>iChd~4EUu_oJ2@4zoBkxd$ z^qA4J0Z<%fAq6m0)MnU7UchUKaCKiKB@7puj|%CS3a{S`Sel}zfClZ7gw3KNj`M=F z>LT80kX&tqB};_Oph8X*!;H-$CyzjMZ~&b;n#3Fpu1AyQqe-sN)LOnHFwj#hObh{p z;N|J{QEYg5IxqSm5Cjm6eyA0Vm#6bcMnkBrZziG<^7v0jkqp_-5vFb{(s=NSBY>*K))&>Z)U5eG6j{ABQ zr>g{nqkLgoj2{8T8dv|7M?(FW&=D#y% z&R^$`bDrni05o+V>g=Q*OQ1>kYr^9fVm@jG!uTxBdmcK zpko-qc{<#_4`C>S2X{|qMMcM3((Hlb1h$fsroV+YBzr0V^W0MkF1}@oy8snZOk;rs zP-K-jvPJ=@#T-@EPfb4RUOSC!6?bmbp&?j8c8Mdip{b@nle-&J^V}2qENMRRgILk2 z-3p06bZGFI)5hFWW~S4+3e*0%q?tH?ct_LL-P1SS)8p9FO%Fj^7wHG$cW*gzmy>1> zl5swr##<3^(n$R?`3_Hyx`EP66Qa%wlW}IKn=Mg??x}>A)PMU?`&*#+bCjM##{HD^ zar4YihZ#_hbaa2Fz8Z>YCaswx%K!-E;s-q*&En^fDz!BpmhHgIWNUqbdQM{+*+nnWdVN!&QO!P(=MvmE2q6r8bEi%_FO6DrcY66<&7pWcM0a2jbl;Z60oYKqU3f;mwB5G|_P-9au zx~aIwssyMS+sQ@E!%C@&smSdsA$rC15mY#ymF{#^^05`<^yO^URJ%l#lTB5M zMwLXwW&9CTjGmQmRI3#Z0kne^65LcAv*q`%s^9#qx*@7~rAH;GS59wOp}Nq* zsz$24`c|UmgCvyr7ib)djthf)by@>sG?ilTP4sLEoNl9j&lVy5nSWi5oe z&as%%@TyqcvtC-Qu2iDdD}vJMs#u%8;fqq4ymflH|VsmtL16KTL!G}e}dtqT($7~;khWaaxddnN3=dM z!WkL-UxcS$qsbZC?>}p&(r>5nYKNq@)3vlSc(q|SmjAEYSdJCdv7$OwRL6?ySWz7- zs$)fUtf-C^)v=;FR#eA|>R3@7E2?8fb*!k471gn#I#yK2it1QV9V@D1MRlyGjuq9h zqB>So$BOD$Q5`F)V?}kWsE!rY|Gy)u--+S>LoysIt^e<*gZ@XN`v2^;{olQhmD#Z} zJ62}@|BuZ6fA{?^xj-E4*WccdYP^72dJJJ63qd z3h!9q9V@(Jg?Fs*juqaq!aG)Y#|rOQ;T4f*8QaPc>UXICI{{Gq|ZqvM?(0BWuvgiaML>R zAJ!X%jf`Ku{D$5O)Cn$Ri+4HgkB)N3*G zwQX5Krh2(kImolrS=`(+!^wzx$X&{R^%S{N@lK`qi2%^xYPbH!m%FU_R*o~9>ZK#a zzfH~d6*f%=V@5p9|HfWgwJa`>+qPa;3F5UK`HZQsmPKNVf9HWVlV{$;i8} zQ38xY0i|`!go$aD)2df3r*pny%K?3I^rUCgDx9!qbrU|^H++*G#DATaKX9Mb zE$L?ui~ZVbBz2#Qdsn*Ko%D6ybzMO=^JF%RSVe4;aZ%Z0<5_vI$8h=cj~*M}zL!-s z`&CCb?s4MWHvA>>9g*xc#*sQdV3d3zc~Hjsu3~-==Tr0XjREBO!7J5w2g^OkCoQM{ z$OJqvXKDdI>^zmUReX-u7mi?Vt-E&%-)if%hmgmZ=@pP)2kIyD~_I*oYsIR@kW(U40cI4mt4^(HA3&4%GX}P6#A?*g|29|v z^UcLk>oK)L?`xN%c%(in$Bh#UV`SC0ibuI@YGDJ^Lv{%!DIkzO^bKTSEVf4ZF^hvv zK1+!-K}(AX4{c++AzLI)ms8xl6Mu-w?O1&KwTW=IQe|okTyLbR$kf);pPVXwaU~!|2>+hd2 z|6Z+;2^*?D=2XhOS~Y*FPN=LRSK}u)%e&WX-x_kT%;PJIFUuCQNRsbSB|a5OC4!1RQXl#A)o6PNc*Hn8#8PL zTvr8%S)3Fb-f+<;aUm7npX6z*ZD=+Q{Hka=DYgH_1(KH5TxuXLeV10G@vG=}Y0pVH z49}W!S7-94K1Y$q$717Ix~U$CIskan&`2j+sfahRG-kNuGX?W_f3z7`rJL*1P0{oi zzNTS1W7PcAz)Wk(X)P?u-$b1_CE_%pvSRp&J_P_c^PUE%)m{1}gkDqNoaX5T6|Y0m z)vxvkNy28PWlrtk0Qnb5Lau3LF4Yphcg)r+W=ZXUDN7$mg*95n)1-ld{If^KazxzH zd=9^g4f0D(LJsZ0I0ssfFt5+7+~WOOyh1_l5oZ15Zp{WR)$!dV=8p%bJAq|FCh0@^BJZGG z6464*7=5z`Jldln$sJw}kxP6b;{D!cHF>0lALaS-h|o_7d z3uh84y49ALKi^?yURlpZz(%cEi7EG=3r#5UjQ(G)IIw7gLGK-uP5~M%;<^3 zk@}#m;S@Y!zo`qdbK3KHIsx44C7(P{6=5_KTtmOS87-6#^+~}q0jv~=oMfp-&}0d0f4O*#Y7`hi{Jv3(!M*&)v-+2M6#s&1=tm8VA`&^^!e%7Rk-U>z!5p z5#F2INOuQy*!|rl{NA!DnRM0>O9ll)m{-=nT#TlTI42cLY7c`ruZp;r^?BWXDzkIQD~chcV7B+Gt+lIwe~x{9`rtG~M{ zr-vPt)E_tC@Oe&5ww+R{I{#&-bnQL6J?k@X?g)`erfj)A?2madB{_WE&BIJ2zR~h8 zR|;6KB_${$e|6f6apqUPx$-ac-|v_5>CDCmi0}ihHhvtRN#zk9XGr1i?j!h1q%i%W zcGnv;bgHnFCEOzd*etCJ&N&VLo$zk&P1N8`2?yQ5?)Tw-$>cti9NwO;ezviG_sN9` zr~LX|-I%p$9=Z{VED^AAc+V&Ja~1d{lH>Amc;llmxDpKk&k6!+M64@+<1VrWysPw2 zKskx_`P^lCE8SUR=Yc8^!21Hw3u(1iU}`xrLNFq5j5bL1Jm@VXSQ!GqxA)P4P?5re z<0}A)=%BuhAbW6-8b|O4`(X2Szb{kn4&V@Du^=CgpkHPoCTe((5h0)ILkz`&9ScI= zPlXy1eDOz6laS*DBSJ%`LJ(7-#^<=P@-!lw!Aam?gjleVcDTBBNE!!??13*4Bs}{( zB(fl^iX%wPFt`vxttaMJ)(~1Q7U3%vLE;wC{4==JA}nz#q6!kx1_97Bdv#1v-{uGQ z^o3N)hyOm07%T`woki-)g#M|IsDMQ0Auv&^5CC6Klpc$pomf;>U&Nn+upI4Zw7mDG zHg$%!=TcwjrC7uOM@*X-5Uw4gDu5dl>UzNueRCdti-_Vvhk**I8J7I<`=ci~qWc@* z5YC{%Gq`qpu(d1P8v#E=#6qE=4DQrF!O^W^-&hsCLESys!>9u{L&n8I9&UXTD-0Wk z#A&q$mxV?~BjR3i2GPU9pXpGm+ecoBML!Xb7k9_2bBli^1OKZXMY|QR%^B3rk?@`( zR>m^n0Fhv<5Wmoyptc+<9TxRDIYGfNQGMB$oPlFFYNEY)%HXPTx82scqt^orOpU$^?;= zI?$LpRG1pl5XtWjF4I9y=%m%TBVWb>hYM3#N7EKA(w4;Ug7?2khNamV0alXJdCAjv zr_)!&BW5kqt?z{M{PdN^^uNg&tmHAOoEcw!;+{69g9g$rFVb?v9B%t*L{KKc8Psfl z>b!U`J=%eAfJT8CMV68YY09MF3bNJ7v@rrONMzBaq%ZXc(i3J`%49s6$vWLi2clEB znrP11(;uTS|8e`ob+ayYK=d$AAuE~)_iWK3(4PzESK*lpI(K3H>B=*3nIakmX}8x_ zIbs7j+9|oZDY;zmEHx_{yhay2i9C~moZ9o;JCpr`Zl29RE+w;zg%!JsSzM*pddax7fe+6Sq(3) zsn9nimr^Mn4d6E@VN-YL|0_IoUfz}QqnH8oym1AEK-fd6}HR=s^&Bf1UAhS zTN5B^=xDyp1eRTflnoU3Nd$N6f=*~lj570b!9l$##S=v(T}^=_nm!^H$;A zT$rFcF}T^$J#b^9amWtqKp`tw!ck{UjhG@5^3sQK95M?GAy`F zp`Hs*Fp#LwaVXO!ECCl&A4sEyO8|>?wWdr}3Iqrd&wS=dT}Mr*_hIO5}XO*!e z^&{)LFM~Djtt+kdiuFC~%=PM}BWl0SQmJ{?+wauNac6tdQ$zLYe61TyBO0WeF+h8X zhIcY`ArbW5aN_zSZD>yVZ7dLzCG|K^-+KZb7VE$c_RP^>OMa6Z4#Z($g zEeJ^*Zu(Za*yag(U|K}$OJK{0UekgnRgY3@q-2}o&z5!KqD^b6@#a>O(Kdz5)?Ue$ zqbo`gR9kNZ-hk)#XKHQj*3GwiRF}=oLZi(%Bvku)-|3NPewpu0gWt)NsYKvSK$0BF zYf3;#({E(^D>Zb{Z0mzmO5&2{70Hel!1l0aU|B@R3$^xUZZz*MCB6Pdoe=qVArdNP z{kl_Rr-)id7Aex=0=V|759-E#=EgieXch{}p-5!D1u6I1WJVq@qZF^2j%`doFF2yKXtA@{kk8;Fp%|Z zAV+^7&ugF{b)cwapk!{K?0TSrVX*4iV2%D@o!4MP>R?mLV9VTK+w~xtVW{KTP?!Et zkJnIN>d-*T(9qn_$o0@D!|>R%;R*fW-(JI0%KccD0Lv1bT8zSYXw+VXzMvr_Cw<+= zVS=Gxzmo{1nx1f)Qjol`G<|XXmh*9xmJ9TUgQkT}SF}MQ^xaouBEqa>n0hT4evIJO`0Lv0!SpqCefMp4=ECH4!z_J8bmf-(+mcR!n2=D}O0|5jW zn6H08U{G*KXjpheWK?vFKQTNmJ|QtFLIr_LO-uLHkj==>$qi=6D=bPQ7Ar2VfE(FX z*471Q)i>3taMv`Wix|Xgzqj{h5Yzbf^o=01x(9zuB&djY|C)*G>>i$73LRKjTwV__ zB3szl4b+%g7~flGXxlm7DBV6gUp5+Ay$p(=QC+GtSj~Z!^uV+`f_}vVdB8uRGLEKP z62*d*Z=o^b!VhFMcC-5hk6tb4lCOU57i7}FzuKT!S4eJNX#b~8$u^?bIx#(`!?yZE zSB!z=dDsyLkEvqPj1!#_m0ID4Pbc4+gp2tZ^h4-Q6cvrNk(~V=m#)9_b>A~!W}Ccs z2ovTaot{^==n31g*SU^g=H?v#U3#l`@t|$u;NGW}2=-(RhU9O*di}Y%$Nn{tFw&@c4UB!bSR_qiE2T5&@MDY*6G55V-6OpBTW!Q z9p0d4S4$cz8_vZ$sn3UlhOmA;Y5z?gDk`^$6nsALX2tL?UgI1oPl}5_<}(NW7QKbz zGmBM#0lMdX)O!gX`T!~w@kbvSrY%-UQxJ052;HL7<#<6&%NaqNfr1oI3%ZNPIw>Ef zRuQI}BFae)E|BC`esY^;rthxR3Sv@%bn??u{O~PMCYryA5@SvwGg1+92n!P za{eOLu1)sY&;9SW_#_AD*}%+z`hyhi{f-S0WppR`8=gZ_aLGY0hKS~~*I^Iz>#jpD zjk)Ts+;85YgZ}&ZC7lC2^}AJMwE7iQL;Rf#)k9*Fsb4`72Se3lN)n%~Iu29l1qMW0 zO8$*K8Q&Eg7RFqE9h~4N?`oeMAQl+I<=?9vQ`yn~`h#2Pqsa8LfaOR*?ffD8&QHCq zP9vYMyhNtml1iTl%4%QnPktPHA~q;4>wPwFmR;J(B*TPL(n&ffdA|CNb);(EZFcXN z$yn^`Zo3|V%EgkTo=?My%a6=UhG!+Veq`h^FC^x}*rO$;i_2BsW>v-Uy6h!dM|=J) z-r*-8r7tCS+5b8@FL+STE`9y4h-rzWaZre_ZU{Zg`|QU=$h%?8uNkfM#;pzO2e+4B zRjVUUgOGo3_I4+wLT36t_yLY<2AQr8PKy^8{4>M)yYG3-tLp=3<)hdjqrMvv>4!A( z?SEJTYz-nl;cl?E5P86zN0vSwXW`3K=l%^~5{8Z5j@B$D9M~|vVj-dc08AJLEg#J- zVN^IeAL#BwY<4opj0(^X=+vBl$Wswg$iF&ZJPg~jX5jzl+Jt*V9xfM%!{7rWVLw>% zz2CJ$Su5Z3o2An)$@(Fnn?qKxiGu9M<{X)4PY+Mq r6I43qt%ScRf?P=+G04hy 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 diff --git a/doc/out/images/zeusexample.gif b/doc/out/images/zeusexample.gif deleted file mode 100644 index cc7802d843f0a90629c29deb9d2a76bf8e8e5669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4866977 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%0DsMFmJ+(>>N*{6Bk9u74SQz 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 z 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 z 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≪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ãs(h$m{-3Y|egvOcH>|ti)JbiM$kQ$;11%c2w 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%0Am27Zg14AG!eyu3g;x5vn2O#(AoS&xMJot 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%0Dg8o+)Rf4O1!U@KXC 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�_K9yV2 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%0Dfh<|Za3 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%0Drtpe~C{ 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
piS@Rp~ma>1KTBs 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
-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 BiuG zV+a{7;j}ASvrn-kJDG(lTMx^ZG5)c&wRJPhug~7qj`ozcU1rUjU!u;cA8VSw0ij*c zvRk190Qn(RGxN0U_|HU_deemB-w0^@^bvA(=i7NNCa-KI!f6NR#@%QJbV;W;CsF=g zJ)uD~eCuABqUl3Op>E1*AuVs1!2np_QEnqZ?mtOwd3yTIbXIyfEu98Di!QNHF?)vJ zZ=oF=XBv@)MnAGe!CRY50da#5)k)B8rzTy|9i^wYzQ4NSQ;OhIigg!GY9z2Xd?o`C z?*VkG86&gVKv`NtH>>E;U3s|3hOH*#Wb(U=XG%8VuX@&Algmp6`DNM%t1|gLYC@|t zbZidqrHGc@be<#y6A;UWdl1dAc@VhSZy%(aXQ& z>A*;F_14yeYCUp#(2_Ot)4*G9{q>?>v}PJW?h{_=7T1^uVXH~|D)_Al|9)-O7Ny-^ z8jMe^-p%vzFv-}lYjb&Y>uiq6;hiP)zfVRS3Owv_inOdXGnXMbxfu?l6HBh`$QnKt z#c`R@%-HMxR(7-2nC84t@=4p2Ioc3nd{G=cztA(*wj*HizOzutsgO8Xf*_*Nx~TxSu4_xo%r=^^?7Kan>x>%4^m2YyJj7WaDN zEy7M)w}mQEz#%p)r#+mopRbB8UyWhoromH$b zu~Aj7_zbi@fhQ2g;IJ96+p-{{e;%u?0uNnr!>H9-3>l zEaaV_vs4ij58DI%1mEuB!g?M2(k`79;F%H0oDQmZN6ycLCqUCEwVe-9 z>(D(urUd&BErt!pc_{}^p4j$r{Q=WmH6wJRIw_mPp2;>QSi;!3VWXd7-zZp9R`-MG zx1R0KGYRt}*qMr*MCk)3cWi);1E|wfZNuDggO15E8|t{?Cpkzo4KG_uJdRA#q09U3 z3IAk2J6ut@C5o~6rzrs6<9$TD0&71JIW0f0?*&!Fue^8<=-jTf>Ca4O2LJ1Y+t&i? z;5q)45NBcG{W30R2vy|G;ZE4zf4Kdh!=L&d%rut4&#ly(-D5$u(2c}XxuD|NYjWV# zE@!sfBu_oM@5CJW4xFB!sb%7v^Tfce_}T`>^Vse`Y?JG$k(p@&-sIUfL#*wA&BK3; zkWCC)#^;I7MyrM4JJ;s!HCtp-u4%UWhQLokE!h~Q=rI9@ll|q4 z!}}|FN;Tw%%Gle4?$J~0>16ijX|#`DYd?I^lY9_I^P4qSwJ{&J{&}(Xli9f9dL{{Y zw?MZv$3TeAI-bv|-VZPO7CdhIachKd|D;!_kPyCJv0F>fN(J)noN^R#16$z7ki!tL z%F!w9nFL-C`$9h_DpL2kR#Rltx@Y^McOu4F*J)=oCh!{Jb#{U(+`bltOVq|?uK`$W zNCT&j-+QG(yFUt}NzrdQZH<;Rm*wNIPnp(IBb4*yifrrN#S-KgLp|j+T4@`JMgohm^|cOD>jrCTBO^e{yWp?twzN;W#s; zw;DXUOnj_sx zw%unfy)%SR|I1<fvK!?+BbijXb-+k-+Z` z6ZQadwN+Z$kzF|f%@}x>`Ervms3?R{DXXIjTMyNz7URO5GrEoV<^>@AnuNJrVRdm# z?s&OeRpi@UPoFUk^7qsW;fa&@6oUR&e%HCXSIJY&Ou=t2)ekw)+r$3Dz5h=O%p*Bv4Nu@+ryaIeA4` z?2=5NdZ}=)=1SRY_A1t>pv0@Eo-{pi6>l`L$GxQ9(Stw2yQ?DE7>S;_N(VxM@J4z| zE*QuUwJ>snY0@}mdeAYJab+DGnX0gjJTE%(I2Ifd&>f@flNQ8?!5)O^(GFbN>!BmH zqAb6kODO9~?56FaV9g;V@Io9HyqiiZ5$4}pGhd3kf7Qvah`(Y z)lqDejR!v$=ZlyO=u|VrQ5nxtko!ENClx=NLOEy)}z~$ zQo<1lOZzhQl$zBWP`nUee#ed6p+Ja<^WRI zz}zXNotFTcgp5)nN|jCTz{#H?e*5+rcqpWS>fhF?fldweLNDWlfV&B0d1}B{`vE5d zA*O_Q{+Jt6Mg3nmIYCW-rlxN&ayo_iD(9pGP3GRdxh_Jwkx-VV1|Ka6o+BhBV)pk( zNSBbFT^(inkI$yYGyQ>xX?hDV~FS3gIm}pDBw_Fe zVfNZ)+F}E!)YF&Z0YOs2418W|HS_|fgZg4X!b+7wZ}kNe0P{7#jKZ1qdIE2ldJ|>* zgH!1e>JUCFMo*|$vC=NF>I6U?#@w!-V#P>F`z%ee1;AOHsR5WluUV@xaNicfrHw>Y z8*oa+q#O3hR7{O35PcA|O1QdPOGm#)+7m}?*$HvHBm zWjy-k_#9jH2!*Rpk~;qnVMlWn{ARq-nJyvc8<-txXt|KJ76Tq>;6oC|CJi+QKX}Lh z8YCxXcG}V9l6(Pgl0DNkqy;!;cK|RH8@J2mrA4;7-$n7fD zvR-nwnl>SsGG2ee^_sW{DfLCyylG#+%WBqo75%k<@((~OWbf0cS=)v1MihFjrhT~% zO{nPGF_VQS;WzlYXKAI&q{IP$nX2B>^he2C73H;_o~>bBmZ(v+qPK~4*#O1hP@;-e z-y8SG9~AOn4yd9lT`8+E=4&aj>8tIsTZNp2<*LdJWz+>a&HPw31pr`7z^DY^0)4r; z3u(|uXmo=gsz}j#W{!Y#-bm7w&=YWS2g*FJ0ck?o6$3y;U?aZQh?-r)W^TZMzhK~m zfqBCKvsLgYN`EeZNtkbj3b>^3sr?;%CS)*;I6`#ET)pju)kit#6gj=vfA0ve#+N<*a2S`ei=?7<;UlTaQaFjew@VB%I4!9z&6Xkg}TG9CVEGd>P@7zkT2lkJ+! zpGA<3fcnh9Y*8tY$MrKM_0k)V8=E$OSp8YV%-yp1c^to2xcxT)WddV{4nnDV`fC;Q zH^DX~dkun?8s*S33|y^ZoTWe|JQF~u{mNPq#4*}yLBkA;sTLT&q4Z_yg2xi-*YB~*mTzk)NJz~tN4JUBoq~q}U>i!o5L&r< zhXi-K?Y{{y0C7Ud3L}LYMFq1VDmVoKy-qGF&{0b`_k|Q^AY}-lc&rFzlcouwl~U4h zHPO+O#K+KzeLot`QRJI)XL_ zLUAZqlK>^6;MZl4i80-Q6Rrs9KkxguS~ETfU}qs@A))pPNil*po(z(T$qNPGTM`+? zd=_JwQEV$CFk_F5xJ*c@P6)pCFO=O&vJ_Cft}I?wp7~!f>A)IKM7Ywhrg3&L2|=>W zo{)|XkQb>}UflhC5EdPyuS>uP!;{nC zEK&$YS|fzsUyLJNod3sl-7E<)!-<#=0WQKzE`~)R!oTLLO`)56KQG_(GMyyR(|Xl} zdgr-b0V%qwysux3)h;W;3&MJh;^*W_+b=6gFKu6fDbI2}bt7JP&8$X0i+;-qI+Edy z2*7nYgcF-YI&q5O3*ws;HO*=93gSxXq{Gp&m5e5LVqq<5$h{J^$^w82{S=%fAy)|D zWvY<)#@S{WNAKE0jt#<;vH5`#Vr&=WC4piMvlgn|Vvo&k*#-slFIl9A+?U1f4myVb z#94YM91rVxa2yeW>vzQjNP~Z$3~S2^3LiY)=Qr(l2Rra${w#?uV&o3 zGI;FT>&>|6Z)YG#Cc$Wh4>ak&yDuUNAX=si$^HKN`#}pbrifD)x(|eT>-y$ZY?{|G z`|iUbUIH^>bhWT@A}R{;`aLfMObB@z>~8SdJH5baYApFs-rxKBX4ho6NBuq9Bqhak z$KU2-;StWrAG({;m;pEcVA56I#KY(QmX%&PMV77?%1$r{n75d2x^RdcOl&mo>w|W zkF8(4FK$7{XXC$XUhjUSWM|*L-Bww8oU9@3y8k%Ed9dMs&>wygm)74gC_z(z=z`4! zaYio&#$tqIKN2XRzG2fg8az%*$o7ce3^n2QUT8KF@Ow3pt~!=#yjxjd^`a`oCV!q# zLz~dBUPv}@UJ!aiy{`1feXN131(Z|L<27T1AH~G!yv5J7&`d#j&U8vAx%T>J5EQOU zF(lvHID3Yakgo)%O@jaZ$j|hC)yWCC8{lQ3rw_2#*gD4tDTrHfW{s+NhS}m%c=C;7 z1XQ|h)idO{GwLQujlkP~QxooSrWW7TJz5OVQw58EID=oedfG|fL`VbeuZ{z1LRAH5 ziPY}M@n-*cLHgQlq!QbH7*?8UcTG$`3KAP^2UEqw&^uJwTU9JQ3;3a>M#49NrHc^DQQw z62hbN3uhNUpCO<@y?>@Mx5V5`&!+jL@}~@J1o2P)*y8F4!pjTq6kF zj>Emc6w~%a>73u6bx@eq$-!UVQ;i6f)c`GIZf&-3k}>I!Mx5M;Pdr7pu17yv+=FBE zq*GF=$4PRb8s7TLQK~hq?FJ;%lU9Uy^}VFV9);Fk(nLK0dmD!M#(GEYf0goUec9orDuvrs zZmNHN*T#ies~87nOM3rn@!RbFK}DIfG;#JcZ$fc zi>m4*wo0rkfZ+pUT{YDkQwwhHV?GI)MGrpywr|zidzP0ke3#dRRnE=_KIw%`cmEa( z2S#e{>t7!^mv^nUO}BKz(G!-5eeR#|j90PT*FzH?Gu@~&R=wUxie7d$IWTc`_&#DW zk>sB_qW~nRAUcN+`2X^9=<(;Zz4dd5ApX*Zc_%sJ9U77ZbKIipklW7KnT7(azxj3% z(~6eU75rkfbKOxs!D+g`Y3}uuBlPSK@6$%SC6}&Ec$``gA7#7G#!j4j`sP&QothIN zzZl9(r$0UF@^<6ZwqfUIYRjR5w8ht_9dw{0?ygiGFX={2prm`$E)jWLYLfUN?gg29 z77aTby+L!@m8;agB)68~WNYTTZRsZABf}((zR;)3Hb8QC|uu?+f;b)Wap59Pv#Thh-y= zN1Git0LPS0E*)Cmo-j^+Lj0@+MfAX?#|*N=w%V2xPD+*ep{c=YS(oXC-hnfJ461y{ zwT0#KCWdLIUwX9HP}VBKtbX@Zw0v^ZiK`LEF9`N*tO&EO&dZ)HCW>-_bQgZ1`zw=x zU_f9S8(dJYEKvE8eI-ij^;(eyP;4WT={v3lT6j@_oH4f!^TB?g$Y#Nf7q8)<`ic3# zhMicrIXx3{Zrh$rAYsXBcUSfT%YxzJ=%#X4OTH%eI#Hnh5(cbPPw1)K)aD$Qqqp2# z?E+FsV3fyaHo(mfHi(mGGsY($I!Ow|HLbO6THZ=PPqkhahJtHn-A=?-aQ~CMqAk1P z)5UXXxu!3!?b~i|y9C0n*9NvxTllfclYe}is#a4g!cEk5Ef;S4dgkYL1^6}4?=(DC z6b0(ghYy$SDG-;rZ@M3Co5PPgK@R}RpnZ7`aVL``JS%8t`qoP2&8@+g#TEHSuA1!2 z0Vg_lAwy}MwO)IB(f2kR3UvE}QS1FpmV%2|@3fH0%AFev<1%a)U5F!{n7SgEyT`pB z%`n-L@EVMm&pR+uvL(%Gti=7o>mONy2G(lZ`E7Bp$T?$W;o*;~JS{q@nJuemDOO?5 zpL%P8+Z-)t>d9WHS;z*j%t!zuIr{ExJm_R^Q;%qwouu>5!({GaRcNrsaQTkrVemJ@ zbuRyFyA$MKa;hxC(n4RJH%4GYs25J9R7pvT+BEcp?OMTzRuSFVVfpz_f<;0-x$Wv3 z@*63sL9uBMMGU$A+R?Ry>{AvD7>_^+si#2R=IVAfcN2FBNAP#)a$_KBJpgbOy~HzF z>ysA+iA^!RYo;OHe5-!GnI256&BH)Omq7;-q@;VI zP-c{rG_&x2x24{jJ*fo)zXE?aT?M$OdikrHn%kYawY(vi#MwAeDsgk*@)IIvU${@6 zg*e(=20EBu1#QVanbGoteeF#uNaXOk@@#_9f)rWs zaCNE8nB4TgLV{yoZhR~xx17m->GnXzWF(;`2z`GWra2PrHs3r|7#>(qUp}unosHy^ zI0==^%y(&-XEo}DrZ=G3;Q{_b14@#=A9M#XwkMDEwABI%JFa%&1(|3yfI>EK8YL=I z$2=%0G7%aT)Z-#n8A`P2JVjkt3v$W?-TT)*aNPEQlocn(CvRmX3}&i+!mQT_R}$?2OjwL6KNXF#3bn`LHeoCc?Q za+Y4&T=^~*%6f7u@{)^e`ncd$eVNy%vBir3eCEQ;6{RxHg_IowRZZ%Pj_m+NQMkDF zh_u)}#y(_Gfyid09uCO32a0N@vxaQ$o?CNk;m4vD!Tb0DtKIZV2X;6%kGU;5xeuV% zZv{^)1pd=}L=^S{Ih*xvnV{R_3~TAS|8nTDl#c?6SOA({8`SrV;a96gee+#E?+wgY zrddvO&7B!~;Pqg&OUIp<|JIl#O5HX|2IaH9alcmH8$G(T-x?wzJ1oB zrj`F(`os6Iyk!LV^MKRM&Z~Oo3zen&Ql?S&xfHKIzlOCe@%`NSwMa8Gj7S+U+-GoH!^(X+l^6hEqrzLsLhS#etl14 z4!r$0`@qj{4}OX1+ZAV<7{vMBqy6AQ($ z%xIU%36NK!Tn*89z;yK6u8Ik`ld&&Ob zQ&Zy4J?BCXUrv88@z<`?tugu&pBz@Tc6U9>9Z5Js1cKVuBZ!WxGGzbBPuX;6?;y7i zD3cQb_96}8`W;3}!r#j;OO|-%PB9c2v}pLS)!9>?E3){tl;E4ke$Vr~0|iuzd=1ym z-+KS+miAXy6K>z#eDnFY(H|SbpGp4ry{VL}aCw(;E>f^<&xYt`8@>$Y%Ehq%DkAVs z|KMus``$3MEZ{0iyUutQ9xNqfe6%+i{DQxJRRNl0V$P49`%Yv*+{`-nPeBIkkZ{m_ zN%gS>4Iu~qnEbVH%ys4W+poT#C`=uvKM^>jFUkwz1a0R9h?UB$BGpaOEY%ria%f;qXuD1Ofn&#voLJv( z%*DW2Eg&IM5GjM=%M{)K#CfxVe> zcCU(clVs{vlph)TpVgi(R0SPZx;9@rxB#q73i*>az5X@-zwcUiy?vs=b!N}}l%e_Y zuklyM{)p>UhBQ+En38}H*Yq;ddW$xfLEe&*mERPb;nL0Did|JQ2UHeo8no}Nw!qVD ziGG^tKv4?-m>Mb;-JE73Bri(@t{VrbL`tk1af=%z)gaf4FZJAKWJ)Qq-P0Z)+__A) zH#)c2a{Oqc*^JcW$dcs9pvIYepr~a;z8NWn*boojobR#;kRHBE^brVh6pnOS{ds{hUDtn(VATK~6p@h1`z)>YNrCmJem`DlN z0Cn|l&CwJ3azY`gSqz8>RmNd6y3=N`}G|NsB%+WBC!%`m6goKI;aEu?KEB%zYLr8ytd zk|e43wVAWz&;dz9iIVqpRH?R+BuQsUHIgW4l}bLwy7%H#lvfigYslgj-|^`X4RrB72>}gOKN;8R&ZqczWMeu9vgHp zck3wB`9n9~`ag2G-}S9Ogekt?huAw*iW<^FmLIMxMR*LsAGJI7jJ#zw2tK4`a*$H1ib^sA)(^{gl77d!&zff zh=?Ph`2wF1em)Q2Ca1gN2nQC$rz?PDNY#@=5%G??wKhSg5 zj03Y*!u0w;FF`H>fDDE~BLU2a1*;LTHe=VD4-1`Mfrfb850zxd&i)9tRcOP2i1Uc7y$oypnrbI{{~a`S^F4iBWxZU;7QHrW`y@4tJr zwXF-lz1#yfc_MudNX`OnI3QjMk=V~jkdVX@83_iB<^e4k6tgQZE>Ea07_^bW)*^wg zRU5be32nFNy8NrwUZS~Vc1KIkL@x>jI5$W(&vq|;rr?Ig9tW_65QzoEB17>k(aw1> zR+Hqy-*Yr^55DUh^L9B|x9=8wQ^CHl#cL|-C0c|b&6I$Ue;a!67`V6oXy!(J?W|3X z&~p+8q)ML090vAnc|j@!$T9#A!Ty~`!j+n39NMM61eD~3)qmRj?m8eLgqOV9>}Cf% zCk+*a1vPe3idCipzV@J%+k;kEB?87 z|N66U!^KbCclT+MD1hb$W=YnuHx54T9C!#L4|oTQ8ukq-3`dv*;)C?@z(4*{;MjNI zT-@lzeGz@z`kwU^+^*F<_bHNZ*Yuqc>zGe)+Le`TV)kx`z49K9+xQwj&AfCnGNk>*z96ci(X z9a1>l7XY)i_{+lYT?fwgZ&4ApzEd|Llg>vBb-o~F`MkXZvH1BFOQF)7NTtKwtr&Cy z6+#cgKHUz-bHbZ-w*o}|^?R!93Dk3h1_=R*fl}Rn_C0-3Y&o)+ z`1bOOXy?H#_bzxmgkYLQoPQlppT;4^IlPuS{<*nJOHJSkukOlO-64_2Zezs=p z(xM5jV~lsarxQIUQhgETL4z;r&2^N*?59Ld(h2`rn7bp~e=^o)9@1CE{5y{zDMhg> zYU)7l#=je@w#9AQ9~V{@x4Awpyglxpn{g3?aa&%;Mb5@;{Ts(W^3K&;WO3}GS>Yqk z^DrAptRp`jP{OVrTI0M6rWq=;_6?;;292US1;<>s|BV+A6L!!O(j60adM0E9ChUq# z$V_`L$bWGBrR<{@%!~~)PlUx?7R@$IIRdJzfP*JPjWleSxQW9peHvvCO3H|pBzkl9D5)#U@B@&a!Xlq zYkl&W_7C})VP^-E&%I7=pG`i6+VmeWrGuVwzCF3kG38=l%B9GZ!oQ)H_osB0eLVjo z^lE#`^_wZJnJHbbQ*O?FEGpZ0iry`nC6rQO)ms4b+(yOAVDQ7eo2f^Zq!zsH>g!D$%$)Idj6OU$qxdm%#c`W<`_%Gx@@w&*faa+SM^awY ze=0=mz)g zetP|s)ZfVP+E>t29hPQRt{W2L{dghdQf1nk=GjrgwgY7w?_Q98@=Rm2T>DJio?pct zbb_t3UphBA`#pa9=((AnM;@atI^>t6`NLro8@3l$vCMsE--ezo@*1rBCvlKZs7ezM zpL@9VyEY%WMEoqcFFEVCX8VJni?^9y?oY8ECaSbn2Rr zz2$6;W+T|GGMT#gNAK~Os>8%%LWf1^W*CR5fi9C4(C)u>p{ZNClg~AhxdToYlMvLz~AaeGzR~ zC^#y-$eSat4y=KM#=~DVR)R%GZ_*1vno8LI_I8$|%IK7R!0ipD)t({xn!OOUei#UO zgN;CoI0(33*(0-Zp&onZfrCOCn|0}okS2v`hChrb9g9D^)yUqjI3QjLiOi?IQ~E-6 z6NQfIErT-N*|jE*H{BM#(^}J#{v@nI*IIegjDuLp5ZdgM-*{9?u>np056KK~x{ztA z%H70A@_u5iY~WUan?s@K^lA~g8r-41TZgeXbq+Kx6fRHrpPfF;p!|upOcdb@r-dEZ z^cgJuHsrKRs)0#2n~E0Oz;vrY4F}m8$TgFJG26S-ytmyu@>m;yXj7o+JmB^k(w6}! zK|zWQU=Mr_I9Eiq5xO^^vjuCGd4_oFt~cf%PVju>Oe)AE6+{M2RvBEW!X{BkD1KtR zG#bR(h?8x^C>Cf$@*?bf*82dQZ_T6(1JnOyT1c1Ka{w;}d>WnW4FM)<)i=Frz$q(l z0|~jL4pn>_3o0#QnG<;!Ga-T7KZ>&_UY2aT`k+H4v&kQG84!5c3Jlmo3htsm5T z{yT{<%dmOa=p{5;dnTjx5p!Mo=30~lO-p<=X<$#vdu~WuRqH}F>+z*{KqKEpqSe(J z571v=oPsSs?5lu41zd|(@3f`YhO!!W@VM{E;qcA&X-@j~t9x*MEdQf0BUdqfx$~(~ zL+7}*siCB*;I^pfKw5}%v6j)YozchpA3*_aUM@MY>WYnRddCoUA#*Lv54r?H15Vdw z3k*>Yy*=`mL}>Q>hBHu^Q@ylJuDj{F%cT!h&4)pk>x!VtJF}Y&;fLx!8J>^Z@R z{2u7W1H3~q2N$a?nx4AmS;!PYJn4|gM26``()%5(i1bh13S`;J^GIKdPe62mwiD3k zyZBRibOHO5FQv#tAz5{h9V!^}(&n*(Io2=t0p8kMCpo=~9y#n>W3YI_!kcJJQur)7 zJs`Yi{H)6grBQ|JtbqsDh2RNBZ9(^K6V#m@LhXa1;Cn^{n+Aw-$>MzBq7)ZKp$oyK zyk|vkqDoBCl(4<1sJ?Fl*$;wX5A>4ya#81``D7paTIq!n=xflUJ9@KV3V80i$4;W* z*E%n(`=LT5+#vYLkQbS$Tt5g~KLam8tip737rg!2GnVgNajgB?CYh*evDQp?KR#5e zL)!{D@VHSs*aq+>@IEoTDXclOKuy=|5z%exNp3NJ8P41?JX7*0&>*5*0;BJdG@Uv$ zE@&_>i*V>Yb<~eq0U13k<(&)i2Bf{US2}-*2yE;ZIqt{+cfjnw+vodi8|zfxmX(xh zp#BCfQUz-ldm>l2Jkq?^=&{-Yw%U$V*wG4muwnyhr9>?A?qrRsc!m!Y3jy{jNa||H za7h6$i-Hs%m%vVf+J>3`Kq&WpVM91~Mk?swQHv1-+Ap4BT+#*$$^$(#Ou`42T9AGF zwP`)1?CRA1$n1hR6#Ws#Y6L`C#ERncxunj-%EPI`d)y9)*Fsn~}XThYy$_ z8WFF;cjT^q2*k5hGPlt$BImg#3Z7K*KHxc%QJ9uteBMl>UxDwJ@!+8?++}kWrT=C$ z0eqDY(^#2nVcdXPN(xyqL@paIGB=(o?4jv(vvx%I(MqmTR!o6f*KOKN9>Y=8IvH}+ zkQXi7(CcV6M{GfrQM!FOupFqyf(9akQ~M1f54&0B7jzJ7BqGd=fp!!UuJQ(MxrgBchhMx!5C=JN$Gog!jt zqC~pQe54g)Yz@E`tr}Nhyrg4b0t*47G$0WJQ93(q5Cko!;v}8*v z_xN?pK|-CTbDe0GHW0SWlCONRW#F9dq9@*_<-kUZItu!#tiYH*lpDnQ0Ur}hg-8qA z^C`=&vX=t@9{~D(@o{T83M5ScX)bWF0y{-bHiN2H3W4Nm86p;fYw-b;69nS=+(Dus z9cGTvM{A@Ggf1Camm`erI3`v%au8|WihscYOk!UYoKG$etAr43(U;KH6c~^O!3f?Q z*iz1RvT^x!{X_uyzflP8pW|&@sD%Cg1X9W%u@#AnK&oT}UkC)-#ti)h98gaRXwAsr zQpkrQfOJfrFuG{v9E@6PDE9gb0>Va9x>^A+n%fI!CL8kM^Fh-B8HPOs!2O3r7@17d z#s>3tq>J^lm`0_Y6ESnVcGKKB66*A+$!K4+OtJS@h9i4UL-}cp(_1K0le<_2s+xfh$KVS zBp=73*~8$~MKQS=2Zxg%NkI;r+ls^gGwikp)VT%#tJM0yreQnDVKZtSM>>tp%mwukAY+cl_;SY2{0YqGkEAZ_=RjU&jZ*XXY(>`ycSY_Kr9_;teZ~&H z{NFy_jFpz#gj|!9@R!Pvp1AY6`RvQ)1rxL|pE90lHX$0w*m>;b&gfs|73Sv>jrrlq zfZ)#jll7x!fCQu72BVVBeQC@5`39F@)2%*Ubxif!>izhhV^=(r53F=OTo@|E4Z5Vi zRE$hmuiJC?bmepAM4k2GWxNuj6}bk=TBL&t9DFr8TNnG%ifg?vbf7HbUcm320+c0=z+Vj)@?x?Hi zHXGhVtDage>@14=-oN!`aOLL&PyLk(kF@_@ZQh#bM+hBPBSYZ6IukXfj5Q>j9eP`>Gh6DO87Fks`_ zA<+x1Kp>4v7~oLCIJPRUQv&^~pCWB*HDTyzyEEfMNmJ^4<$yqXs zsa%SStj6~(yOzGRnSs@7`i%`BvpD9zyNx{l`B?GR!>wU?v}EaJ<{vp0Ac2^1L~f_t zV<6YG6f%GGmb=ifqCUoR;l#@LV7wOBJ8;y4H%uYOMb*zAg)EaHJXz9`0-FBfyR}oO#Ski>g5|&JX6AsSh$^!_4hxa{dHm~U0DMd zkqyD=Q9chR@pF6=IHC*+S7KqOemb49NIR)Ec(+X``QHnRFG#aMpBSo{epqOn{;!GY z;4LT4o%&_Vcyp;*hbBDRV8Qz_@nd>obM0W5Mycy5*#c{3eK@6ye2YX)MjaXB|B$$x zv50oF3bt!r;F{w+K=%R$&8QNA0J=Fh&%FTQ(5!$#^9vl zH|xJP@as<`9J!b5Grs9VLrUen`BtlKsCRFZFvL+vt@o#qbm;9CB4g^n*oGfgh94$V z!eiGCo*<2u28!2Uj@Q=sR_g*X5^1Q3WVn4Kc4vL0VW7sUcxtO>!utBjU-F1R_Vd-$ zMoKZif3rN5DxyLO8;UHKS6b|8JiWdBy+H`$&m|zJ1;SHqXFP3k4=cd`-7Jg$|;E@h74wCH3cSI zGr}=S6O{oCTB0GLFn35_ptXAmv)QZW-fWNO# zJDo}WI(^v8`q!_mDUs;GF#L7GDgk7@#ecY_uxw44UF+9V>6NF6=iluB&xX9#h#cOv zeqhd>viz^!+M=0Z8&bUit3@FRXMJmHCO(`V>$y%y+3-~|>}PhR)*36S4@X6H){b4_ zy$izCnc}8W_3S&(NYejK{F1*Gl`pKl3j zwDbAeu;GaL-%mB+m+fJf&ni%j>Tb99e^!7%U-<6$EzgQZS~fo=^a&SJx%iC0L75DF z5y;(Tq{ZgyvxUBHacBO1Fe(0czd8Be?35Fa-kQ$70exhqR2Y!MA=4lr3?dvF!Dm4j z4eop@cQ+l<(%^sjGV}lk&rYEn;=0?wsT{6WUyRhJ;Q{XK)w=f^j(oVD79V-ul;*o3 zP~*H9h6AHQEEVR0$UXf5vPjK!D&;b#y5XI2J1sd{vo@4N;~-at5$f6~+`HiV94_(q znwQD#|G=U`A8md0A$OTdu0im*4(Be5mDx;nyB&fvNbN?|4@qp9gF|=KkH)?g`GnsJ zcMakhBkbFjrdHL)EmfRTU-c^KfpDEdhF0zh4!|A~0bz0imA6vWZ4dRI5}Bg`^z3;V z`Zv#=2I|j^6Q(!{?0=K6bMFVY-f@EvE}|7v3U+BObt;!hm0=1wCcnGcsof2!5N?PA zKMCO3XSMl&ZC9?&e7iPZ{$yg~Lg3`K$g!^MHf`4y!tf!@{C+cp?8hHDyg~oc4pcaI-fSAa6@!!LL~Z#Tz5{c zel^#52r}Y(QQ3f17>|9qJ}hg!g#f0{=E5>~OBtMrd0-3uJ@NUwdW!k~22ZFt^Uyir zZNex(IY}^n>8-6L#{}4&S^$Uw+t@?Uu$!QhY7{v9kEA7Jb4Urg?-KPwA(mTK4ZHXUbv9yWcY_CspqR`Yu&;`(Ih zCxK*$fw}y$Cd;I>;^o-JS~457SzmE*h#R&vi?zzHLiNGfSb4Dll+aMEwtg%^*OJiR*7nfdWH>J#(LNe_F8_fj5JD$||d z8U}I02v?_qrZb@OyUb()Bu~h6=Kc>aZgc-60m3sFUfsrp5wL+~u5odrvp=PI zla+Jqg6T>C@(fUrVslqabvt;2E0u81o?MOa%Dofr86kqp6rMA1S1Ol~!(BScg^5c7 z{B`NZcdcc>a_e_*XJtd=%c|L((aZRNUPhowr1k_Lco=M@lxwEyHk#{p&;nOxzzlwO z+gEd`qabY~Z)G)1i_c~F3bi0fKrirF0+uI=$!xu=H9z-Qe~tPnO*^||{=S#Tj5n1k zv;XboRNc*<7kV;y;8eH0=K3n9+oMzHKA7vCScd3>fUH%!jf4;79NNWhYY7z4$Vo-J z?mg|2;bWGckTw6w%N2kuy@i38Wh-q880EtK?!ZciT#BUAGd7nx?6vHP+=4GhYjMqe zHEWiPz^^AsIJ75lM$Zqe03LGyxVhZS;Ik^Sm|5`i4LWwpV*(-Zxnn=v?a_uh><+n0 zVFo?$1brSzQ+O!7oGseb)I_+h1&1)o(V`wFd9arNFp4MSp235ahIjI_(yULX{m&Fz zE;pIzp#e|>2ua`^4Sm-jfIwq&DJ^n(>4T^HxkldL?p6*}3q(r@J-30~MxfKWmZ(;(%}Cm__vE^xcQo6irJVK=>J%=V zyDJ+*7Idt6+I8ZdIr_)0fTZq+ZQ8G2=O@-)7{sjATh+95h;suC`ge|a z;|DkoSDeTAj~FbRuiGoGHIWs6dDY}wO%U|FBi~p$;tmu#O$Z$HUUA~5fSx!XeHUTD zFNjzUV1d`G3_!9&SKUil7+V;ZDh|pKa@z$0a6?-x8^r(d3F>5AnD8kCU4(;ppB zlc_@9z1kPuoOZuqEy1P&!x<_|uIs_gSj*K`j) z0ttb~Iho@Z?`kGLPq-E7EzPDTg`8RgYB@z)Ac|=$PhSjkA`cl>>^;S4Xpj|}(PmXq z{H8t;w>er1{L1S-V8)#C?*ln~Xxb|A+`CqR!XX^XNqu3tcrC^{L+#~30L{I{v=yFg zT0^urSKE{|g}G*qJ-=lp6g!kr_Tnn(pW#cQ=Xaor+ST4O4Xe!awJ8RPo3A~bNa8V< z2V4o(f+LHKRB$sW5ivV2DPUrp-r=z~mF9>1>LD=Kd7iB{)4&9MA-ydc>0+MCuwOUeI5c!p z+nVERe!$b^g#ubM<-#aEu+Z6EWB?5fVrcbIsQOTZ1VN7*b^-`{!YfW|L$ecaj zSi9thxx66RElPs2E}bf|Sna}Xdf>4X+YM;2X&3SqE%YrVZ26z>+ou(U0HcUB*y2-! zGGv(JT}OkWFcvvO!Z7$qIhsHMPObmPm!W-A)%S7gJgY$z@yLokS4)I|Z;q2Zo@i zf?BA0mK?5;=Qa5Z%uDi5r+!E|ywAmnLD*COVxrFd`2OBx(oiCy{@mCet4Q-qK_eEC z;Wr^fMHaMoT##6Y9Be!gE_8wSMPtLl0mb+s8y3xj5B5 zYG42HyK!v!w7FIfXZZNX_6IMbVZ1?KNrvgkRid$3{nyi0g||&lwEPRuEI{tO5Dr?h zRlW5#`LxD7J=K>u&}U&x4KLXrV9Ph@C2`2bK|oBK7c6~hwYe7SU@9WU)U+D8vI~GO z*7)<%FZdCyme4IQOvIYp_4Zbm+*~4Xcr}AyS#S_rxXQs$RT##SX$AvD1hK>|)qwAk8DQjo9w|zg8O*z0-Y}ENWs)pg`eKw`vGT&d?$sRY3l5&X%ar>t|+K0UE7TMh0)L*cTPnngX4Fcra`Zo69 zI~&bhe2`kKJ*=$5vM zFwxjO{_u=1g{T%8?wgjsw$;R?9U+ywlLS%qR^L1IE|W?RzXXZ<06V9a9XbTx9$T73 zqamf_-_7w^7#A(Z)0Z%O#W)35HkBqt5uUT!mHWgkjudN2$# zIS92AS^;w`_S8=wKmYZSPoruW@Rb?NLY_C@E!Bpq`bbVZi&uha0K z+iVH@_&UZpu7^(C=X1KPilW*$dvUj|h-sQRUfaXPJBAE(Gu}0acHTYyYieBo^mBK> z1BqQmTjk)QUjpmw0K9;QT<2p4eUk4Vp8oIx9mv1PR34&bRbEoeH-fa_!v#QQ9A?3l=v^aH-yqn)Fcy!#R%O8KY1l zFSwAzYjD@Jg>@#k!DlibN)#6xQ#Pl(|75eH+&V&~AEzdl-3X?##i$&>jN}%bGLtCAGH$b< zI>q44RbX{)oAuhD@u3@4a^7V~D=VOV*OrgAhAsJ8_SwOiyid6`j{*1|x*WHd-@Pmp zx?zr>-ol+to?m$Rp{eC0%4z-_xtYJ5)(4=LlXyAD1bO<5@pDfR3PGjv0nH-{w~4P| zqp)(#dH_s77H_m3cvGu{0-T8cTZ@NaB##DUr~0*=n^WyoAp?LfA-hkEzv$VJo8Esa zrkeNl@ZzR3MsM=uS9E5)DQ}jKIj&|X$Qhh7gcgRI1(bZesGMX#<)Q);xxOJ9LlhK? z!W;N?S?b-S8s6DT1H1Cp;>iTZ;gPX)=69}gGn1!qKF1aiSK@Lz*X+iSqx2`1D zcN$Kux?7g{XeTMpW&+FeRS;NTg&sXk1e@VO=_M?p6$hg1rn#sp4kDFU@P4`P!BI@v z{e~eO%WJ9tA8r)i}ye?e13gwEL0w9W2)KUL2#e5RhJM(1`HC~x1Emr)Lx;gz=sJeb=M& zerugw+34D16M=yI0fOsyt7qNxOzUs0A*7`?fI!@3Yx_iq!-(2Bq-N_MXU{|qJ#BpO zWq1&yT!YS#U@j7leQ3qBYcGyg13bDHCRPTcHgSzD5R5WMGl1JhLK&97@Z`Kq`;53l z`q?9m((BDAZ2qu+5S<(79y=7pUq^f~q_zFQdmQWM2@U12D-@e-}~W zYmfDWNX|@<+LY&TKX4>zDWYhH8KSgYNVyCpr`sZ6<1e zmp)Yrd`8!)L+@+hRWn)TPs4WPgmEzKfVF2nQoteHakn(44Nv6?!ZMyN{AP^I4cM{pEO*_hdawjbvs%(GT6ma+Vn*PIyx{m zVV80ua0E`r*=j|OA<|^H`YGepj}T8El0H79e_D-VModX3{&yG&QsFd=$Y|iSpoZ!hkFlmYK$R&Ib@E zc~TghJ|Q=HA;h&fN6MxQE?N-~P;yTnx)#Dr#K2vZR?mj)m+ho)Vf`6)MlM%>d!I&j zNkHgKf(8p9fEd%#0CG>t2<;4HB~U>dXP|hPe#TbB^fkf9lGJ-!n(=fSaJ``9jUs>2 zP^LA^fF~;!5AM)grE|;w0^!tp`khL*Dv_}>2slU4X8}XARBAIH{y}2+Ln=S$PW3rq~(?fAOBb=(hgXENTBaGkht(pxFa|1GiHnnQtsqr0 zA5qF$@$6tx;}F7%59276497?-2AF(1ki$S&NsufrmeZ@tpu<+iqP#9#GlTROy!d8JN^Qa zFDR0O{5%7vu=1B6pzaU2OAI|-p8eC{k4}D{1mU)qLZ+o3)7N4Kx1W$=0so~Y9e${7 zjlcR%{*tzSY&=NZqln1e{?`|aX7?i7bUkP3D)ffknZ=s9h4Y z10M_mjs?l!9!iv;{Lh*G4AJ%z`~jOZ0DV4<9mEG|K$d`k@+sL`ut@W{VS)fSpvOPO zv)M~T_q|0%Lr8B9;*dG|kRCEbslS!6{Ja;!Ly63m1f9r?v3(Z4dE1um1n$$XsYNiO z9GKw`xemLVG81K#b3VhxH!4<&mP&5J#*m&Gw_6mcoq+;EpJxyjV{ASR=mL?NC&}T3 z&FckxoD?)=Hyo*#Q26R7QnZpN9mAf_#inWc>T*;NgEY>h4}HVsa7}q~cqa9j8Hr@Z zrDcQKDu}xO%I<%cQQ80;Ft$4{N~=vmrjHSw86Bca+uj_>Dc!IwDHym-+PlR$`=|># zTZT$kVA41Q71Kawj=RjERmpYsxRKVGpQn1{zH@n26;>af3-RjnoDh{#8er ztWaM=ai&3}A6%j*2j#&xDIbGr_@k9v zqtY?#P#!j4f{hQOb;^i297IrqNiT#qYcL6F&>sP{A&}My)LfUrNH|t5Aj9VK>9T4RPN}N`wTzX-1-U+7Ez}NI!X4$hVSG%ngb^)4SwPwg zWB3^Z!+EB`O(js-VCpP4=^Mk33ytHsrt=c=0%%w+Bo!-(^IQ`i1BGE4WTJG4fR>6$ zGgD$8jU81DQ}-v)t;XO_81%_8cxo$UZj4yF4fPB(3gQ6g<#Y#)7>Ca!a#ATxD=loI_Fj#i^N&p`aWilT{s$|lMe98|Y z>95@6+L&oP(`cLvn@PbS)SM%I{)F-dqXj07D8r9O)!oDC0f1>g|GZjAMo7>I25l5X zHU!FBLHAju8ZTN z>LtJvi787+nq$&8%)k*c{n028m#7VJ2s8kNlNci~09~e)F-Cu)M9LtoeBexvTJvH5 zv<(s#d}0*r71Do8uI0&LGfHF|uy!U2nX2F&-`Hi^%e}BE`y0o4gh5+~G7e+nSfJ@& z&`5J@b&cuK&|sG?*AKFkqOVJrg#q~z<7YzSc_CReW-8&Dp64RZN6{sqVVhX~s)5`k z(_dhUP5`D}R{By-!xuSqL}v0Rs^c?s{~n*-58@-DOou<<|ME=^%@gM;9&M2yy1+G3 zafud6;=ow8GeGl|V{)c&Jq>g*s0)ngsU$V0uH_#e!6EoMkA9(oWYlXy7+Q5NM!ZA^ zr2*;EB%sk>iB=A1SlOT%g3yyRyxg0lS1G4zw5gs-?Z0Xz9PvNDy?{i`G|=d9IV1Wg zIU?GAjbWXc2K+H% zvJ!6xqDN%9Hvzp)&`1R0QJ|3&G>kMc006@*5I@hLiN=WGk~SO{$L1gbkhK35_8NyK z7E(p}+MNtd%3ZrMl2$)L8i=CPmDqIt`=zqXD?djLn!SAS!_wN-&Ou@}H4fwRakWaM zgoBvOUBZ%`*bD@Oi(aQF;az}HKd7UMgt0g%8pGfT7qH;}vQh$C|6)9qz(jqE7v!c4 zOWgrsqZu$q4$K=sTc~AlGazXP2T`U(dNa^GnVlvku>S~1jRhSz@Yf2v3C|)=jvF-y zyb9pbSN{Ch1WCCKM*cVwuW4d%kzEq>gcAS5tn1c(wfAGort0C^gV^~43vch?+5j6T z5!B~u*?BAI*2-rgTVWf_%4!afBDk|gna-oL8PyU?Ov{#gh?_sK(fG>0LM8UYtzS=w zH^X%qVyeM#Q?Jaz4>D$kHLX5qd8q$ z3lal}>_>1eG~YkQ-uYql?uFA2>Ya0OCjJ+v?n_oy*=_l-zM=fI#qK_j^X99G)k_O{ z#lOBL^VAK?co9hcE~_#lPP$U|#d$KkeaV&h*t1^>UzvL~%@$5qrfjXuH1XWGkp6jn zt+=BX!8z&IZ^fb9sM17AFO_GC~)7^qz`q+Q`QyVxc>9A zvb)4|-Oa9F-=-e#eLYxzec`9-?Y$H0Zr%Jd^Xc0+aoV4oYBhigtKUCMPE-mpRxL`A zmg|%iaj^)wfTgLK@GpEK182L8ig%(E=$BS&5TgHnWE>De@uzGFYmbyGk ze0zXB+45Fh=J8|d?LiL8cB0%{FKME}*Q#}*GQf3uqAJM8_T8Zkp-Jx!hsC$PI}(vO z{q86~-*&P(_DIrXO=5HFWNqr@>B(b)UfcI|8PAg5AJ3X>eP5sRWBUCG2xT`V5$h#S zH56K%nQAO`O;$!NCBOkZr+i}SRD_8f0PX+~%*VAfv-O16lP8-3m=Vlrk_MQGAcmY< zcBbBG$Xl!hV0QGZca;GgbHDeL$>()xTvE zgVYbw=wn`d&oLWxzZDd{8V2;hAWZD>!T7XGE7laV_h|(d>jb#Sd(?~L@j57ahq`e! zY?n8jbFTM_!3IAaanOSISaxi#4nxN9#XeGXqbZRFLAIqXK z<^Z(ml>ASRb=6Iqlqf%zg6|*l-%;auv{jh0Hovj0jNu*8Z^zpZnSRv#kOX0vQ58@q zLtF;NPyvNeh$_;O%Y6Y6AJTnsPh-Vaoo6k41U!1D3M~4rgqxOg@o5n0r>+oT+9K3` zVs*)+(bjcEAE*RWCC_&?;5|RW=n5cj5um{Os5a9&Nz3dT{e+9}HqsA)KsE-R`H58E z3~+IA0+7@{1h;+tg%~%?HBXCOuPuQJ`akgz3F^mQufGDWihYf{B>!85kx1ISYww15 zwwSz@K%!x;9Lt>2h@(_R3fo!14W&p&_TJB_m4m?{WM=mOXkFVE{pzMIMxLiHtz*pU zoE-AP#19oM=>o8qW*(U*g3$I>`}pO2o(71;=BI)bb{fqql&{GMf*bVk5$mcqc%PU%BvjsZtgz*+-Gw_G z_KuHcpWDzj7eZwYq&5dqL|Gf#c?x#^Tx;Ncu6DW({UondREx0<1lmQjq_ac;D>eQQ+e(G zgaiCQohSFy3}dGXyU8^1FVch8@? zca#;=U+4FK3%^dn)aYHE(+^H?{{OLn?!19tjx8SM1ZcLCQfPCsrj;c0-vmp(q1#>9j&yf1%x z*}3!M>-*QQe13x<&mjZ5I={Tt)$QX9dVD`TIn;F4?tV{}4N%&cvc1N9X}L8Yb5{Mu z897c6KOobS3cGhuzJ@WPuTp5TLklmznQnL_x&2Y!LfG8BiLvXn$m=~a|4lX)OeAgk zbbJ|!M1cwXc6qi+U=-ByEK)9ZV_(o-nD9ssXSK3`M6_sZc~gRn<0vpvp-m;ppKDou zfYHisIGFxrYFrG=&+}Jp`#uamsMVfeUTE#uBi8q$U5()eyHTGXG=(uNN_(ay@M>J% z_YJ#6n`_GBR;0(BthF@Tu$97=Z4Ro`cFOO@FRGk=Uy}G2%L!YwC-#DGn$F+g_m;)?x}eQ3a1nK;jFY*ZTGS5;{) z#4DY&yrLoT*l@QUPDwdG(|9=L!hI{Q_twBCDPn@_+?m;%zkeJ{NmSx?AWrb+k8Nw* zdvhqc7}Y&8+r3%$db##0#uyxLKF?9~I`v4X4S17eay?vl{ULcXE;fB_m1{*0VO7hQ z+a!DKUqe@!%fw&t>kkQ6QKsE;hNPXm)VVcl^;(y3@%#P8$?N6?Jyfcc3nEwY|Kw6I zO1^jNvaD-w>v48lP8R=jWSD+;uL79P-a9T6oc#xR{@643iE-(Qv;ed5=&7lc|L%B?T6u!rWSD7(TwiwsN%n0J%>iNVoC-LN zKeI^x_@+Zl7T<3JHtX=Nae>!y&YWNs&V0iQeL}2F1((S5Wr+<)^AZ?8{qdf^r`f&= zouN&3rsYB{OpqMqq0DtqC18wbyspXuXUVCSz@0G<-wYJUFCO2{U}wRO&*|wiCls_k z49XlQ2PrKa^s;J^;pJFQK>Ru1w(&7_LRH`j2-gX(%73YUi1Q5Ww37D~<8l4afe5~r z?okbvoTdrCR(#rRT$u;&lY6fV~0Q%Y7`H9O?stHru(|F6_%VuI%RRiBo0K*}I@mw1YR>bzwi|#07 zruw2YQV!1!=H4_PRpLrDP;fCHK`mtJ6+tr6ZyCzcp;0e35zt8vT4co<69sfe9iFGk zR@6|?w_Hvb9OU1`U;cpfh@BioHKSrSG#Z}?Lc6&5z?u&+sTpS&OVrQLL`9BK8u((f zddPW5(|=?qdf8O7+yE^eVc(MHc#jG-ep9TM?iWlRV|iA+-LK%C12b=A6PZIEer+YB zKfX3pZuudCA{9`H%xDey&MGc>k4?8FbqCTjTS)dq=%Y_ER=e@GXD^pE8BYY|b8Q+a zaRAKJE*QJcf=f8eN6>yS&{ixM-bN*|-|!H%)P_f1Pul{($%RKPnTR4<9$v}71rJA) zO~QKgeE^iV);KX&1tXyv?i{F`OJ$dPS+btYpC1IJGdk)L!y_G2_1m z=54+_x}#H}?QbFZa37r1A5^qvg4qTxT!aJh7gI@hr@=_tVf*Iv?iy z^Sfy`Z4~GYvI0MKghD4$I!$Mv&98Z_q$GDL=r9mx72t&3%by`G3(sFMmrrmnNF}K@ zU6NuCMD(?W7ID0grHP+_cuU7_)n$e9(M=?>$X84&t|+z~R_LXMc~e~_s7MW2s3EAE z%o!U~=bLG-kF|2K|AH_d-bFRB$zOCt`IOjW_Wvk455J`L|Bs)+9tw(x8x;2lH=1=1 z;!cgyO3MmIMUKLzm30q8!%@*T(?YW%v%<2nuD1)WtgNuCtgKv>joYPhyWV@dUw{1m z0eCRa`Mlq+*Yio1myIR*a(0UP1U4b{a$gn)zeo#CGYU6hSy6i@L~RD^!+^;dX~4~# z>7_gwdwjv%K75=Ovag=fJbBwL52vkL;YWIQF*B66k;Yl5IO;oE zxy~ZFX$9*=@FQTCh$6S{K;xQ=#S)(OFWd@=!l$WVRYuH08#8gjc}kQ;_s0}}P5B;s zF;^y=fPm&H1r-bRespZRDCP&#HvA{|zNm_wD^}(m)q#f=iU9^oZ;2C?y?bOXNKAFv z3mTry!HiisOU^l#Qb{5}M!(Sxkx;$z-Hnk;4eoCil8WLS@5`u{b+JCpYEqzIG>J&t zNUx+-25}A6sSA{NTp(eACFNGev@XbD!;kUBeho~|sfz(e9OWXdoDTo5YyWA}a)vgT zkwFtMd|UCy?~LB%hPJti!4)&?4(qBI+!@skszPy>ZMDP=NBR}uDg-uZeQw1wcU0Vd z8Dd#2R^pN1GBc!-xvu0-?39#9{bnZ_of&QTYP@QDK<3aa?Rj6q>2aHiqA{nsT%M)A z58{nkA}Uwwj~_`I)dnpbAYG{8@e*Ko-xXEg>BH4p|?g z1#r}xEE6TrwcptBghiarIgqhiC?rFLl`}(9>-MLgjWbcJv%h@^Ks+o=}wJ~hb*(`0KPbK4e;iT zP?cuIdJXpH*Ep)aIDZ8E?-cIjO-zw7+r76q@-)tP3U^qK_d+(zlwzY^ODtF}9>RvS9@9L;*iBCLYCpork+slfQ_KUxv6N#wAOU?K|+eAf|Yk2)9ME z@csn$3qM?F!V15Gfg^Al8yhl$*_@6$bpVsH5t|0!nkTRsCco272mLPE_?gMS2s{J8 zdTXF01O|}637K04ZGO-Jd>XoIiw0NrbafYuD{~iS;2E&gw$w?u|@2f4PVn3R(*IUU*aBMVp#V1Dc zm@vFz3?tHkK5W64`7=`Wm{jq>qJg5j=?PwGf`$k1^(UBA9##lo;!M!pAna@a{@)^A z>AuB3f8DoY1hm-zd(mb`V*ru@_R{b)14Rq0PONkDE7$=4rWDqN@wQtd8@@FC?`see z!n?Tj`cXO+N?E>}}lg@tRZCXUtsQ zw(|FLZfwvxO^0r)+N!O*uH9>YMr|%BM4s7CI&&}*`%A>Ox};-iwB|*+qjP!K@~zDc zwausOo6GZ?k3DN{zTVt$U3+G0^Rf5MyYrh**J@iM&#Icw?yNkk%0H7#JKM9kxtUaR zrn#l%AI!4V+E`J`^=C)4&(7YhY&rR?+4TSht!R0CyE%3wQOG;*qlbjZxyr?7>;5@+ z`~A7*eC;VEq-^rFI}%XNNZLNg(BKEmugSK&+8AoAO5@`Rj z)Ai&!|4mEGb)wmbbn8YKlk>$!xum_^mwBc!C}z&pGgiLbZ+^-L@R~Vo*snhM*DoUo z#?RG0w7`GY2k*7?>uU#mS_Uw2;_IhActm_D+6>PugMIqA`zrSP&hriF8N0B^*K4lG zd^Nn>26JccgLw$XIG-zlSZtVena(>o|JpB5z^j}f5Z>wVq5R=<+wcjD_L1%I%FJPq|Tu@z@V{S8a9Ay}`}u zoT>Ze0omZ*(dpOG;p^53s5^b?egW5yngQ~F?9~JRLt>pfWnLNmaCruG!W2V)oQ^cBB_HWC< zkmU_EetO0d`mOj8IKv3Lpr__NgHwKBGH7s&ripXyVuzKjh|UW%LA&noLXEH=4;Jd7 zW6yg$E)~-q4elb09nkRH>X+Ty{4`(MFMjz&p48RfusO_+c6tL=%IZ>Fgs*SDJ|~J6 zF2=1ifmR~?Gbzc}2!(2(OGW|_*|BUMY~8^KG~&uc_>CgMN;Vj0{&$>zVj&R|0EdwK zp_>>C7r~ho5EH+^UTHJTfk9Ui*7rT;)V3Kx;w&=|aU+6TrN^z*K|D=k4DZfL)4h!* zEFgki*x2iAtS@kXxdyUaa`k5iUb>M`rh~Gk0qkG<@j|1$`Xik4FZ1thTZ2tk3X<=N zOxRnRyPvc0^GCw0#klKcL_2VQzI5xs=Z19y-GL$~kO#%0*wa_<2Ry`>9SfI4_=Q`p zpWeJRX&^AmQ6H}cHkt^QYIuEG$TsWbiJbnPmM3i|`m6UP2M*U7H3VQC>_>z7Y+jr( z@YIqZUNGem8%t+n>rK?fVmMR{){F3VV)Lg2+L=HPai1LzB&vx6H0oo7@}?h*rNIsb zms$ofA_QYrApHIfa^zvIC14+E$mzP(8_7WTznXH#KIyg@hZ-fmChATd@g9#dU@kGM zL5G{>$0RiGA{VKFQ`0HfHyUgkkD_)OP8M55W(UkNVNQ!Jx)7{c5@9wc)SG~+d6(if zu$#vG9H6@zaMXi{J<~;WO_GFtCB^L&Qy=pvW@T@T8dxbdTSdv;Jj(DaaNqMl+1JNI zcR`{QSc#A`M9|9zMaiE*p^30k4B3u%yP$#AqQ;%O9-UqV9N|&yfAwu6+n2oHc5Ou#NF=_t?Wt052SpmZL2l^EFUjITEl+Vpt9gss<*i$xe~b?MP*Hkq}G z@JfvP55%;#KrUjO0U_5TaJpG^ASMuW&`v4Atm?4ijU62s1~g<#(fi~711v?4Ev1B4 zv^RDle4FuQI)a^#j+9G*d>$zsfZdV$KpuQuL(W!%qx&Z<(T_2DzfdWzP4~ubWWua2 zBO=&(DdDt{aOr;&-QqXJ2qhf=*4!W-HA_CkxaAt`fSO1&VGTx{^~mfZ8SKlOJfVYD ziKuThCZrOlj(*?swe5?ZIT$TvYe-m9Z1+3qLs(zJ%^OS`%(x`W6gx1;1X6M)nGkuHW7 z0U!1N&yI*cJw~vL#TL>X1Zy7Hrlwi~(4dq=)DZ_wgmLv`t~81ILJaB*I&d+?N((JdlrVJkZR8zpf)ji=kchW^W1pmFBN? zvq%8jtcii<%pf1tU_S=@{aF3BdM*|x!hbh?8P`E<9(Ip$GR4WVR1F~eeas!^Jz|Ta zQc}7Y*JYyakrFJYjW6G%Vl8?9?GyvMcor9>q{L~$BlC;->Beh&CQka^SNHkcmur_B z!`Log&i@kIzT^u4A|r?#OLdN^5sgNdQ=MijGt{@}j)?)h`Qfj7tKz$zYyLj9qEqb} zTKa8rR5+r@Z&$@G$=0NX_{7#l8Do77nBd~DUAaPc`}6$yL3tYY4+dr2qc%cyZV}dI z{Z7@btrLZ5j_cd|xqaey?+?`|BAv(vNg&PyB{E}A=^2rkkB<4lQiW;_i&1HVjN`F3%=KPR@m?h9GQZ0E!qld?LjnGu-KM+@Iq{b8k={S}(QQrudJcgtL)7{TDWVhL zT}nl4jC(TAl{}-HC!~f?=!BL(VFF|5_{BUTnU%Pz(iRwMs--BcRujCF5}*p%GR@dg z!*?q^B}c0oDW_<+bffq_V*e5TveNF_c&ifjnUgnIaZF&L>OJV6QMIxrMKZvJ{Wnys z+;0=v`sM(K&pW%*)k>?lh)K$j)#`gAFgJp&67-byK*`8ae%{k=z`u9z*tA-r+G2I@ z8AbCu=<{(P8ck8%K~&tvz76HZIN#_)X^U${$cy_c+#u#YT1r^RA~j0<>D&Yr2<9i~ ztwzV@pu5&Kd5!GtzNcG-ZL$ay6F7P40_?)rnK@4*Q(Mb-VZuJE<}Tfks3~iETqQ)K z#f!5qcvL){0PU1s4a)zR|IR=NZ_A1VTmR@etlt(tadr96(^$S(hTlD@vYKaxa|bOe z8KtaGHI&u9aUOUBdbRM!RL-KwrYrcoy=A2Q@B!C>fN@RZ$&|W*Xma$Ph}giT+AS!S zWijxU0gnOroSM|nR)D`1VE)!c?v*R}s=d%G_EvE=9HcV5o<5LLN^Ut4uhpH}jp1w7 z)uibwV4xt(4tHvXs`bs;;0=K{`y(H8_t=fKIOoWT&$Op3SX&AH6`P1XcQAe}VQ9+G zgCIBic`n)Gg_(5?jW;gv*%J=tw_8}1-M=Mfa%VC47OV?9qF)j`Jn9B|oQGX2xE2E| zUJI>M`TL)*Xz&0z)tXM*g1iA&i`s>}_$pzY;q_h{KF@IO5{0K+31pM0uVBvyH~uC3 z<<2kteADx{(yxCnRl9oVKKBs3(%DLpkNKpd&MY?y#+{}7&I74=YQ)W1FjE~GO-|$- zV7%86afhmzr-$s1XBDd`ECZCjy8GUZ&qy$ePLt|+Q~=>ASsf@L4UjLhn0LudhhiN? z20P~|6+XGZ`h>WP6!zK1j%A=kY>9EQ0E3opkU|UW<-}%uQ1HiU<{nM#LyNr?oHjjf z1=8ze{-%FyEg*EU;+&j$umj-(#ZGN*rp?E2`b5m)5ZI{Mi6!cz;JN+W9NImmu+O9LLw+$#Uovex z^zo7J`749YWgf~o;!Te)9mf_)eyTMGTi@WsfRF-+ltVFd2rG{mD0N1&I?E6l&h9M8 zeyH?dHC)C1>h4EYS~)c};Xxk>W1oP!HyNefQg>qNOoJiKbbnoPXXcKZ7>@}Jk}Qe7 zl&+WCe;YXhLVwWJ`scEox0hojp!G7bD!+y2?xq!3x99`H9y4clgs!1>+8yPFfFz24 zr;SczRl;l_Jo)wH<~^DVZj73%DOy7aF@{cj&BiAq(Y?40%46^EbOmY!h3Q!u?vHf$ zo9CofDpc|09!fBFfa$UO7YN2W=cMxlxV$Hrr?i|iH_jE7Sxl#Ae_%-tUF~oWcz5!t zmr!-vX5U50<&G5ro9$x0`_L@@_t-epyU8u6Mjv*Bi1jM@hI?EOM*ZsW`clbISJimq z+&yOEUv*IH$GD1OEKnXnA2_MLQUPN-D0sX%b@i7uA_bWk;I-r*cY%@Xf1Zny?(B} z_yB`gGB;}??;q(7N5A{;84-td;@nHVdsE)mj($1SZSY}1%*7^IcH;={S0@4aiy8Ht zXUV|@@#s-LS=;D^m#%+XcjM1r*Y5c3J8|W$OOpNv#_3Bs4R*ey%Qj;~!BGoH^ZEo< zTNi8SeJZSuW6aDsngMq?#$y=4XWq@1K`C#lGtHk|ZeiCWwKtn#ASdPtC_anb9JU|DrvC@vG*}D+zx7dL ztN$ix#HfQlZLMEPifo-|lMJ!;e_8=ja!?o-d-low(xR~6L`v;F1X@`ppo@1|UHW$D z>N0ioy+ubcE~bSqZ}@lG_VJWfZNN;&5tN=)^@nU~1Ac|Rvo8DVL=H?DXL%A1{r&6K z$5;P%SlnxP=3xI95ZK3W6-C28MAfBJ#Czc%1DZM113y;j!%gliM=qZ2+ph4}>r7_ft4O>VAmF+&`_8_1~!}`katVY0Q z1xEyOjiAjGza?KjbfheE3T27izP<-Nv|0vBMq->?%g6NZ=j&Vp1J}D>-zK~B-rptx zH>U=;HFoU5zqZql9{N2|bny>#q4e`VE2y3&5N$|a3dwjisHYmTDM9lRsyQksjEBE) z=G-a>@|Xf(3i`0Sq$$IH24e-KtT_+JlRys ztO13?mM<&iC$;e6DcpJ^R#<{swa@nBIW0;CZ2AD{9bi`_NKrw-ENFPDJTC)u@se}c z;NOjvm7ita{4$}mhayp`8)UnJVpyFW(tptd5iqQh`)bPa)z|_FMyHZba{zR8rISTJ z@!_>jx*oCzP>*&QCquU33mD46)$1>~>g84?GJ6r|r|Ix+hpN^yKfXIhF_wGM7%Zcr9 z#g--qy{AgtBj+87PD}Ot0E6Tvom}$ww`+#X?6U7ZNo?R#+cir%SQ5cnS&nO z{`b`#(at$yMJ`_%&%$Gnn46R4YvK$ zKPJAa5OG*Zq+g8%J&*YZd{4E7y7vuWw6#Khc?WN&wLU2a0US_hqV*65k(XE26V(GY zsFQ;~MOXtwbBy(NIDp>hMXaKYwfOQz- z4;?&JtO>@ER6RwSC4(jDd(%v(09sw1aQk% zT+KR@#y?4%0)n;W#eD3>Bp`X@;L+QF1v~KjI{DR@-OaKJc{ptV1j zA&a)h?@K&}SCtE=fEBsnZX=1uF-gSN?ge)r-{~1H4X(O0DPoD_YZH_>!joJC<%_E@ zENm7E(0J&&r?WRl%y>EiSI`3nN@PeTC#OW8p|8*8&ztrENSXX{J|DyXM=s%Ebf){o zI%@eWWxg1e4k=yukDIpum9K$_1p8%C0r64GGTE5^G(~g?;FbVEiI629ep!kU(9vtH z)S;|Iumo)f(PGUUAKtNd!w)}u*XT_99z??)iI{wZ{Iq_QB|`qroGN7+twg4={BWk}~7KzwUSL4*T|w-8bj; zx5@2k(CNa(1K6fqcKKnA+ylfkcRFe9R#=^J_4ztw>Vag1jC}7J zde5m$fbGFYbSMT<~qbVo=c$8=JbJtJR1shY|L}8umE3-w%ifM1tkcENy&pbc*;CDSn zx5<63j7|HUnyd_Sx%b-DNh3?0A_-}3!6nK#uSy}SEOpW?xSjK2o{UJFbFpr~e!GW- zTAtdcPnKZ3hXDM?6P-(CHZ^6lILf#Zz|}z>S8{h}66A?qIQ0oLEtJ$+zE|EZ zLE~!5BGs#L&y<-NAfUr6HvPWqQ_;`PSnnZ8cnvzfwWIG(r_9F3#MoI?xIau5F3X?G zey;KW=CAxUP)1Y%u=o@WU26v2PccC=mY-4h?k8GyMr0M`t1potvqhnmW2b0So_+sA z?b@$fN&yPtG=U&X2wg%nUgshpVD5MDWZ{PZ*en}B|5*2af2!)How`3eA6{(kI{|{- zVSta{`Mf*E>RXWvf^_}N>y(p$4hTpo0o_zGnt3cC27ec`+Ul@{I2oMqg~>yY7sUU0 zBf>7@oNJ9N>Gu7waZeBNsnrUQVk{u-thLhvq`zd-EEB4Zm4A(u*-GTc#=V+-AcwpY zA0J#XH!@rS;I6Oy&nv|aH9Vpi@Ja_^OWCn#S=i4qCoeNk5M=0OPGT1Lim8-Ey-$W9P=FhUUurNQ<`nsTm+k z7Z96fs^0Q7cvlPl&hIaSBExR;QZf%GY}8%;r#*Ou+`Hz=p4u}RSFe+N*X74ntS0-) zo3&PY)N-i$__K2!rVyEwcaTrC?evw6oFksqeSYxOE=<>!zQzof{Fl?Y4>4ECPuDEA zwcX&$8XCS-<6jY6Q)xvgKdY^LU;&uGX%EStDi?YA+9}edctUxJ#kY2P@aFJL8>?|o z&zkJ~U4MG&WZM|3r(*$6M^8UlYzq*)Jx%b(^K`rEy4i+t){Dv+y6uS z(D6sWpG}MYq28+bd7H-(+cWp24MW!>_Ad6&lV%U~HT!!^)y#h*ZCn>i_FS~SfrR;~ z>x1{I7n>^9{y%IRyegBDwmMCrjH#TsV7WuW-rJsk>sk)B`z9d8>aO3ZE%gk z6Sb1N?l~89bt=8P|R^`K*!0=%@*8c_Ljw6eB4K9|tD)W39grbAqU=ic|t>M^A1 zXYiky!~;mHv*zqC%^+n+Fqa%TZ9DV4<|oKz{)7lXd`6Rap0Kw*D0b^N0P4o?A8C1=XsyIkv#ybmNza9;!e#EASvSbO!?h zg7ipi_!|jbZk>wABvx^HlbjfvvGSC4*i+LJdU%U5#mU-n-sxk-6~ zVw&sfk%rx4v&3vhv@7Tcyon`&9NOHrfin7XlwQVIu5RcgOwTIi#D?zS zno!62T(yjGb7WmFiO^n5z~Gbu9FS+!3yAY3yR#YTEUUXDYfWM28utSxG~jVv;~lqw zsEeJX{CNY!Hespm7SGI*7uxw6qwm7=L;PcLztz&Qc(1c{2HM3*tE$j7Twb?rn$8F( z$Csk9Av;?Dw0*{00Km@|HAF*1QT9E%3%4~m8+Nr`&d5v1){|yj%{EVTOGADq`%2Oh zpop-BuEgb~>Mu0k1da=yo51Pe9ZfbN4)gMoe(+Y6wz7cvQiT79yWe?hi-@exWt=za zy@>f`0>^1XwQJ8^F%;i1+P8FcCNW#oqk4x5He2O2-Pj^STq`=}D&U2N-9(ng+*^uv zA#KtriyLhI&~-TIzK&^VJC?Rl?Gbed?znonIQ}4Ev76L87PA+oQ-){DWRNTg|&21Hjd6*8lzy% zN&@_wB$)hGKZ_B*5cb(j$r*uc)7dY>DFc9g6HpYAksPYZre?Mv%z0TdW;uwiX<=Ic zHQAm)CKQqw?B&L~nf7}DE#vguZdEVq5{jn9xY_4d!_<>gzW1I^(Bg-?VM<{2yzieK zx>RwV5}v|7>m;G|EbjMXV(c_GBs;4(N$-|wz~umJ`=fm*WoP#83-yimU0RrS_w&uj z($NE}Xn=#3LtgGNLb*Ow9?%DL^A{^f#L1XY(?Vr_{e`+;6J4aobTpTyF`I%uh?=pN zfNjb-mPs=wHb>>F{W`IiOBB$MfJih~*ZhzX82{a3{*b_~QwQ50_*^CJ$ZZ^zb~2r# z_gk-PJK_AFSAx*z_zb_M(N8OKIx14j9b%OlnCQF7K6$6i{~$Q`_?iT>Cq z2c1W?=UXQkWl`N8yBo?@pJ#*R{BBq(#dMjM#(VhXcY{o25&5I6pog6nW--+~+Bj&b zJHhO0ht6G_mXUl-<$mI%hsBa?Yf%Aer)nU(|EOfH%;3_RuD3@(`m^g#GV;9{B_0hA@hUm$ z`*km|^3s-#O3#lP+#+omc^OY`JH@fdX)h;B(4Uq}USj5m5I+nE%A7}XgGQpc?;G&% zl_#8kC9rHiiuMq9MB9PuAzLf6&3ikp5_5(DNn za0{YFC(IkXQp2AGadp6HEw4z6M%qJ4tlq~0oVn^+XbI3GmA>DEb95n z*RmlGGs!tYwX~A2|Nq%Dam}+!fU}G|d>$n|QVB!u0q;^W!mq!PGo#V2D-|ZGqyvyAU z@8$tf-?XZ%W5yZ9UcSkfO-p=$5qjb-;o2p7aQPJkEA&#%cQID9Ma-c@)OB&f?oOl- zHp6SCggDh#8ioH?0l-s4SnNgp!$&ZW(PomljcF5wvM%!tJZbB~FfIz8s{hlYjr{?y zYlyehU~7(xF@DL>RQC){1D*^J0I~J@Ne^>n_o+}?YP~eB5YoT@9I;{J;}L$h<8B$C zI}gOStnTzB?|t?tY}7|r1_Vq?e6xJ=o)(n7=;j2GQQ=?_tBsXK=U*szwfNq=6*1R_ ze)*fQ+Ee2dt06~RI=Ag5cNDu>+l|j>tI`v4>A6FIV`cFxzwR9R8RO|~HYQSHh}ic2 z$So!+Ff5mj+FC5rI-Ad;b34YZNlZLt&_tybiN`+u{L_!|3&#bjlJ02!FQJtKlXI); zNDZFl!H(uzG057f6VrtBa{;oWd?pG9_JhyZfCFKXWA)yYc_4Se{ImtIm!W*kFoN3< z9g@+-YiFd7cDikN#HV$6s6qc2MR3S{yPB@R{=Kc&j*vWUT_YZV-YWwpem4uLx&n=zqz!ii*>wL5IDotK;4Hvq z2)5|}%FkgKM*ZrO3$6Q_Lk$=qM;RsqOc6MJGdQ(@gi?VUU;aslIJHd6s2}xC8FDs3 zZl{(x7y+PNz{mqu|8T>Xf}9$IQ=XpGt~kHz&VnX{-d<si5?%p8C^uxtrn9LtCMjK+Ki?d=F80`iphTJX$ zIsC|A7o`tB2F9&H?eZXpZUegz!I@{T;uu^;-cS2*bvB*mtzqFX&_5`EjPr{rw`eAV zneW874z>>p7$JJQ{*&Rdrg>77^aG5OqK+LCbCN)gR&PV=B$+bYCNcLyptP+^?aTV; z`kv)_Jw@yIKnr{*#0UXkY!I=`>k&;&$5M6W$%=zd4cA@Uf??T2G%sLsLCBF7zbY zfLB{QfNlV%)SuM@I5SQ*2Bi!km=gV221qgEHilv>7@qWx2*D8{Bp~Y|0dh?u*-Vs5 zKnSIJb76h+|6-QqA(pyYI#*EgD?n1B=njOULR)zNj*nI+=*xCnP)d;UjJc-zSgM)u z`CVVK7}v-EN!6$&y2z5d%EAoM9M-FW)2j;0s3DTe!^qDNXg!P)GyqAgU(kUTL5YOn zzOvG3l=cn4B`23+CgD<;!$pKK*kd|9US-a~+`_YHI5qlIgTh(~rREm?z~Q3D$dMR? zz(O(A0InaQEA>=!J0LIBtl%R$0_xoWGX$d6prpyTIW)n6cfGmJg0nU|8*eLVA%q=u zr<%U>T5~}~&B`v0+{LITPXWiG-j~v3%lS(4Sk{^=u=IPkK6%c{{5R{3J3W~Al1$HY zkDJdq_o+Vuo6ggKj4V1k-jX4ceA839k>+OO&5?3ibs7DmKD}^WdLOcM2&ES)J)8v} z63R=~=_e?+OIhZ0bKZ8YWbP-Vi(%LS87yevoWg-NR-6SZf3Ao5|9{Z;*GNN05O|}q zV6{EDr2ckC0B4S_R@h%qpzfB2$ZV1Y<;8Bl9!s*O-6Az$g*rWjBJe1c5n1KJzIdyN zJ_)J&%!3a%aV>JQt1KvcuKmurK9h|Qn4>$iK>C)@qF$q1)Mz#5?C*YOV^#FJBzg!X z;ad|8C>lueSv^00^<%u+US=_=k7%%7Gj)3}D^TGElGo*lP=taQ?HmW@Xaykoh<_%B=6c7_8@O`V(_2s2Q7O%d4GVc=GE8pkdzF8*vJ+l)>x-uQ551i6znA$|QL=6=z%)`RZT+f-N@}uzlL6TzBUYkSNqm(uBiqNFAOQ15A6NJ^v$>{xR5QUNh0DM9sS?hcZ5VRu?#EN(^& zeb8`Qi(KgK&V7l#d3?6d$BR5{a57EjSq&nT77>FM?XjWPn$c;S@W`6MI0Nd>tSRex z1h7IN<}gaH^C7p_k+k|zaclkn#=89${TnJdP+Q>T^>3s(*C3O$&!>xJ<{|*?X586U zOff}fYos0<)LTymHd+vCt7BFzZ2dhdVL?OUV&~Y~gi)F%nO+JM{@|{u_BeUFb$eFq z(2cb>?N$H1nc;If=*Me)>BqIrohU=k49JK!I>|O$RDyY(j*q}yF#w76iCjZ$Vy!vq zEO_p*ihv@XLj!&Z26BkO+|x!4a7q<^ zYImliby*4SsJgr8*ljYyOu2?_l)-Q8)g-lkn;)mxrv+9EIC;qaIGKCM!PrYh6q+Y4 zM$bs^;z-|`iRA&JE^m>5P!mhh*`KAZxs(ov)(M^_84j0%39R?JWdz0)aGuYM0?rOMk%%nOeIXH#b@?C*aJ+04>eG#!!=Q;s;N_v3)pVh=j z)Dm;ndMego*dV~k8I#{_ll3_n`vsN;wm#3ed*67Bfa7%(_DY$TF!wbp7HR@m?Gxc# z9gW8(1zcS2;2&z-L!*n4Qf~V zT$c3dSPZb;Z9h$kIMoQWf5eDVMJ1moDI$m=pDt9||5=qmU6jjLsY zlgjg3zpSat_nyW}3!kIX-~V}VdG{YB@wa@hvOtn{88k$(rvccUW&Jd=5Axz$hNIa0^g_=K^%6fRE>97BfaB12FE9q)_fw~}RhPZw-eGru zih=E@U8IuG0I!1_^(b#rp8xIp%g5#wo&m2#!KV&ncGo+nP99@E``H%ZVUB--%ufW9 z&ZA3X6@KlHct6rX!c*_3*Q)NSm)NDbyYF>xSJ+APQb$2T?p@yGBikK{d)+d-NgDY) z;yD;$V?@Gfig)xqD`ORIO=#X(27%`4&qqnTn1z5$arkMtGvX)`4vH>mUIRxRtnC~j z-6Ht(q5ns&fj&SZDNrHW|V>yM(0Kh{v}-y=%JcwJ57p z=+^=e#edo7gpye@s-IH;0-RoOgvo!xIWW99Y zl>Q81D{%+n`ywuAG8(E=t!)L94=$Zs(3Q0Mhlg@8uCLR(1;I%HyC09Q@5x$uD>@YO zU(zhw?Vfw>%vko31o0qBVn7as+kg20IW>I1e4)(aGT-)#okRkbSg;}VR^iRfgDjoh zFhW;jXp?|NiM}Fc7v%uxKQ#R}rp3O&9kr)CT=x@dH_QaO1qXI)KevUt{|@D?og8G$ z!uQGjxO&?>d9WLJLVkEnAOA|>?>DRoPoNHyr#$3yK8cGCqWd8+21CM zCscdr>8Zauo_3!G&+QSl5B}|O8Yxe`n0lmYy_Y=!o$-&#^JwxyM}Sr-`#2=nrzjfn>C#|cV+^FBS z`HxqIZ7#tW{qEt|O0G=s`ng+J-P5+?>n9EH($mfxW-&eKM}x;x`5gPOerc|S^i54y zZR{9NS&oadd+lm{gVjT|k!bG{-GYqnwbtbo?z_*8={zh>q;8u4{q2R~GigKon5t}5 zc9$l;f4U)?6KsXdXk>X+cF8!UlLD11U@Bwz=W$kYeY8?5e}C0e?(Ve~nFVE-4Ff%= zZ0I0G;UQ5T!Uq8(6{+@rvuC*xa$TV-&Qh=Hl*x6ID(A|Pkt#`Q!x+Vk)L+rf zch=$>D2=L>*8VL|^LjM;YWQaGfyR^Gu16D~@E0{1VePAAlJoqr@}pN~zUsWQ@Oja- z-yc6;YoK2JC8*SBh+-Ra$FSckz0HAGXMM5b;)RoHCdPv|&M3I?j!QniP+LwF-k6TS z*#<2vd3|(kPD3`lRN~!;wdkMfRa=%KhlGoFb3E+BY5Wy+xz4NEyYq7nM$-!PtvFi@ z#qQ0~Y%RZOJU1?)$=>NV&Y=Vjmt+OoR7PFI%`WeZJ!JiJbFXo2(umi~X9}x!6p~`IUFlZe)&@d!R#xopwzukD~LR*u9QIs|!CDeV^=q3*k^^Tu!f@=k5#VIH#-uEB?5HfB84gQ#U2eHT+3FcVx=Nh)jS{hH#$w56 z6$dfm%!(A^9!?if0O7C0H8W}ir1=SY zxK9*qQ>dx%5gACv__7cRhiXX>vr4D1B`Ivt)CmK8aiHQKC&Bv5qex;cAHzO0L3A{N zOxi*@M>|TM4~WT0kbbsYv&XIk_|H6Ou`}bb!uZp2>wO0?fJRUIuIja`);Z^kai*i7Ga*2V!eL2OTM(mxYEGDX@f!%CDg$0DhS&as zh68;dWwsdh95T1Sb*n%jZ|=5EHiiwzC>~;zqXT&3Z8Ex9M#psoNum-Ew+ubTG#@Jo zMRH+-)REpXf|bkU^k@`v9RzT*`JL1?G{|j;eLNAMa4TrGH_nXkZv|V@mjPJrFyNZV zTWuvZ$>UI;?a^7UKY(%(Xy-*=jG~$ydv5H0-iSS~Lm2 zz+hFeA!XQnd+wqYP(`T1c2Yyg`(2h<5G=RNFel>^^khIfu+@BDp9-M#-RT%TfbM#` z6|%~=?te3{%;(y*m0LEcBhE-t*GKfpTz6GDeps;o+TD$x);BD1TJGw-IGr9%oVX1( zK8jm^q#(5@KTYv?-FwaVVFM*cys$YB!1$DCENgRN2ij(QT>B~7N}$bc0trG?1p1+} zY2yg90bg5SNMB)IJJ8M%X0oFT_UkxjEpWW#wz24f>vUicw_v`&vbjdxGFD?j?8z2b z>I<%Wn0Um6{Zw%!O>xJA)BW#u*_+)ax#QHSt9^-<#zrgvxmA=-f(F^o$#oM;4`Kai z(H8rz(mS6WPJ0cm#uU;XZE3txbGL%;)ljaT z-HKKKa3^q1pInh_Ar)i1CHJKAs$5q#L&JD+Q3R^xR(*$$e5wDE)KjQ*oqiqHk95h_ zYyuSccpHpI&5Z07Z1{{Qc3)2fR90lpL5l$b$^ZDq6V-KvWI;pMfuy}#MR2Uo*MW4w zN{g6(LFR-QFZ8=-5ky5-{%u<`%NVlt$DQQA!WJ)1Ect@*VCRtgC9Pq!}t1vPV}I8(DO;KCV>)XeNSGBfj{X<1n@6h~@k zR+bGMsg;$Lm2FTnD{s;EmKEAwH`>gq5D8D@_5FWru%(UaoOdkRq^>c&0i zvwjJ-tjrCjmp%GSp|9THdYSX`e=+8qry6pN^uxP7*3;?V|Hb4rSI&FOm)ESHAOv<3 zZ7&LpH5zJ@ELY5}Vas+lR;+_>zUCM~p8huCg&sHAE#ZR5g`)#T&J5H#S-Xgf&IB+? zGUhlJjD3rl9$1c5P%sh$MyjD6Y-PU%&~ITUG7r_vJ)m(}C3Yvw(=b#M^vSLfhv6E3 z#O>u0(lwb=j;L{%rQ#urTiEm3lxz(Knfix&(j2z3E=UxvEP(NmJ^io- z`^34W0J$r{=rRF@17jriV3D@FQ;T}2VQ06}lLP=h!xXvHro2Y@*_HxXd)q)ORTJff zTx(qlZd5$k_3UoB_`JgPnkIT}kBC?-H{0Xn$*Ici5o5ArFnZA-6p_s4V64WyQmR`>Bv+r*+)mS(UHjq5Wtom z*b0($?6)u`5~w&hLH9CX&ui%Hfm=ZBhtz@UyYIw%4Lyw%j)~AV-JT#a&{aHy$tEi% zkgttV8OY)yOgca!PSD9b;zb#)xPtgrL-*pMh`K-C8ffXS>H=F$M+~SC1ECu>OOl%p zemHLIz50a2{~T&D3F95L=%8+PEDxN{(GUh=TI?`056+sch#|UV;B5@FwEa{Y9yPw2 z7^t&($3-k@(z93yTcIz1pBK9_zfE(`F$4rL$<`f^0cw ze1g%*wVL8Wnh6F|M*P}JBWp>=Cv3mVtu7i+Dg$RVh!z3R#R&>S1Lg`~4ve}1oB2(c z9S49um_4H5Qoai4K0y$Vy+w;on_y+ibH)W$X>F!9h>O}9HKk=;X{DD!w$cozZrC9f zqKy4R3)Ad8=C@EdR0uZrMme>nJ z4>eXH&rlaNQFsN4+M2A=QHWe(ekhPMNKVqs^~>Olg*hL{U`gff_lsEB6DIzG??m_U zz#e}>)PkybX8KZy0kb$=m`20#8vFRWSe#nhzbn%1Apo@LqR%?AZREs*@-Vk&^fnO4 zY@-%uaIz=p^S)Rel*hZ2ENNoIT)!*5C}d(oQHOLE|6}0W+$QzPtFiBgYKOuvzq`6x zgLQ&pY;{fxVQf+GzezV{H^aCZ1NJ?l;OZFXVWeV#0M2G*TALA_`7{z(^mT$k71)*u zfev7LifHo^)PRf(juY3_3;@5o3%`{t`RN@a6Y(b+1IkZi@O2Lci94kLRrO7@ddY;#GqT$dfo%qGWDT`SXZaTJIS7_UYw_#2 z*k670*N~)cGqM{M6$d#pVAJi`{L&fJ>3U(3-94amzq5@N=8!*W&U+o}qL%bNgFyvs%O-$Pfh`*}Tol+o7XZ-$(?NmFZ7q9Cz;rUB3szQ0bE{beEikzpNeI3xqe3^}V?PQ)jN3xh4BIz|N-Jz}sT z3W4&j<&%cUrZA$Yi|v0OYa_6l_uXTu8^21{FOkLl)k^JjA~tFK%FG(68q?tnR$308 zD0A|bpsxvhru&+lR3f4mm#Pwx83t1RQfQumHexh0F0c^IWK%(oR2MfUBl^kN#jV%{ zvWC^Nik{mpjw2*vJW-vwyhf`w`hcl|m4AQ7+r3zc^2Ox=sJB|{ZZ6sVjajS?@KLG? zp{Oc37cgY4Y9f*k0D(F-L%}6?+3jwvEaZjHPiE$2wk2)9*oeb5Ysj74@fsxeNh@b| zBd0o+To36Cjby;W4=mXhz96||Yrx;h`?R0a0b9ic)MFri2W@jQm{10)O-6f}VV!4T zI!|MJykyZ$EdVDXStLNB1~-pOc@9zpnstS(s1yyJEn|kY0*nd!F=X$CCPUp=v+KY@ z?gwN;fx9-_K!~28hY4qqH8jO3uZYX&hlj{7VNNvF=XxT^#Wl(k@%{zC6V{YMuRfon-exF7Z z5PQ*>Fin(BPU#O>Qzf)0U26K$u$Uphbi+)fazCQ82wM(OpON?m)Re)>O9za?Rj(Qj z{?q62t!e%iV9wLkmuk`2QP?I$w8n2@gf#4B`8HbJJ)Y}Y_&_^TNci;;82yE(iYX32r$7~oi zdI0YzAojIV(J)2>9(pjgJXS@v*p`?pPalKpwl$))0t>c~b0#F5F3Y;#O!VWHT+A@D z0oY$67Pkp3?&1wpArh)?F^&2}mT3r`T0*x!;fR1VRdo5M8NsZ<-Ag2?(7K5~ne`dy z?mua-Uu0(snVJyhMWMy6N%C1C!C!`rm6P{mo2B^-C2Q!{jEke~Mi$>CkIHEbSf9-; zUZSC>TB%wO6w;n-G?G=VZ?!93WUzM$tH^ZZ7vs_Cfi$|4i{An*zDh=K8t$M=njpWA}T3 z(_XEP2WxgxKcK!BA_ZOibL90PK=)*#8)G~+b4kYpn`|^SDu9&j98t+7KF70dxkRxH z)1xKIPT<=FrIEv<7eX*nI`-iOG$Ze-<`dyL@xori)*03KPFWo+>(1wnf6=gCPGl`| zA0N0fKN-kEf7_j^ndcN*9~N^z*;|zhL-#k}#jwX@7dFN4I9a>p{(q>wFfnBwacl!h z6;f|JPSt>aRcDRgctI>aLP+6mOp&?ByzOfeUZgA{3IJ>l(EK*&%5&Jf6KRju^xlqz zh+357J&Gd(wKQUg0M$=Jxg(8F0W`WCVrhVN8jP2mA<%xb5z?m5#xJZvP$I#JU0h~^ z?39*(Qxx2zOdC(UBBWmr%D(wm*JK;ee(<^Thua5Q_s&C?!!0I*@O|IAI5GYRSIt*H zc#wSI01j!F<^IndS*-UHb1|z0SU~W7C2&+v+B-(;(jYG+QfsEihsZ91W)zLraf*c% zFarllbo_ywE~(9Q)hN zUi3~LW+)0rBzqa5JG^z5p{4Q5gKIO#rk?Bu+QJ$3bAh|vaUIAkh@jqwqu76$$`!0m z*^Tc&E*x{$r7VX!!cBod;_CN>&&7=#em=i=TI|_5y3@xw{mj776(lJ|hR@I`t~NLZ zZ1xeh9TPXOd>hR&2I5+4>_n+#Fk@i24$n)Onpzj)(C848kLMj9EGGc@kIrr&%|0@I zruf~%3!7&jeR84f-(UZc{Cf?$f(kx8GftHWc;`tC8oF#t6LbA@erEY$IxjSzp8*Mo zmd<>?O29J%yZH(y@oSZ5FwEF2XvEWR4_=AeYcH!8BWv{y4!~+w+`8lK^>yMgn}GkB z%5K{Qtj0$)It;7*f>Uo!F&ve{qp^+1yjS^QHRpo-cXWf@jL`D!8RuD^!FZX8Ex_?q zq(|73c^I7av286Tf&=P1$!9E^rZpxm;t@ssjW{&0dSt_8k*UOKESQ2j4p*21G|vHi zXf!j)#H{42Im4N94=wQs~C5u@cOs_)ey$vPltB4qiJS=Aw18$eA%*yj)W zxF$z-;^4|zeQFUQgqBfmnm_9RjfDH}6>X6hZ8)a|u`ZVFF1iu13|75KR#Lpiw9CjF zH%8EN0-kG>)Gzno2IS+6;HcAk7Q~s{Da7AxJl*=76CF;Q2(I!q`=tnrP29eSGVe7l zYisxF#38C@et>cx5`(#CegLe0LiIQggmy>JT5lmYBrt?JtCt@_cj?v8R&a`UJz6mz z_6#9}PKDnWUoA?kxz-drBNPVN>8)M$j;v5_q2A^jlhqiUl#jIw=4JgHN8a3LbMKdC<35gNx8r9 z>x=d~j~z`Ty=}nzwL8A|22-u(Hw_B!>tqO?P!>9T5A}H2nU5HOq9`manfS@=Y%K$W+f&>K-~u@l9n~>*OE2S>>f>=k z&nzcs@iWE?hf#zk$sle9Bu816+~r|p?0>(C?6<%)rP>LFghdLeYafjUU$Z^F*!x@U zrr*Cl-rO|(_Npt|atNt&(V%_#+|F5YE;<$vl5%K=(AiqFskXMnX50So$1n4e7u^#2 zd^W!-EpSx6O~vM9RH3_Jys7>c&Cv&$j}qYgOF_a^`_U`NAA3Hs1?~vQED8wt+4ybd z1u}UU4Q27vzxFANy63Aa(s}; z!W3^$zyG8BThCF)MAAY}&+I?!e*U==p`pF^5iG2GD{9h$<(7e;s={mA)|KclJ3a&y zB6uqkneO0Z-l{e)7hqe?P=MG*#`};X2@x!iWfNCv;s1J%bt~a;Cch%Q83nZX584ys z0I$(DYJ2IBBe6kFPMI{TECqr;c2}UAGj^x|0f)V=DmDo558C0qGi@VCdD+O6OAE5d zmARMDY{zaHLr?fclB&X5O8w$eJF(a8QlN6nOY@v$hbc=nwY7iC3+w2`J!2I1& zF(27aDnf>8`^JX+Ck-->+5z$`+Cc5KzUths?$ojT!qPJxG z9E$k&?(EUKROg+Z^3D}YNRP(uNBAd3D6ltRYMPmn)deekV?As0xCS$W)XAJ&SQ|rr zW@b7zff=;pvu?dAp{$j&`)&~k-GFDz^eX(C!c~o|pjOkT>dU-tAPvoFW9PFf-Rurk z1ec+J13~CNVhd|>gEaImem>{(9CBKSJ@t6$N6$VOAduVGTc!l`##Rz*oXhj{z3ksK zrxuyuvuNoJD|>Z}keNRTVrd7z zR_)%Xje&#Zw7aeBRsO@%yeCn$WQmTGiZ8?}x+p7<@#0&o0eq%lzs-nvU(8z_E?sck zZrxvw!L-{LlQlvnesr#1sle1!4gA4TQaGIh{(XX{;fA(rFIm{eWC3QqM0a?L6bn3g z^z_B;64M)ijrq7|<_&V|lJG+mQ-+?fDo8-8oGXR=|Cf$p4RBoX2Q6(Slr%ug?oSa~ zH`S3`#(siNnhdKlq*qLO1!qcv_8S@PVxkAgj` zuK>Mhb>558?jDzhadvxt0B36ODX+=&MpUCW0J9QdtvNM=>OWsVwE1vti(3)eU- z%kbsu!|4ZVQPhQ;;^iybkJf+d`6D6EPYe;qwCR}~#o#?LaPFkECdDiRYpKV?%>Pt% z;=_InWW-(*lRamqcCu~m5WlbYL(E+s zSlF#H^U@+qa+79|Sl~i|3zzx(Pz?_Th&`Z;K%M|iruLr|qcMQC5FxAX!OL>^)55h( z99!Tk?kYZ?2tE5!OqKg2bfxx$mZWyctw!X2S=RIQC3X`0Q_03HeDVk;Z3qC*N+?y6 zbMC2E@8LsUz2S4Y>kV40sS%8asptDpA-#m}MvS8oTFECbkj) znMUBQKvJLv@&W1~y!x4p)Mdy}!4yPg8k#M!>RM&zxas5N47ZtOiRy}%l^f@4NRRbw zS2GVlPq?8;0#9ckO4c%xEwIh(zctJ4X`0m9%i-M0F8ILupY1q|=_Zl6c47 z#p$aGas0bQseUHArF7S0GXf@KIjWrV~uj81~DUxg}Puz;+` zzZ76jhM+|>hin+HP~#Oa-h3gxP>(MGP=IVnA{PK)lS&vERxQa_112zjNjD}{G6%89 z^f`qJaajpm;|f%_a4`pxxesm;PH1gC(dbYZs@H5z<%5Zuq&n@UPHmaxJVM0>_a-M>YH_}yq-8X)Q}CxFkZ$cccaTpG)`;dAL!;H`c%ZnD2A!gt z-sz88f6`goQTIsf;9HoRG_$^|de;GG??DmA`AgJMI%++H@-%|RF=#ym_-T~(z2K4z zy7-p!GCQ<4(qhx69I->qQKMNh!U@D56Z!f}u|JtGcq*gBFO#E>3Krnq@RiGE3Ripu zIRG-20NCqM-Wn!{hO(DHh_E+9>h1zV&vpX)ZbOcSz4uy~9$GVBfvW*Rc?pEGfN2z8 zvd>S3vei44HQJuuiSnaCv$(D6Ae60O_cA$amIUh4q2Gj)`e4XeOLI3x1v-I_1}AUL z?ociYdp6)(gwWP7)7uC-YxY{o*u!TQ<5PEkt8T4Zu+K#uazYDQa{06PP8^tcSBj-C zu$mkO^ZDev65P(8^C+#wZQH<0jND+TgdgY7{&%X=9cD+h{NRDk6*ap)H`y2_Z7+q$ zFAdFoEA&zY%i|Qjl3UJJ!LFvB;UYlcDYO1{%*NFR9cN5%?cEglO=PnQl`JDalw$2Q zaZl7+V~q4zqeFr~zFdUP7n=Sd3Ti#;6`*C(I#^ZS^cxel^T26$^D(9na{BctYNm+Z z0s;O;X3Lq?+x3J4t)VmHW(UcAez!VXe08$=;%U!!lE4_0r+t{l-J2Wk9d8*)clFlt zcj_!z56eaz(2hpnS0gHvYbxSGD!Aj(3+A|~UC3Hs}TKaaI?;N*Ztu_^M z7Jn5TDTba99X%5nDd5_%7^X~KbZ8sna1pH^oHotBPcyD^DvoS7KdjX#jo%DS#z|s(5qy{u4!VwoU~{x&ijqjA*WS1UV_Tg zV`eIZxKEgDy|twgV>*eta>pUuV4kky#UUUt>@wNtBFW_Mfo4gvW>cI|9nVpJD^ath zsQZP!fW&70Biet7RvjUMZ#=yZqnwh$|5#$0D<7tPAzFm@9-kf6_dA1imlyqK%>w&R zK9r2E`$B8g9rUF>R|yx&n22{f;TZ*Dmk3%s1?F~M-tTVF^YmB*O8T_c+EwX4b{k#r z%hzx_vPE|;>sO~&Vd~ew&X`5#<2O&|cAiQ7_t$B~AuVb2k57st(Y@540PsU=nmORw zoPp-cpvP*0t#+j%w z$3suf7e@MXF*@3Ucs^KqkTDy;Oxf8>H1ue$!xFo5zt=MKYlW($RL?@xl1bW<$j$-~ z1q0Y+%2}abJ0py2<1yDDA$>L%-F(b-`>{iOP2WHxdX@%TC&iZ=ffl*Wu7wfJ2YWT7 z85-Lm5Ce8!4v?W9-XeTK%uS73E(wS>&bRHg>D`Q)qoH5Qrl+sLw;+I^q4uh9e)H-W&hNw^2ua>wL-Xc1Kc7Hnie&k4s@epEk*@{NQ3K#%;58oErRj2BLij z-fTsEom}T;Oc4JRp&SP)bDT+cVLT!(c4=W(8Rnv7 z*@Mc0vqr$V@C;{2_(;_AvjH`-etEnR;L=dKR&l&~$F-#k+xg_=fmi_^}BOHt`S)fE}Zhd@HAzlhw~q9F~!guPAis;V7xc8Dqk zlxwFUZ78WryI`4`vU)q{O0&V-hf)xuQ`&I}LeI3Oba6=~e6X%J$?hcNw1IfUAMDeR zf^K8aYAAK480Qxq6MG)D7%?0^U5raji|h*faH-R6SImXev4>A5%tFHGZaD7O%nvq# zMS3Q}r&a>g(<>>BDaj_k@gb_w-^{Wc8fMMqU}O z;z3Ibp?PA0g|bmM^uwgBM;x}E zW6Qy%8qzWuG`|1ZVPDKLBSm@=I-yzO$ilS^um7|y`}+P0gr}t2ELmZL>s`E#jZ^+< zgPZw^cuR`qYwqa+(Vm63BbX0Tjg-OJQJ+KM;BCOm4UK31dSQN#5bQotXj~E6dt&$1 zG)whUQ~bbxD|6>>_+#(I(`fg%?e!K(`hoi=P5w1BQVOOiCfXNE-GKuRB)d}~_g7_; z`4C%*yC=nBqyg`eDDd}+8?q&B3pTpy(-w)w7N2mPl@Ls5+&EkRS4}HDTTNIok7%hq z5Tk!~kG9UrF*U7zb)Ozd0|fq7r(KbfL&y*3Ari5arYsVl_zpQ~7z4LW&4u1SBjpiB zXn|8B7RI7-mRbEs3|~!r^UsHa{yEF^%V8ESJZD`$|K&)K3d?<6rv@!OT`MB#uaYK| zp^Af30LPDPd*wwU44f5^X8xpHzg#G($iT30rUJ?dY4xt6r;Ly;C*|GUPY|i--v1)s zhW`0AzmSxFY_5j{d$6EuO-83Q#trIBNry+6@ zOfceUJ3!vGO+UlFr)t-?e%lZ}1q|v5SOaQr30m}5RCBtUY3sa){<#9%ufWF6kWF8| z%{Q#jGWC&YiN61Th@LV$y>eal2ch+_FW#%S=k`nIu2XX#cA_|MC03QLH|#S_ z`kLE|s+vPwQhO%sm@6^(#X2um1cb(u%sCxpcNT=;aZ3!{K4PirX*)W!W{l5JUT)7D z>bZASHrR=u{nTdSVPZb@Sk|*l9xH6~pxQ(kOPw>MsEDzh$41}jT8gUl_>vpr1O-3n z_jBaaeuZIFw3e9K@%~Q`AhQo?jJ}u=66&?$IG&)-oWEVXen@*n;(R@evt!x#Wy`Sl zcl*Py*j!Z{#2j>6m_ru)=LLpYth~y|<`$vFjp)ANs|P#Z$$S318^395$$NcG%*(2k zZHk9|+Z#F$)diuZ73^8y{9W(I3elJC7n|nTWc+#O_XciseahvhPaT122yOHP{ z{zpxe3b9tjMj_t5Nh%_`_8CQF@4M1q>YT5=0~YCHDA~rG1MO6Ax2u}ESXGLS5#{A+ zuk;QKC?`_=M>^^)YPz$w$J!itRvTtBHPGZlUHAMf@9pa$by!lVU~e$lsja$y5}9HY zK?iu%jE7a9mFy0FM;#%DW>;w)2@8o`}DQ(&x4O4*!mO;TM64E5QRmYr|UWhBmsh7q@)N z&MKho!jJ5oGUYDj@0)-82Yo%Nt;V1sAFPvF$1EBnzeYl(y+-2`yTNm#tarust#uGq4_0S z1a?ujYJr{HB*iGNAdvYwygg85P+Au`-EiaqY6FV3x=KFRepkP+eA>jZSpb>N6T^y~ zo=%VQtu?X%5LnY&jkoik;f>?%`mL#8XX1mfymWkr8XaAw>$H}3E4Rm_{JFt&YU7FH_g1^AEMO}4vVI^!dR0trpGA7 zH0;NpDI;M?$G2|KQ*)$$TlQmS`n?yXRSo}5AD!5)X(eEH{Ca6Zt#XWYGvg=(qqtb7HvIHuPr}nCyn75Wm)e7 zxzIxLAFD4MDwOgosv>B>nhSEAM2fG01An|3DI2W>!{Mg#!R|rS||~r2y@Bc={7| zkN&dReSA4*%z@xIrD#*B!8^APu*R$Jf!+~~Ot}0~IJ_5{7s>dv9?|vWyYBM|uFrp0reh1BK~H)=G~BHXwe3hPp6 zW3r077CnBqQ4g=;qkThon7k>7byuVE(_jcI$08akxkwL$i(29zVV$IRh!Rhr;3<*S zUBh7$nD;ca3S@S`)pSy`6X4{_unnXhCZ038^#I^HA0Qn1<7Btl=4rWvTc0} z(Bu~Vt)kqZe?Lmr%h|PZ%+>P%c`d&E9_G@NRm$Ugi<0{aCsWZT$Obp*eeNc{+dqW1 z1nr^ulK#K{TQ_!P?{PAqHT7Df#3c^WuC5K?+&^B88){|$e+f8AhJeMvqVAiS8x7Os_5aKP-N;$V@tROy8)3x^#%#HV?51fX z3|ppVKz;g9$X~Cp8IfO=nfco7AbIy)Cm!*gxPK9D%2v!0>^9|U1R=E{`DU;#~MwE-+se*EAgJi0F3C2-^$>L*kjfzNV zrL&W=RDzb!g0uP|%c0650ApuR7V)u;0OW?p6!5XWMu=XHU7(eF88P|B3NP;5xxwH( zt!m-BEx61J_~~DM;`6KrTjxfd4~hQDePpk&N|FER2!Co%?_*t^L7%oB> z;@SR}W7G=V2oPL_oh6pVvT%>8ur6B6LP6b@-q3|y)xB%wvCY-dEo4)pB4Z4_Ne6js zRz-_}@2U2`?qD7qtPYxEM;I?Buy$M*am4{=cRROzBx=rkg?)({wo*fRz(tuqo)-Na>2mB6 zTCf?c$d_UA4OfaK7&{53L{c7H2BlP0y3*v56kMo57o@FBLz0}FQ1h#Bu`INQU$9cELuJ6m{=b&6D<6-cR7Lzk%hFy) zfChBF@v1Xxe(nec9J_(Rmlx$K`o92Sl1g_YU}Gi=65~R}INw}FiJ{!fsEurf`huv( zI?f5tZVBH#BwZABirm#76z>odk3V*zb1kr{wA|butH4(W_FkU3SU%}Gx}{1<=F9WO z(9`V=xd^yf71J<!AH>MV){M>;}IDDooUn>2#crbt}HJ0l{dM1RB?yuVhR$9?sihp%$cS6f?OBFC-*s zD7HJX(is3s#BuG3xMU;1XQ4|*Fo^dAg!*z|g;%NK9JJ5E2(1AylrhNyG0w5Sy!dr^ zx&e)>y97v(lumZpb9B12GR+mYK-N2Kz)Dg84`9SXpOj_5fD%k@RiuYRSqhg^md528 zflx`MtBg(2+;d0)vb0!IcX{!Yve-%Ko`P&}fc$QB-Ff+(=%G-D>$WGiaF@2Ujg z!Uak~eC=OjQN?J_yw=34vW3!ltGM`!AytifYUS(DSHZ;1nu-bk@;~{Nx&1pb{O|me zOIbACq3F)7zPIkmYZW|VO&P6l!`oKsf?zqVq8CBB?q$Vn{Amew=Ga?^(_ zazARlrUEaPqxG2hTbADXN;^}9v-A&B7@X*7nZIWtiVK-(Z-$68cK(pZ2sXDnn4eNv zti>)b30mTWi#7UY;W1YLnO_PnK%7?9cT!S?({58r`f*uEfw2@^GJ>VQhXVR>?9o#t zwBQn>!fK?V*nr`)hSrO5^T$qJ+7{;-l#F2Z1yhT%UPJj(T+$1rg<4r8QwhaTSgB=} zTInajjF5V;$x-%lv2-JY+cW zCuCYG_k+*U^n!C2FWbxRl4ySeczy!hsi)}I^}$Y~>TTD818(EL1o zuS2PgnH1vc<%6H(>{9uc)_rGtq9%@+{%j!IckiP~6^=VEGvTd%HFBq1^uduHYZ3R@ zZ4ban@k689t-bWe*;$22az_6aJd?wN_7Yg&if1w;+lR@$7s!Hq7rHQ=6jdwAKQ~u9 z;>(w>R1`!)#3;pYVp7SJ@<%qr5rA|l`M7cyAA%_Ut{2zoEu17Kv`A9_0>^%kGG=+k z{zC0387A1_peL0yt(R@zD5-Owv&3o+mj=?c@|i#g$>=+xWhVrKCPsjidlT9~Ztn~< z8Oybgf#_4He5aXGA|H4ANnwKLY8TIvc+b0!dOz-2+84WG?O8dkRGwhjwLemB# z@EF~HTgSnzK{ea$#Nd9Bi#vm}!qq+GOV_hfvb$nG->bg=-4Tx3nVBos#jOOoYg1Rb zj^O!@-DuyDEpy8B>2~TDj5mkfXDn9AfUkK6cf9DRJ{YNl@ z8tLYP)9XIq7L3j5Ypd$?HNKhAd*qzg6pHw7fkp6(KZ9voJWm%{(T=a~`Z#yR$$$Qw z{zp?7dFcGW5zaZcKhJ{J-SYj%Yivp(V8m@e~3 zs>lNN$K0ygoA#Qw9}CFrj~||deMB|zr{>XyyQ}LqdR~S;KJWbeE4?>i{b!727jMQ+ z3-8&#fB)&bWK{zldU2dMO6Yq6J-p|xTxKP=UzN*kh5|-Vj%omyQr!3~r`=>Q{1xXe z5W=U=Kpx$(W>W!IEqmULAI0|r-9P`qlir6wwx*(5q?tZ*3t#-{(0RvCm#XL7{Ju8} zLe1H_|E-PowM}@>Cx9}xAf;7ji*P)_l6F>W;)!9~8NNc|RN7F3%Rs=QtdCzsHkI5Q8k2R}yT=$H0a5&*>Cn4Jl zPM*@q=`z(EF<`5e-^c{XGE4zp<>3!_$trkGUn$&T+h)jiET4T)j><)6%j9#7gIt!&3g!9INuB5EV^{yXX4-WN%z8AmJ4wN2xwEt@F*>eM6fE07-+?L!|s=3of z;Pi%%$56KT>mOY4n5+>@Wj>iO=VaAJ&=HtV=|7Lv$>+*`(gM`H(TYQBB_^)}@h1-D znf$4X8n>7#PCx?Aq7=ycNiuRibIthHO$9kS_%kgu!&B$RUj~VnlX=O%PyyH19UNQr zbp6FH+6$3p#u37t)5t-k^pdsPy$&uKLt(X$@5o8slp=K-%C%H6M~b3$%Uz}a^FTD4 zQqXNm;j94NjEaR?70pRm~2jbag^4NkSdX z?)8$O+@v!cb5U*rUoIYW8&STv1Qi%7+yzm<#Dtf)QV9IF4gK4B`t>I(Qx#rvr7aYuq27UA>P3er}8Q^A%}c97}Xx7!YDFIuOkKbG~Knn_BP}v~u6s)mh*B z2OZJZT=Mt+Th1!3Z}D=<3)-RlE*#>PEG^I&5^h`{K1R9MGmTQ(*~|*(vH=$opMX` zl*5)NfVfhc0Q-fE8%Q2@*^gOlSmt> z7Eb(jD*KQ?IUIN`#BRRBMc5SU_czk*WWMFLfwZM*UKncja!gpznW^KkmYc@C@vP+M z$5{4nM|QaR0dPb8OuKRQxXsHKZLv0cTd)4bT{xqmGH~U%ASupLWrv%$zLb}3nLf@9 zw;4KqKJ~Ozer@e*)kMlzVHN~G4oFC;-m__(`xC0;Ev8vFoSKWg>h<*`A z2)2m(8#_=mWIAHD3GT$Z4a+LYZsWiys+-MpT3j`I1*CtuH%Djr>Ot1l#i#yW)_(XE zz4SxxjyWrPx!tZKxxh6)c_~{FSl?}G;`hl2U1q&kf0mo`)NRgY=ehPW`>~Kllc2GY zVB+jUc+E9GDhHo_iakq(BNNY`%w*OVCm3_lYw%YTP4mvh)(o*(KCp@`~4Rb^-eOO9clRS zJZ|`r&3U~lFyX*p6>heh_FJe2-^;`gRgx=VuoEGxFz3BMnvMci3(z6g@!tgv)ZF|J zm~r*K>t!Vu9NZ9NNv}0Kt|O7ArUzJg;!2m=Rw5N?>ip-rEATGA;-9Nv9zLPMrKn+Z z*MThSziEx3Zy#Jb@*jUCAlpjYoI7N1=UH6}4VaeeQLHkZb%nUeuB@TfqT9~8Atl@v z;BA?kvfN}hFobL7c3T92#Ik1t=(1b=N%^?=4#N;rBd>Lkwp&>lg(})HI-i_L45U3E z{r35T&W9Y|#DxT1Gt5dB1k;Bl=-IpYn36=O&Vn&csF{=IS@pfUwIZbSNg&j!T3T|X^xnecIE7m`j0`rYZ(&(RQ@{@vb$*uD z%^96k?$)ZzgC;C=Si)2DZN_$XkG`L_~8fsJP zi9gM5Km17&?sP=rk>3%p&YdvCYzZWB&_5-nN%WAB>n2;%v6 z8oJQT4i65JFO?(a3B@1Bc)X^!7)36c|*Ha9okylUnKXi4EC7@vm{!luW5 zG|uO%^N|epSC?6U{GS2y*xN{>p#op;5cvQoGxx)IuKaw#1;?PlKHVta+zKhJ zrT=1lyXDl+M%?@QP=O-`I(yh_#D9XDHupevsEju4PMTo3IQ3S^G>6SUQ$FvBlt|yhb!j%_qrR4)`G;m0<%?Jrq6{A z{h{$x^TUZ>CVZBaj{JTluot$IL~8HZ@{N~v__LqmpMD^P2za|5vmbo&eRK5OKi`fd zSn_yF+nP)^(@$)C#&UCG>!TQ^4^_`Lh$wbxq~^USh0d~P}# z^xE^1=>EHfU)|${431>g8lYC*<0{FS=IX~o*m6lpA_PWZHnt1Ia=e-smtLgoG%Vdg~@%+D<`$Y@; zkNnTDXx=l+AJt>uZEsWe+dPEPcdG%Sfpzu6)sG*p{&&w76=*<-V05Gb9S>tt4af=} z(qG3G!MI=h_Lgl!a-l8!HD7i<{@apMw|3hIOK$OAXyIe>$P%QpY{JI0RD<>TYWVR1 zYq}wJEM2Z>|WVekX`$da&91H&uBG;jjb25%0^K!3k#mO5dcnZeAPU>0Rq%riW| z>xL@ev2ozoHu-Guem@3PEebCd1WdOal(zOXR>s@^EZvjKP2wx5W{=)MWl)v7~ z7aeZ=enECpSKYK$=x&BsQ?W68`Iq9$xY)MmxAs|NW;(j;W8}5o+RVmG z=UtP|Ic>g6tuKADS=23X_}qfu#Y64l&N)M30Sn!;2f0n4SoZ%6DUBB8;18Pl%PsnZ zR?+gl1M*!5Fhgd@8g;OQ%M zs*(GD>~vEB`Mxs3Fn8neIsUEDZDP5bdE?+W6y^j2LS$f$6x0f>Tb7w@PMm>RX?gx& zKt{qs^orrQa=zOk{OYH{HK1ih_w=0tlW`#64$jP1;9fo8{(>F&BFaIjBBnCC^{}_N zQ>}uDufc#8DNZ5`1cdBVqW5v3_3=)N9>lE2)Lg~hsM0tb?>zq+X8gGY*R$z40)JlT zc`a=FXSVe|LcqV*^XI4F=@ZDg2^I^7QnFK4Jv%4}v8g!JYcWhT8*^HgY71F5K|{Og z3fqtz$YZILP;scJy@@c4n6#|)uhC)*+syK!Y~4vlPfoCjY6Vt<%(dat^8|&Z4~V`1 z8SVamLdsq7PJq;rBcB@EG1^a_w=pHp;q}VI#(8CL^BY%foHKxKHbvBcrrx0y-(VD% z{C%TQ;I?8q+IJp?>&}6^wqR=@!mr{fP28!p6VQFZ4}YX4{0@JU4|A=RB9vF&%W@9j2 zhogl^O~PM!Rd=s`v10nAzVba7ABo(JBj7F|IH@#SBi~Y%3e!)>9hXv=zA4t@VScT< ziQ;RI(}(Bgp)<QRKf41r5gK|;G&7QdBIRfjv_vX%8Sbz5* zuOqi8e1buySs4x~T-}iWe)XweM`yesH;|s11xl@e zT1L)3BNFOY7)lKUQLpf)z-=*#83alh9PQ@!q1>UmjEKec-u)Cs)Vp@rN=5c+*&VS| zOZtapsuUH62xiQqMFkU?$)wtdm#5x;Fdcn=<=2O+*$s10a!}BU0Ti&w?Zb-#1!vy?CM~^R zi`?kxY}04^7o?`2x6m@j5poN#<*0f4r;jHL?$C>yG;_|^kT;^iI`iV=CPPKfe|_vf z|8CKM=Fa91eRth{9&-QRugP~DuoLDt3fxaDa(_93>krL)d;7lKX=~NRJ@GUJKy8aV zX9)(2GlnYPtvu;AbpGIwEMvGVV<`Lc@ZQhw8Z+J>{rvt+#)nIvKXhb#Ec85PSi0mU3zZGq|>u(KG&Z5c{AfzafY*t_UEN9zdJJj-2C$ALFV6QU;Yke z{(JxB-)N@sN~UR^1{ZgVz?6WQr|>KZW|9FjO#%fNpkN6$3LUhR;NlIqBnf_v0l!Xy z`;FCFhtO+nzhd}5vOU0q^+b0yE?R4`R73tPpUFbNK7g#z=ms+G%=kk8Dq;LKFrX|Z zA&X#^Wnw#G;*@3Tp~f%OP@>eNNm=GmBjzz#7V#q%Yt(b2rPT|tr(a7q?Hdvxh{?ES z5ugSps`1B7jnG*&Ws(}tLT0u@M2Qq^M+gQkRA+Gbn#KM-!iGHAAF?=R*<9OEu2Z(- zq*2Fd*-inTn4~P{s8Q#b>K6VsP|Ow>8B;IyN$clx=&J zZypcZ-BN=s0~1#8IS)rCzw(?ib9BnrY>(fg9?&{I zMz@AguT3aT1At-h%wtoTug{WKz?6Wg-fO-FNWQ{8W07ZbqArg`b>>9Js}~|&6I#Kd zXb-2B2v#GGX)Yk9j(Jg}Gv<1b#hF&AFjj%!6>!*^vs8+g;MQ1d%=!iK-xegTw|Gf5 zLon_<;RMzsr_x2%y=Zr3g-M78m)`nq7J?Te%=8@5VUgJd3Ahx-#=&7Fnuv!ZVEFol zP_CHrU2Jwf`emePE6Dx>venOuq*8j%y13F4|CxGWrey);8hX0dw<`vmJB*~Ag5v=| zKNY@phWL72!m;nG&*rYV{M{nnVb0kdw?>_|AH|UYp|b?E(u15*z-aaQdj^EzNTe13 z#sL5vlrnpwj}>u_bDw}p$hk8xGQ;ZY`lJoHYkuUe+puBNj}7t-dF4OytiIN`Gwakv zOotyEe|Wo%eV6?3cIetr0AT>?2Iml&1INc9l$2MzX1qA6tqxdj6)m-Zr4|(eGY+^lUQo7OS{4tU7YeLH zgf=0QN+8{6y7M#17-q5)11^K7aEWgV3XO&Za^`xKG)ADx&{M-?oUlaAS zCMJJp{Lh_9`McKq+_lc{zq>b>=*>+HQ=96TT`<*LYqU`MwcUZK0BEX$ZHCbU86-Ao zEkEx1^%S5|>uF2}(~~i~ef$ij8yjqYH8^c-e0W1=GX?NMZ)V^@?|W@r&|D#4`*x6> zVH<^D{En@D_VZTPUoAT}9;y3vQ`Y7@39YKGW4L-X5@BOjv!RJB7uRE^{lyqCo`e!f}{QLx?B;EPuywStsTX*{k zn%cIm)3)CF*_$a4ARq5;`S1P9KNB_@KOGFhzu1h&Y{A<6`}pO`_lcVcvMoO|#dqhb zKE-oJ9vZJ*#hR&J?ztCF>q3~A5Tb3kl9fM#LBpB=ppPSSYG88ATo*PGHG`qWwo>uO zxcg4QYrD;h%PV*c$}q)yP58wqRH|6ye(-`L^0=zM{-+amS!)lBYa!|W5Y zZRcxPiZ64CPNIE)-{7+;NnK^uPtMz~n~=EsQs$5Ee*=6{20FJ|`E0iP`DX9l&LKc8 zCsMs1rFuy)PEXq>PId84OKc)BFU>H8e70QiSi5)l*4b4D>^2wt{QB<6spFEy9n6fz zmEkHQWwS5=CaM$HZ6p48@oKiVGci%EB~IwSbA>#)o!Lp4r-vhDdvPo{%md{eBVxx*#d<|UUu)0mQ)%N%>Mk!hUsiSl`qc^ITU$XziQ^Mb8H52Poe$~V! z$Um7KRzAM`&Z(m5uazFzku*YdDn^bKJ4;#`N}bABNfj>Fh6e+n9WyGlPRnC{EVrA! z>qiUU=ymj7V}@5na?bPhYm>GljT!GWIW-P$;7QkBv0imO@F8o8Wf2EMV($fjK*v&V z*%aG!armqDa5tTEC4b|cCvxv=Anu9tvw=+}%zB{7&w;;!xK3BttxhyQ8avky(~O1o2gOQhtTL?Xn3hxw3=Tp1H@mV*qEj zQS!N^`GA@5xFflL;8p9oAp38{4;AOWAM(u}$9?l@l?JP_}MMspS^4 zauMximwjqXnX^I(8vhi|Hac#x4nnk8FkSFG+1t;_7X*BG5J#+Ha@8uld##k3BAT)- ztzyj_wf0__<5@@F1j2t`=SY(^=T>}!X>ly6#jw>(b?cWx5dxYY*URPiVZ!Qg1-lHv za{KhS@2~oaUDwb3yP?5{hYXI+dUEU#sE0g7s1?u0hAFs{U&WL&4ar!pod6falYT@e zQysfh1R(;BYa0E1u8eGhfmiD7kV@LZzyQ=r_}xdYzLSA*2o{9+;t+ydzBNH_Uq zbJ96e-UZlFSxoeZbjRZ2!uXC72t>PN(|M5h=c(HxROqHIBA{(VV}yJ)WLurU<$tG* z6_nC1={A!Dq~mJB#@2)OgL=$gkw^hpcs3Nd=F9_|a za)=1AM0%MpmLnA=chX3;s@q=8%mbgqF1g2EQ8L8XHq8Tqf1Z@M901sQ4tTJw6W{&@ zj~)l)830U)R$&G0Li1#lmI^X}jyJg$Px=sxT0p)OmXiVup!=-*fXlE3eB7@g@>MdE zbTOp*DFj_Efdpq2Xp2tt!y1Gd4&zRsS(vfP>r7$;e$OTWO;e3sX6^`17?=5vqZ-IH z!179-o!!M}3#8UW!aPH#%}qoxwPHPWArG>?_AC0d@fVnw-*#=Xel^ayZ!1w4j!Y=4 z!dd7zsb%IeJNJ1+_bxF}(GonpT8qqxmRWvf3H-jBkmHz*ge{U#+gS$1jGh6@YJ--D znOC~rxf2XFK&)&I_DlLn(n?OK$1sR9EkQ9h9>Z&k$l_ zjOt3f$GFslR5^HFT+DA8FxuS%rV<~hNYfA%P9YAP!~bGBnH*uMtjVxCCT%sO3iwZ!O7f z-&=_Q-A5x5N)}w-OQ|BJtUb17CO5DF*slwPPTpV^?QAf=)`oMxCX#Pc6yf%ic2BjO zS`w$$+N2wOi&*V3bXpMDvQ6!Oy7#920VaC`RZ5JX?-2j>bZEer1mVqmgU;Ip+BEU~TdcGDRE8*St=2EDD72-EGRZ*xJr2MT7^)!sgvTNtF zv)i<0xduf9vyrV912fN0E#{2_Y;7JeGujL5!)w5&J#AzzN27M)5c5wk!RY@Cy$2LF!R2+^9O5mnrDsh{UHuCV_Wkq zdYgc9+PB+o4wt;t-O-XMma|Gvmr`|NlfxnyV)Cgi4}dAtyM*p9IK_)fLHaofXxChY z!x4oxv{b}uyn$@aPvCm!CU!c_*}6)Ead4s2V7;A}7Jv~b$h{lOq4j|@x(={WnqoDB z=T!_*rG2gz&^K6g+#;-QIVTj`4}#E57@h*>C{7M9RN|&35W{=UOn{e9sV(l z&sS5I19+ArUZH2^B+!p1&{3FfPJ)Rffv(D=*XY1hgf#>lZc*9%IR?^Qrf5`_k2SbN zfw`VzVXlJaC(vy4w73TJ35NO$M01fQc|&+-QFncV1x5`%)Bty-rc@2^OZCQ+k8!1A z?xSndFt9{wkJSKu#s=ff(-t`zf@W@YAZ$N4fa_JU-K6ld7M$69?pvr1Ef=WhCmZiF zkW5-0AAdOGUE6UmNAmuf9!Hji0x-CoYsuu`-47F|sLXx|C^-%6VvWP40V-yj)tHvb zSxX!ma4>H$9Yr26?^rEI*h>Yr5n_~{r2T5J#d64T0(#JVLeQ$VXAM@40*2y*RXE5@ zpUn!)WR9p9g?E@>1EmXOJ{PbOJ@)O>&`T*63%5-#Q{gH(q``C+6CKY)(n^uyyfx&# z`peZY=8DE{5T=w3V24z!&4AVF254^sWIm0;L}+CK%F!f$RFdo%hKf>5mUAhV#srft zbRq1Xj<%D5Ms@-|H}Ye8!Se-G@|YeEVklJ>2~MP0_n7zkC=E6 zJ4MalaUBK*>{d|$rK-3mV!Cn1fCp@1S1>F zYgD)YAVtU*%T)dRxGs{ZhFJ=NjiY{*dVDV$s3NfKmqIomyI<=d1S!m3`&KFLwb=f9 z0(%PAoId6t9KiJpOmoEKAcXNT!Qo1SnH@lBZ=f%Ef6^CvJUphMBfr%RZwFpBZj2+@L3vzLxT%Rupvf+ z_-OMvJN~8*{Bh@4eHYN&qpJ##>;F7n)q}Kp(7}19-JWT$9*E~_?_>}tfPZO@e z0D#8A#(cK+($;sCjE*C07Kl>-HlMYWh4XNo4;N-ycv77OaXnN& zS1d}R)@pL?c%(qU?6G#ve+MH;GScdvNy(0c)&;moabvL z;q~*H^^tU}*Dxt%SIWxo{;-A^qS#)kA#BtWmuo1!T2?Kbq|w+{XraA?MPDp4Pj$c< zVnRAV$U)c)S$)tbo@}-1-8=jP0>QV0SHQtH!eqF_X*ra|mDO{ERT*N5d2xN|MEo^l zBXNA{fsLB1nLY%sV$RrnmyW@8TMlQg6}#uE3dJpjq7d%U?!veY7L2>Frei(yHd_r) zOn1*bHbx{4o-C7Po<4&A>=K_mgs-@EKrbYCh2>?4T>?w$k8U7{5Ng~2sukjc^th82 zxOSKxlk>Tpn9ezH>+! z$dr4FzPL}!WV2-ZF~m~M=1UfmpIP%;%t$$!#if{;_43ULnpF3WHSe*R$<2=L6P*k$ zZp_iC$ORrh%vj&JEzzv*eMgZ`W6B;3cOAmko=W+4rf}M-EbqjeKxpeW=5JTo*|_qm4nM<};!ViROtE7igfH_=c5j3~PT*(1asi+P;x^vK z-BVgixkGUUWj>n@ZE$%^*qVaid}G#oyc5=rXMD^pXINLAx|8fuON>RRHgEjicY6;_ z$W%3M*y3EWEiur%thg}L-Fr`1t#4J>o*FB^*@oL zf2nHMA;;ZOdvA>Z@@)g@T*M1ysI<(9tD5 zv$*cUp1R9V>#pY4?O(j_`ksB~5<@Fsl1$3t06>MIc4gDPSBvZ48W+3nCFA=wwyQx* z_3Ql;74=4I74)nerJautV3#91st!40_BPlq*|#hhe^SLlu@+Cb$l{XRe#t?fCFK(x zBd7_i9u)|DUn&!Fhg??7ag^j@D*c`vT4A$jqHIm%F5J+YI8n#Sg>iG^u1$ZReE8jH zwR;EL)xkA=9V@muvco?xKWy>0xD^E*>!Qck9zB=em&S$P67`R#*8&*{O>lLx91w?R zO?0ezcKqJ6o92#$E8bkHVzK8Shlg3${BgR3L(+e*_R8WSD1@`>d=^{a7NVhO(DDU2WdM+J{i(AtH~X^<;U(0eLKW2)-J8PihRs>6p#rFYHkQf}!WTK4zAjr-hAf3d;Z`5-{8VG7Z_P>GuUlDQyATe<7_;V{$4U0%)kHWOig3d1kBuACSDi!v1SQ_2V z{Ck6cEt18x>yfudcVY0odU~v}f&ENl^&O-yg>Gd4azIP?`e)Pa6F;(%a7WaIyyEi!`TaG5GHL%B3c5O_{ zF|GMCI;DOoTRZ?H1Gp=I?G*ugj0>u{4)2NhUa2isV=**Pk*o(Chsgz+pvj2YcLB*; zzv*M(y+!*URUIUTh#CLTjj{puYq90`0m@@38{fdT;hOzRV76(=Z}b#@Df_O<<`)+{ zqqVQrlM2MPh6bu*@9cgRvw2u--a!gfnT`vZ9xi+ozpVfI-=OHF_J)D`&p6~E>Hpq> z_r|ymlqv5i8st@>iuM|qd__ZTL@zcfiUugW?PhutpoWy- z8jsDe$@

sy5 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

n*lw# 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%0A#N=&oY1sT5wYY6fZ!`lG4(z>1+1+ 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 {j9NT$OXGaboqe zuXDd2&!5#|uOGe+OT~a+yH7iYPOypPs<1|hW{x6Hv~6KyNY`6ZuF0@8q#;P^0346;oN8K z&(0Vvo_N-+sKw%h$&Lw!gXmx!Or?0)CS!6U4C z)SSt|?*s7k@O=<9Zq1q0BM%}gz2B0JD9m=f-vuj@&*A_pHQC!K2WKvgN*Ve&hKd;q z^ogy3>xiM0-;*x=o4H-y1hC@|6bK6cEPBT7Y}ZSOdwewKWNLQC(KWj7zoy*!nQ~?3 z+u9?s)cxx|C2zTg(lV#!3S%$nFE(J%fyO8GqZGIdv{aV8nWulQK-7FNX#bN9vjiEh zDnHeq`6PG-wya=NhTJNlzRDFw%u=`U(|)dPT4lX_>rH=dRwf^2lu&R2 z9nZLRvGaXTpz#}=LAfxh5k?97#ZVg3+@Ev|WF$o+oQ6sw;@cD}Xm;L8R52v5TjVrH zR^DC&YTczaIuXdei#Qx8ESg0a@%nsdHMM`vEKcWcC(7&3RKIai@Sf$PL_FU0&r5 z(0AU~UMXe(T%2`3UKAf_!{frSW#?Q0QKg$ix57$0k(b?c4bEu*twBLLI4g9t&Bf5P zVJIpVe3?wD!KKPyVUkq9#c{P@jb=JpcRkc87ed$&F{Rh0QkXf-V7GP(ssHsOJ#v+B z3V!-P7IPoN=M=IBzxm$vkDkdf)0I}gFaY^+!lBhjAV0nhKbStCyU3MhGK7M6oj>Nz z$JAOgh2M9mSZ2~G+|fz^cl+bmbx=~x?vF%{DH31M_RYZp zBV*~;wxuTm{{qtRL@A*-343(@?jzypf}IIHALhD0J8}dJ8JjTTh^kuy&h(n6ucrGDSo4;U$o8!57dy z%_2;<5ym0L0YdVk+RVYicv^{*5h$d<(Wh+Pbv^iT!K-Y#*_h14S77Cc5g%J^*d z1#S+7=$>hVn5d8Vp(7HZuv&;A4aCHMFca@Gb!Y?p+I1=h(FMC8wWVY@-LROAom3LA zbodO7G!P>h#GGQ` z(58gdYRtONIls~-Xe_f#p=|^+%g3L^4l8mGXG_tO@9g$~n6Z+*w^=L3s!T=0qjI)s zySv$N<{GI|p9Yw3K)^^4RLSt#j5m=#@LRl&7?}QCJ62_^|SX+XqA%cp+?Z09ri&e(-!VX$mW@4 z0Qf8*kECF43;+AIfEZU&X;WsgQ)vnX3@SngfK&h^b1dGCvkA3o_U{M|O^_FBL7}ki zjwo;g_OO-wYn^3xv;X(Bngt)TFm3;0=2GH_l>x=}p7sa2uVF_i=;ZfGQzLf3TP5{< zl7Zi}j@Dv_ccX4>!;KLU8!zBa0mi;<5nPt;a2sw%hK-iO>p2FKDfOXArrn2(^*(cS z(@hK5jPtzjjd~AckiPj(0S%8c_%;T6{xVYwbqy3;A;M@_X?kOs^%1FuGXR6n({17{ z%p_m2KiwS;wQ0XbLs}aKJxbFE$R1Msm|#=Y`x86dLWcpoT%h4hVHL3lWv5KQSfWo9 zfzLDTKmxt_+L>}=aGWfRB#v2po1-LjW+!B_)_)&|4JUaOCeaP%keo%>M}Ne|VCVz7 z&TUX)O`l8sb;3a%v5&xr87U}DTrR$rQV+l)&8__t#ZajIV$^i!1g@WMCz9T#~=|ZP` zk=g~Hgyqt6p1`tVmHMnC>>^nD5r$CEDY0#YYAMcdyeL5X9FI09Md-2!_|I58ON$L* z9b`5+?%${%3&Gz2)(Lo|UInhgOD9{M*-g#O0q{t6O2=oXT)O9W&-J?&ukizQDN5KE zklf0;9W7kp2WpF8_{`~Ip0r6UE9U~@Oyb){VoEN6l(BRp-Zz7agY$MsYpt(QyKU2v zd+G3GHNt=u865)aKqKVy;y0Z~9-YvJg+O{jR!Tr{x$08iEMl_qaAxPrryqI(q%zf> zedQCd`py#`%W5cC9{&?J7{Jn3Z8$&N2OA67r)n>0%s!0#T)suPFM1s2!GduCbWmst zm{k_}0kKZL9lGhf!6R6Jx@1F2Rg-;r+%&?8w=cfhW)g=A;N9${AqJZr?-8UQCe<0G%@pA3imdZ6C4Ab5Pmfsf)V7=S19@g@TjqN)H6^$7fL0?^` ze7XftC%1PUm4Yz|!*?`I9ZMzY22+4vP6#Xti#^<52^r+Nl1{q58b*$D+=y2 zDQ|F^%N;vAmJC0Vxr9zWa-!$czUoRekM4IP46Uj>$@*yWZ~uj=9Y-J9stq;A4q8wO7%~__RcO(Y86Xxo_5K5Ix$g_UfEda7qt{WZ5)> z=w>P2FSBe7{myTFD||jCMDIN8!76*(tdQ8J%A_OHJ~ zI=ipZIi7*Jk!^F8)6zJ%RIW|DKr@}Cw@qBSeYBcM*}9xZ;%oo|T5Xd0rR8EeCVZ(ojmAr`M5AeOc2e%kf~i3jMU+~Dzf9IANgKg(Q{G~+_10vW-B zCIiT;&`me;T0I737sHA2HWP|6yvjnySM9j?G5k@XGyl6`rS0XvkDk9hQQG;jBDHHG zehLlzkA}3E=*c*J{$tl7y1c8?=9E+~WH1xH^Gr>suFI4o*YUdh<~73Aou`&JU$5n1 z1A@_Uh)Xd-J^gyjDQVm-tzl{%dU&K!rofde(A^-WhmI{}p&}|UdYzX*08>H7D(Ki^ z05hz(Q<;x#rvWzr^eM%|RcE|*qmW;KnOX&|S+Q7UVamCLY^4VgS6}f33_c5V3qpyx zQ)V~B?86G01BA@(hXXvcEe{Du5v|~ZTNqT|*{waA`!|Kui);eY6u$)EB|&yq+K==~ zKOLRL&hP@{E@4H@j?qy34IB(E7>eljE)uJv(xoFo0K>Z0*Q2#%zr z`YH}AvikPakmHj~WrA?&Et97f6egWiYeDN(;`iRC@+^=QyqI3hm$4+{8AaHl(zHM~ zd_l?D1sMD%)a@AhSKdYldxVQu(mv)uh83oZAY{>we_?Za(|uSvrN52^>rt3~kxrF5 zVX6eW@B8j>=#&Br`1^F7-RDhmllsV2=8m_VN~omm%l2e)J7s8MbX(TkbGYQT+PKhaUM3oni}$Lea}S zWIUEs#)FWDA*lb?zT}}8n&?V8@)RqHr|w~;4CxnNyq)aG zx&Fbl=Gm|mTWLlIO+ujqG%E^6D}_eEk*=BX-bpd_f9Zkwg%WnmCE{<#3MyE49b-tw z&Gz2I@|2D?ykFdo=>@@tbwsa}+-U-oe;!}qc}6zLWsrjPvQ;zlN$w@ssweFuQtvb_#hSuK}FolIO5QAV5G8 zm;8wY`^(9=h};22-GIa@yfxzb#kAqzYN@ujopAl+p}GQniDMii+jX(Scpy^OgF85k zMbGp^`*tjRhC6(pzI({j)0)TROb%6>7XAJsw`l~@n4e`pS*6A)aK?%8kfGh#gC9-I zKdX;5%|c1K!^Vq>3+fU{e}K*%mcW1N4b{68%C?vgIc5i_`2)DLfjSfxwD%wZ$TmJa zDpV}Nc^dGcpyh0*1w3)0z!Gr1&A6!JF(E%O2u;he;cam?Ea!MOvB-zrKG9%UFEdK# z;4%(~fe6SUyI(drA|w=vWa*t5fK{T|>#oLSgvQ%`l!^`ZzBd0w|2vqxo>UU) zf?G}OZa}&EfzO@} zSR^`$w4I}?*IbCeOD8X(+-K1>c#j0$RKMxxIL zlu!vHyUyg?rvxwEd&mtXeI#DNU@5609WCFKh?KVzDQ7!Rl>6+67~Qzs;8idB-x?|0 zeTbq3Wr3ogD`^7i-?rW5uJ0Iq2aQDCF{PG&*DnaExxNccLdW;+h)~sdJ<;7V_8>=( z!SAos-?5z!YlIfmM%qk(!Ya49p|(f0z`)yZW9onj+AeqU|3?E;D@D}8PLpQV4i=1X zc>jO16I)A8o!k8arl(u(^AErFIcu=j?O)juShL_jIp-M{deH ziNywz1c+WQcP5vvdm%45S$NT7Q2F;ZFF5y*YEeicnu3qpslED*2&IolA~R_e}c zBP8&X4Yl*jtjRX7^>UHr3$4ZLCy#E)dR3jLS!p{2(M@8A$Shfj-;5H;VF*o-x=0$> zO~}2>rY$MT?09UVA5CaN`WWziMvBf_Zsy>{n$_)b=Liv<>&Z$w&Hic<`;5HIRiQP` z@ZXxDhN)r=!or0QN!<=8$S=5JgU%_eD;H)y3?R+k2@Y@_{0;fqh9AR{R59dFJ}n7% zk^=aOC78TCim-WrW0*}Z zTU(!m-5w>joYt){SzsS=UQy5K@RC@xsT@D<~3@yOx+J!}Zl4b{G(a|I^ zUu2B7SS!G?cjc-^cVxxv|FwB&;6F};r{{a@hHysIUa9D{LR(G9w52i_Y@vlZn%#n6 zi>=^R+6vEt&RHfTvSKd&u=R5V1%Ku8P3R_rOl-~iTiKFxRw1M0*5dHe@0`3p5^3=zWeogMA-ds7y`D=ub&GOQw0hsBoAb_p z<)D_oY#n5vdyqj@;M5BByPu`>gN2gauzcE}FJr~actg_0bTwgDLE2iQA#JUN-Oy>V zvF3i$?tdsRFAqO1vwY;dYnv~Fu%+SPk*`S`1sSvl^AmUUAMPlH#GHm?UAp!DWHylp z3XOgdFBPWcRMu@tlpB=>kL&l97}p(n6K(7F^nPRVG}-#){;a$A0wb!@_P*_nj&t8O zI4?nLi62TWIJWWK&aKy--aVKv$lf}b6|g*ZPz`R8iGfUQ^Vt#Ij+n!I}R z{!G(opiG(5s(|}iqT1Y=`%GK837U<%$g-NeAV)nU$hNLp4FM_X{4}OEZ z13FSHgug?PJ&e1#yGD*YXEh|5?w~n5Ka)LE_wlIKN z_aIycK7Df?LU?$nOA@Q&2vCUVQMP@v`%>UqtloaJaSiP$Jh^#&#%+^RvZgil7O3A{ zVL%UE;yA-5PE!9PuPA;Nf1^KjNBJhhFW`fs^iS5Vd_>Fm?hE=Uq9D*?Bg{{cu{+m= zPu*ko9<#*s&Qjxg)ew=)Xuh9tTLM1-63U{GMI@d3d~$%==-3IQ_;=c}N{x_miC#Gf zhJ>62#9?ER*HwNjDf%-VbtvB@O^to0LcCLBp%T<*1!e&xgxA4~K*C;2XdDl(%`QKq zh7>dPZEH{qB%S99G!2avDKNKc$VuChbiTlQ`U&sUh&F!F{!7kt65=2eA>-k9fK(RK zViLf`09q5X)oLMPj)cx?Fq{(V7kora$aLNTIEDfpE+ULi;}+DI(G))|Og07p+(bGP zpi8pI{K!iB4xZ)kw!(K@;z%w2IuBBzAjmtgDp?Y|fY+wnjSfj!z1zhBwrzJVY!<-! z>!Se>kyb-4RCyEugh?6qx&-x|j*3Skmw6;~6-lRx#eOHnPOyArQuKH5V4QZxOiJ8n zvok^wP#=77?I>YEjrH%t7|~Gx-~NE2WL+6_P=c3rl6&|%W6y+k0<#JAro9)E67vxv z5E1&F9s&9#NQrGy?4%Up8;dlVK>VFrGbzP(<><7Kuxr@xSp~+7ZWp0Jt%qAITwLEO zD*z-0iF~*v7xO=FLIw0vIr- zfIG$J?~tJ8pX}awtup@kt_7sw?{$WO0$Be?tJ}fae;D}*^q*5>PS+DYk+3ul+@TE_ zP)GQ#Ko6=h6B^X=`5c{D1tGND+yIEn*^?yPfE)y9kOqV8ZP?(CL}VT!R6;CLY#5YT zp8>URm@uo!Z=nNu(~xw|ZpnA3fh?f+9z5C-xG;4HN~)A>w>DE9S&*S{Tue3k=-*Hvo{dQTQij&>V|a1VUB6LvlABNaO1) zDR66bb>`?zS!0Kq3s)HNAz#w7g^THlp(#}cj372?dl`*uw<%Q{-fW>aOXq$kMgE

-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%0A9XUNl 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

o#4q4XGqq8N0#Z=~D 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

k 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�XMKz66en;2&hLJ4~em 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 z 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

  • !U%vmg&B`+;;#lDro5^YUE7l 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

    |!G=9)HYO5@mBNv!0z=acR#E+FTi!(y9E{`E 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

      +lGwn2 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

      fPyAjYJF@DLq|bkTpI-NpBI(MT;dba%%g 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

      RqZ@oP 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≥^&<%_H1MAs94 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

      5P(X;nx$_&~MG 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

      jH<06X9ZZ`1*0D;w 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≪K?2f;-nR=0C8D^pg=W(Vn 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

      @?+T2Zr07jz>Emck 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 sElH}&{TgULB< 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

    @! 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⁢-(c#^{Q=GXvf2j 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

  • IcYO++@fhK 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%0AayNeG`AS!Ts%&9EVAcr&7JS>3#0>lZp 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%0Db(Mc#e#Z^HC$7-96YKkE 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¨||TG$M&dd|GBTb`bY~P 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 g}oZfufz@w{noKCwii(i0_eg*bE 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

    {mobileMenuOpen && ( -
    +
    GraphQL Zeus @@ -90,7 +90,7 @@ export const Layout: React.FC<{ ); })}
    -
    {children}
    +
    {children}
    ); From d9f6368eb5edc030edebdd1391583a1a67d7fb14 Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 22 Jun 2022 10:45:40 +0200 Subject: [PATCH 45/74] :bug: fixed apollo integration to respect scalars --- examples/typescript-node/package.json | 2 +- examples/typescript-node/src/zeus/apollo.ts | 70 +++-- examples/typescript-node/src/zeus/const.ts | 74 ++--- examples/typescript-node/src/zeus/index.ts | 253 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- .../src/zeus/typedDocumentNode.ts | 4 +- examples/typescript-node/zeus.graphql | 127 +++++---- package.json | 4 +- src/plugins/apollo/index.ts | 18 +- src/plugins/typedDocumentNode/index.ts | 4 +- yarn.lock | 13 +- 11 files changed, 315 insertions(+), 278 deletions(-) diff --git a/examples/typescript-node/package.json b/examples/typescript-node/package.json index 2785111d..0263ae6b 100644 --- a/examples/typescript-node/package.json +++ b/examples/typescript-node/package.json @@ -9,13 +9,13 @@ "author": "Aexol (http://aexol.com)", "license": "ISC", "devDependencies": { + "@graphql-typed-document-node/core": "^3.1.1", "@types/ws": "^8.5.3", "ts-node": "^8.3.0", "typescript": "^4.5.5" }, "dependencies": { "@apollo/client": "^3.4.16", - "@graphql-typed-document-node/core": "^3.1.1", "graphql-tag": "^2.12.6", "node-fetch": "^2.6.0", "react-query": "^3.27.0", diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index c8ff988d..fcc56c5f 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,35 +1,59 @@ /* eslint-disable */ -import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index'; -import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client'; -import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index'; +import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; +import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; -export function useTypedMutation( - mutation: Z | ValueTypes[O], - options?: MutationHookOptions>, - operationOptions?: OperationOptions, +export function useTypedQuery( + query: Z | ValueTypes[O], + options?:{ + apolloOptions?: QueryHookOptions>, + operationOptions?: OperationOptions, + scalars?: SCLR + } ) { - return useMutation>(gql(Zeus("mutation",mutation, {operationOptions})), options); + return useQuery>(gql(Zeus("query",query, { + operationOptions: options?.operationOptions, + scalars: options?.scalars + })), options?.apolloOptions); } -export function useTypedSubscription( - subscription: Z | ValueTypes[O], - options?: SubscriptionHookOptions>, - operationOptions?: OperationOptions, +export function useTypedLazyQuery( + LazyQuery: Z | ValueTypes[O], + options?:{ + apolloOptions?: LazyQueryHookOptions>, + operationOptions?: OperationOptions, + scalars?: SCLR + } ) { - return useSubscription>(gql(Zeus("subscription",subscription, {operationOptions})), options); + return useLazyQuery>(gql(Zeus("query",LazyQuery, { + operationOptions: options?.operationOptions, + scalars: options?.scalars + })), options?.apolloOptions); } -export function useTypedQuery( - query: Z | ValueTypes[O], - options?: QueryHookOptions>, - operationOptions?: OperationOptions, +export function useTypedMutation( + mutation: Z | ValueTypes[O], + options?:{ + apolloOptions?: MutationHookOptions>, + operationOptions?: OperationOptions, + scalars?: SCLR + } ) { - return useQuery>(gql(Zeus("query",query, {operationOptions})), options); + return useMutation>(gql(Zeus("mutation",mutation, { + operationOptions: options?.operationOptions, + scalars: options?.scalars + })), options?.apolloOptions); } -export function useTypedLazyQuery( - LazyQuery: Z | ValueTypes[O], - options?: LazyQueryHookOptions>, - operationOptions?: OperationOptions, +export function useTypedSubscription( + subscription: Z | ValueTypes[O], + options?:{ + apolloOptions?: SubscriptionHookOptions>, + operationOptions?: OperationOptions, + scalars?: SCLR + } ) { - return useLazyQuery>(gql(Zeus("query",LazyQuery, {operationOptions})), options); + return useSubscription>(gql(Zeus("subscription",subscription, { + operationOptions: options?.operationOptions, + scalars: options?.scalars + })), options?.apolloOptions); } diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 7784c48c..f5433f42 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,10 +1,8 @@ /* eslint-disable */ export const AllTypesProps: Record = { - Mutation:{ - addCard:{ - card:"createCard" - } + createCard:{ + skills:"SpecialSkills" }, Query:{ cardById:{ @@ -12,28 +10,23 @@ export const AllTypesProps: Record = { } }, SpecialSkills: "enum" as const, + Mutation:{ + addCard:{ + card:"createCard" + } + }, + JSON: `scalar.JSON` as const, Card:{ attack:{ } - }, - JSON: `scalar.JSON` as const, - createCard:{ - skills:"SpecialSkills" } } export const ReturnTypes: Record = { - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, - Mutation:{ - addCard:"Card" - }, - Subscription:{ - deck:"Card" + EffectCard:{ + effectSize:"Float", + name:"String" }, Query:{ cardById:"Card", @@ -43,18 +36,33 @@ export const ReturnTypes: Record = { myStacks:"CardStack", nameables:"Nameable" }, - CardStack:{ - cards:"Card", - name:"String" - }, ChangeCard:{ "...on SpecialCard":"SpecialCard", "...on EffectCard":"EffectCard" }, - EffectCard:{ - effectSize:"Float", + SpecialCard:{ + effect:"String", name:"String" }, + Mutation:{ + addCard:"Card" + }, + Subscription:{ + deck:"Card" + }, + Nameable:{ + "...on EffectCard": "EffectCard", + "...on SpecialCard": "SpecialCard", + "...on Card": "Card", + "...on CardStack": "CardStack", + name:"String" + }, + JSON: `scalar.JSON` as const, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, Card:{ Attack:"Int", Children:"Int", @@ -68,22 +76,14 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, - JSON: `scalar.JSON` as const, - SpecialCard:{ - effect:"String", - name:"String" - }, - Nameable:{ - "...on CardStack": "CardStack", - "...on EffectCard": "EffectCard", - "...on Card": "Card", - "...on SpecialCard": "SpecialCard", + CardStack:{ + cards:"Card", name:"String" } } export const Ops = { -mutation: "Mutation" as const, - subscription: "Subscription" as const, - query: "Query" as const +query: "Query" as const, + mutation: "Mutation" as const, + subscription: "Subscription" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index d46891a8..6f407dc4 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -5,6 +5,7 @@ import fetch, { Response } from 'node-fetch'; import WebSocket from 'ws'; export const HOST = "https://faker.graphqleditor.com/a-team/olympus/graphql" + export const HEADERS = {} @@ -780,21 +781,26 @@ export type ScalarCoders = { type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; + /** create card inputs
    */ +["createCard"]: { + /** input skills */ + skills?: Array | undefined | null, + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined | null, + /** The attack power
    */ + Attack: number, + /** The defense power
    */ + Defense: number +}; ["Query"]: AliasType<{ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], /** Draw a card
    */ @@ -806,21 +812,39 @@ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], nameables?:ValueTypes["Nameable"], __typename?: boolean | `@${string}` }>; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; + ["SpecialSkills"]:SpecialSkills; ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` }>; - ["SpecialSkills"]:SpecialSkills; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on EffectCard']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on Card']?: Omit; + ['...on CardStack']?: Omit; + __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` }>; /** Card used in card game
    */ ["Card"]: AliasType<{ @@ -844,51 +868,21 @@ attack?: [{ /** Attacked card/card ids
    */ skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["JSON"]:unknown; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}>; - /** create card inputs
    */ -["createCard"]: { - /**
    How many children the greek god had
    */ - Children?: number | undefined | null, - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined | null, - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string -}; - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on CardStack']?: Omit; - ['...on EffectCard']?: Omit; - ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; - __typename?: boolean | `@${string}` }> } export type ModelTypes = { - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - ["Mutation"]: { - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; - ["Subscription"]: { - deck?: Array | undefined + ["EffectCard"]: { + effectSize: number, + name: string }; + /** create card inputs
    */ +["createCard"]: GraphQLTypes["createCard"]; ["Query"]: { cardById?: GraphQLTypes["Card"] | undefined, /** Draw a card
    */ @@ -899,16 +893,26 @@ export type ModelTypes = { myStacks?: Array | undefined, nameables: Array }; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string -}; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["EffectCard"]: { - effectSize: number, + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["SpecialCard"]: { + effect: string, name: string +}; + ["Mutation"]: { + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["Subscription"]: { + deck?: Array | undefined +}; + ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["SpecialCard"] | ModelTypes["Card"] | ModelTypes["CardStack"]; + ["JSON"]:any; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string }; /** Card used in card game
    */ ["Card"]: { @@ -931,32 +935,33 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["JSON"]:any; - ["SpecialCard"]: { - effect: string, + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, name: string -}; - /** create card inputs
    */ -["createCard"]: GraphQLTypes["createCard"]; - ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["EffectCard"] | ModelTypes["Card"] | ModelTypes["SpecialCard"] +} } export type GraphQLTypes = { - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string -}; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string }; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined + /** create card inputs
    */ +["createCard"]: { + /** input skills */ + skills?: Array | undefined, + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined, + /** The attack power
    */ + Attack: number, + /** The defense power
    */ + Defense: number }; ["Query"]: { __typename: "Query", @@ -969,22 +974,41 @@ export type GraphQLTypes = { myStacks?: Array | undefined, nameables: Array }; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, - name: string -}; + ["SpecialSkills"]: SpecialSkills; ["ChangeCard"]:{ __typename:"SpecialCard" | "EffectCard" ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; - ["SpecialSkills"]: SpecialSkills; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, name: string +}; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined +}; + ["Nameable"]: { + __typename:"EffectCard" | "SpecialCard" | "Card" | "CardStack", + name: string + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; +}; + ["JSON"]: "scalar" & { name: "JSON" }; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string }; /** Card used in card game
    */ ["Card"]: { @@ -1008,34 +1032,11 @@ export type GraphQLTypes = { name: string, skills?: Array | undefined }; - ["JSON"]: "scalar" & { name: "JSON" }; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, - name: string -}; - /** create card inputs
    */ -["createCard"]: { - /**
    How many children the greek god had
    */ - Children?: number | undefined, - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined, - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string -}; - ["Nameable"]: { - __typename:"CardStack" | "EffectCard" | "Card" | "SpecialCard", + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, name: string - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; } } export const enum SpecialSkills { diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 0c742c2d..77ddaaaf 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useMutation, useQuery } from 'react-query'; -import type { UseMutationOptions, UseQueryOptions } from 'react-query'; +import { useQuery, useMutation } from 'react-query'; +import type { UseQueryOptions, UseMutationOptions } from 'react-query'; -export function useTypedMutation>( - mutationKey: string | unknown[], - mutation: TData | ValueTypes[O], - options?: Omit, 'mutationKey' | 'mutationFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); -} export function useTypedQuery>( queryKey: string | unknown[], query: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); } +export function useTypedMutation>( + mutationKey: string | unknown[], + mutation: TData | ValueTypes[O], + options?: Omit, 'mutationKey' | 'mutationFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/src/zeus/typedDocumentNode.ts b/examples/typescript-node/src/zeus/typedDocumentNode.ts index 7dd75b06..8277d202 100644 --- a/examples/typescript-node/src/zeus/typedDocumentNode.ts +++ b/examples/typescript-node/src/zeus/typedDocumentNode.ts @@ -1,4 +1,4 @@ -import { TypedQueryDocumentNode } from 'graphql'; +import { TypedDocumentNode } from '@graphql-typed-document-node/core'; import gql from 'graphql-tag'; import { ValueTypes, GenericOperation, OperationOptions, InternalsBuildQuery, GraphQLTypes, InputType } from './'; import { Ops, AllTypesProps, ReturnTypes } from './const'; @@ -20,7 +20,7 @@ export const ZeusTD = < returns: ReturnTypes, options: ops, ops: Ops, - })(operation, o as any)) as TypedQueryDocumentNode< + })(operation, o as any)) as TypedDocumentNode< InputType, typeof varValues >; diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 3ab19067..e3203867 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,25 +1,31 @@ -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - +"""""" +type EffectCard implements Nameable { """""" - key: String! + effectSize: Float! """""" - region: String! + name: String! } -"""""" -type Mutation { - """add Card to Cards database
    """ - addCard(card: createCard!): Card! -} +"""create card inputs
    """ +input createCard { + """input skills""" + skills: [SpecialSkills!] -"""""" -type Subscription { - """""" - deck: [Card!] + """The name of a card
    """ + name: String! + + """Description of a card
    """ + description: String! + + """
    How many children the greek god had
    """ + Children: Int + + """The attack power
    """ + Attack: Int! + + """The defense power
    """ + Defense: Int! } """""" @@ -43,18 +49,6 @@ type Query { nameables: [Nameable!]! } -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - - """""" - name: String! -} - -"""""" -union ChangeCard = SpecialCard | EffectCard - """""" enum SpecialSkills { """Lower enemy defense -5
    """ @@ -68,14 +62,50 @@ enum SpecialSkills { } """""" -type EffectCard implements Nameable { +union ChangeCard = SpecialCard | EffectCard + +"""""" +type SpecialCard implements Nameable { """""" - effectSize: Float! + effect: String! """""" name: String! } +"""""" +type Mutation { + """add Card to Cards database
    """ + addCard(card: createCard!): Card! +} + +"""""" +type Subscription { + """""" + deck: [Card!] +} + +"""""" +interface Nameable { + """""" + name: String! +} + +"""""" +scalar JSON + +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! + + """""" + key: String! + + """""" + region: String! +} + """Card used in card game
    """ type Card implements Nameable { """The attack power
    """ @@ -115,45 +145,14 @@ type Card implements Nameable { skills: [SpecialSkills!] } -"""""" -scalar JSON - -"""""" -type SpecialCard implements Nameable { - """""" - effect: String! - +"""Stack of cards""" +type CardStack implements Nameable { """""" - name: String! -} - -"""create card inputs
    """ -input createCard { - """
    How many children the greek god had
    """ - Children: Int - - """The attack power
    """ - Attack: Int! - - """The defense power
    """ - Defense: Int! - - """input skills""" - skills: [SpecialSkills!] - - """The name of a card
    """ - name: String! - - """Description of a card
    """ - description: String! -} + cards: [Card!] -"""""" -interface Nameable { """""" name: String! } - schema{ query: Query, mutation: Mutation, diff --git a/package.json b/package.json index 684d8e60..192e2f26 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.7", + "version": "5.0.8", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", @@ -62,7 +62,7 @@ }, "dependencies": { "cross-fetch": "^3.0.4", - "graphql": "^15.4.0", + "graphql": "^16.5.0", "graphql-js-tree": "^0.1.1", "yargs": "^16.1.1" }, diff --git a/src/plugins/apollo/index.ts b/src/plugins/apollo/index.ts index 4bb93377..3d8b7d09 100644 --- a/src/plugins/apollo/index.ts +++ b/src/plugins/apollo/index.ts @@ -7,12 +7,18 @@ const pluginApolloOps = ({ queryName, operation }: { queryName: string; operatio return { queryName, operation, - ts: `export function useTyped${capitalized}( + ts: `export function useTyped${capitalized}( ${operation}: Z | ValueTypes[O], - options?: ${capitalized}HookOptions>, - operationOptions?: OperationOptions, + options?:{ + apolloOptions?: ${capitalized}HookOptions>, + operationOptions?: OperationOptions, + scalars?: SCLR + } ) { - return use${capitalized}>(gql(Zeus("${zeusOperation}",${operation}, {operationOptions})), options); + return use${capitalized}>(gql(Zeus("${zeusOperation}",${operation}, { + operationOptions: options?.operationOptions, + scalars: options?.scalars + })), options?.apolloOptions); }`, }; }; @@ -49,7 +55,9 @@ export const pluginApollo = ({ tree, esModule }: { tree: ParserTree; esModule?: return { ts: `/* eslint-disable */ -import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions } from './index${esModule ? '.js' : ''}'; +import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index${ + esModule ? '.js' : '' + }'; import { gql, ${capitalizedOps.map((o) => `use${o}`).join(', ')} } from '@apollo/client'; import type { ${capitalizedOps.map((o) => `${o}HookOptions`).join(', ')} } from '@apollo/client'; diff --git a/src/plugins/typedDocumentNode/index.ts b/src/plugins/typedDocumentNode/index.ts index 5a06ccfe..b712cbeb 100644 --- a/src/plugins/typedDocumentNode/index.ts +++ b/src/plugins/typedDocumentNode/index.ts @@ -1,4 +1,4 @@ -export const pluginTypedDocumentNode = `import { TypedQueryDocumentNode } from 'graphql'; +export const pluginTypedDocumentNode = `import { TypedDocumentNode } from '@graphql-typed-document-node/core'; import gql from 'graphql-tag'; import { ValueTypes, GenericOperation, OperationOptions, InternalsBuildQuery, GraphQLTypes, InputType } from './'; import { Ops, AllTypesProps, ReturnTypes } from './const'; @@ -20,7 +20,7 @@ export const ZeusTD = < returns: ReturnTypes, options: ops, ops: Ops, - })(operation, o as any)) as TypedQueryDocumentNode< + })(operation, o as any)) as TypedDocumentNode< InputType, typeof varValues >; diff --git a/yarn.lock b/yarn.lock index 26e7600e..c2cb5130 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3104,10 +3104,15 @@ dependencies: "graphql" "^15.4.0" -"graphql@*", "graphql@^15.4.0": - "integrity" "sha512-WJR872Zlc9hckiEPhXgyUftXH48jp2EjO5tgBBOyNMRJZ9fviL2mJBD6CAysk6N5S0r9BTs09Qk39nnJBkvOXQ==" - "resolved" "https://registry.npmjs.org/graphql/-/graphql-15.6.0.tgz" - "version" "15.6.0" +"graphql@*", "graphql@^16.5.0": + "integrity" "sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA==" + "resolved" "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz" + "version" "16.5.0" + +"graphql@^15.4.0": + "integrity" "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" + "resolved" "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" + "version" "15.8.0" "growl@1.10.5": "integrity" "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" From 73c8480413c2d10f1352d549191cd435eb9120de Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 22 Jun 2022 11:56:22 +0200 Subject: [PATCH 46/74] :bug: Fixed tdd now works for every package --- doc/src/markdown/plugins/typedDocumentNode.md | 6 +- examples/typescript-node/src/index.ts | 19 +- examples/typescript-node/src/zeus/apollo.ts | 36 +-- examples/typescript-node/src/zeus/const.ts | 76 +++--- examples/typescript-node/src/zeus/index.ts | 250 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- .../src/zeus/typedDocumentNode.ts | 48 ++-- examples/typescript-node/zeus.graphql | 130 ++++----- src/plugins/typedDocumentNode/index.ts | 49 ++-- 9 files changed, 327 insertions(+), 311 deletions(-) diff --git a/doc/src/markdown/plugins/typedDocumentNode.md b/doc/src/markdown/plugins/typedDocumentNode.md index 9cbd6aab..af1533d7 100644 --- a/doc/src/markdown/plugins/typedDocumentNode.md +++ b/doc/src/markdown/plugins/typedDocumentNode.md @@ -23,7 +23,7 @@ $ zeus https://yourschema.com/graphql ./ --typedDocumentNode The following example demonstrates usage with Apollo. Other clients should work similarly. ```tsx -import { ZeusTD } from './zeus/typedDocumentNode'; +import { typedGql } from './zeus/typedDocumentNode'; import { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus'; import { useQuery } from '@apollo/client'; @@ -32,8 +32,7 @@ const variables = useZeusVariables({ cardId: 'String!' })({ }); const { $ } = variables; -const myQuery = ZeusTD( - 'query', +const myQuery = typedGql('query')( { drawCard: { id: true, @@ -47,6 +46,7 @@ const myQuery = ZeusTD( const Main = () => { const { data } = useQuery(myQuery, { + // use those values or provide other values than default variables: variables.values, }); // data response is typed diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index c05bd5f0..4c914cd2 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -1,6 +1,5 @@ import chalk from 'chalk'; import fetch from 'node-fetch'; -import { ZeusTD } from './zeus/typedDocumentNode'; import { Gql, SpecialSkills, @@ -12,6 +11,22 @@ import { useZeusVariables, ZeusScalars, } from './zeus'; +import { ApolloClient, InMemoryCache } from '@apollo/client'; +import { typedGql } from './zeus/typedDocumentNode'; + +export const testMutate = () => { + const client = new ApolloClient({ + cache: new InMemoryCache(), + }); + const td = typedGql('mutation')({ + addCard: [{ card: { Attack: 1, Defense: 2, name: 'Pokemon', description: 'Stronk' } }, { id: true }], + }); + client + .mutate({ + mutation: td, + }) + .then((data) => data.data?.addCard?.id); +}; const sel = Selector('Query')({ drawCard: { @@ -343,7 +358,7 @@ const run = async () => { cardById: [{ cardId: zeusTDDVars.$('cardId') }, { id: true }], }); - const generatedTypedDocumentNode = ZeusTD('query', selectorTDD, { variables: zeusTDDVars }); + const generatedTypedDocumentNode = typedGql('query')(selectorTDD, { variables: zeusTDDVars }); printQueryResult('Generated TypedDocumentNode Test', generatedTypedDocumentNode); }; run(); diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index fcc56c5f..0d167d82 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,58 +1,58 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index'; -import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; -import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; +import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; +import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; -export function useTypedQuery( - query: Z | ValueTypes[O], +export function useTypedSubscription( + subscription: Z | ValueTypes[O], options?:{ - apolloOptions?: QueryHookOptions>, + apolloOptions?: SubscriptionHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useQuery>(gql(Zeus("query",query, { + return useSubscription>(gql(Zeus("subscription",subscription, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedLazyQuery( - LazyQuery: Z | ValueTypes[O], +export function useTypedMutation( + mutation: Z | ValueTypes[O], options?:{ - apolloOptions?: LazyQueryHookOptions>, + apolloOptions?: MutationHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useLazyQuery>(gql(Zeus("query",LazyQuery, { + return useMutation>(gql(Zeus("mutation",mutation, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedMutation( - mutation: Z | ValueTypes[O], +export function useTypedQuery( + query: Z | ValueTypes[O], options?:{ - apolloOptions?: MutationHookOptions>, + apolloOptions?: QueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useMutation>(gql(Zeus("mutation",mutation, { + return useQuery>(gql(Zeus("query",query, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedSubscription( - subscription: Z | ValueTypes[O], +export function useTypedLazyQuery( + LazyQuery: Z | ValueTypes[O], options?:{ - apolloOptions?: SubscriptionHookOptions>, + apolloOptions?: LazyQueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useSubscription>(gql(Zeus("subscription",subscription, { + return useLazyQuery>(gql(Zeus("query",LazyQuery, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index f5433f42..bd675c07 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,68 +1,49 @@ /* eslint-disable */ export const AllTypesProps: Record = { - createCard:{ - skills:"SpecialSkills" - }, - Query:{ - cardById:{ - - } - }, + JSON: `scalar.JSON` as const, SpecialSkills: "enum" as const, Mutation:{ addCard:{ card:"createCard" } }, - JSON: `scalar.JSON` as const, + createCard:{ + skills:"SpecialSkills" + }, Card:{ attack:{ + } + }, + Query:{ + cardById:{ + } } } export const ReturnTypes: Record = { + JSON: `scalar.JSON` as const, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, EffectCard:{ effectSize:"Float", name:"String" }, - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" + Subscription:{ + deck:"Card" }, ChangeCard:{ "...on SpecialCard":"SpecialCard", "...on EffectCard":"EffectCard" }, - SpecialCard:{ - effect:"String", - name:"String" - }, Mutation:{ addCard:"Card" }, - Subscription:{ - deck:"Card" - }, - Nameable:{ - "...on EffectCard": "EffectCard", - "...on SpecialCard": "SpecialCard", - "...on Card": "Card", - "...on CardStack": "CardStack", - name:"String" - }, - JSON: `scalar.JSON` as const, - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, Card:{ Attack:"Int", Children:"Int", @@ -76,14 +57,33 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, + Nameable:{ + "...on EffectCard": "EffectCard", + "...on Card": "Card", + "...on CardStack": "CardStack", + "...on SpecialCard": "SpecialCard", + name:"String" + }, CardStack:{ cards:"Card", name:"String" + }, + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" + }, + SpecialCard:{ + effect:"String", + name:"String" } } export const Ops = { -query: "Query" as const, +subscription: "Subscription" as const, mutation: "Mutation" as const, - subscription: "Subscription" as const + query: "Query" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 6f407dc4..405d044c 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -781,15 +781,34 @@ export type ScalarCoders = { type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["EffectCard"]: AliasType<{ + ["JSON"]:unknown; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["EffectCard"]: AliasType<{ effectSize?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean | `@${string}` }>; /** create card inputs
    */ ["createCard"]: { - /** input skills */ - skills?: Array | undefined | null, /** The name of a card
    */ name: string, /** Description of a card
    */ @@ -799,53 +818,10 @@ export type ValueTypes = { /** The attack power
    */ Attack: number, /** The defense power
    */ - Defense: number + Defense: number, + /** input skills */ + skills?: Array | undefined | null }; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], - /** Draw a card
    */ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean | `@${string}` -}>; - ["SpecialSkills"]:SpecialSkills; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] - __typename?: boolean | `@${string}` -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean | `@${string}` -}>; - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on EffectCard']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on Card']?: Omit; - ['...on CardStack']?: Omit; - __typename?: boolean | `@${string}` -}>; - ["JSON"]:unknown; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; /** Card used in card game
    */ ["Card"]: AliasType<{ /** The attack power
    */ @@ -867,53 +843,62 @@ attack?: [{ /** Attacked card/card ids
    */ name?:boolean | `@${string}`, skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` +}>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on EffectCard']?: Omit; + ['...on Card']?: Omit; + ['...on CardStack']?: Omit; + ['...on SpecialCard']?: Omit; + __typename?: boolean | `@${string}` }>; /** Stack of cards */ ["CardStack"]: AliasType<{ cards?:ValueTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` +}>; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], + /** Draw a card
    */ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean | `@${string}` +}>; + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` }> } export type ModelTypes = { - ["EffectCard"]: { + ["JSON"]:any; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string +}; + ["EffectCard"]: { effectSize: number, name: string }; - /** create card inputs
    */ -["createCard"]: GraphQLTypes["createCard"]; - ["Query"]: { - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array + ["Subscription"]: { + deck?: Array | undefined }; ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["SpecialCard"]: { - effect: string, - name: string -}; ["Mutation"]: { /** add Card to Cards database
    */ addCard: GraphQLTypes["Card"] }; - ["Subscription"]: { - deck?: Array | undefined -}; - ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["SpecialCard"] | ModelTypes["Card"] | ModelTypes["CardStack"]; - ["JSON"]:any; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; + /** create card inputs
    */ +["createCard"]: GraphQLTypes["createCard"]; /** Card used in card game
    */ ["Card"]: { /** The attack power
    */ @@ -935,37 +920,14 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; + ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["Card"] | ModelTypes["CardStack"] | ModelTypes["SpecialCard"]; /** Stack of cards */ ["CardStack"]: { cards?: Array | undefined, name: string -} - } - -export type GraphQLTypes = { - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, - name: string -}; - /** create card inputs
    */ -["createCard"]: { - /** input skills */ - skills?: Array | undefined, - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string, - /**
    How many children the greek god had
    */ - Children?: number | undefined, - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number }; ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, + cardById?: GraphQLTypes["Card"] | undefined, /** Draw a card
    */ drawCard: GraphQLTypes["Card"], drawChangeCard: GraphQLTypes["ChangeCard"], @@ -973,42 +935,56 @@ export type GraphQLTypes = { listCards: Array, myStacks?: Array | undefined, nameables: Array +}; + ["SpecialCard"]: { + effect: string, + name: string +} + } + +export type GraphQLTypes = { + ["JSON"]: "scalar" & { name: "JSON" }; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string +}; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined }; ["SpecialSkills"]: SpecialSkills; ["ChangeCard"]:{ __typename:"SpecialCard" | "EffectCard" ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, - name: string }; ["Mutation"]: { __typename: "Mutation", /** add Card to Cards database
    */ addCard: GraphQLTypes["Card"] }; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined -}; - ["Nameable"]: { - __typename:"EffectCard" | "SpecialCard" | "Card" | "CardStack", - name: string - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; -}; - ["JSON"]: "scalar" & { name: "JSON" }; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string + /** create card inputs
    */ +["createCard"]: { + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined, + /** The attack power
    */ + Attack: number, + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined }; /** Card used in card game
    */ ["Card"]: { @@ -1031,12 +1007,36 @@ export type GraphQLTypes = { /** The name of a card
    */ name: string, skills?: Array | undefined +}; + ["Nameable"]: { + __typename:"EffectCard" | "Card" | "CardStack" | "SpecialCard", + name: string + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; }; /** Stack of cards */ ["CardStack"]: { __typename: "CardStack", cards?: Array | undefined, name: string +}; + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string } } export const enum SpecialSkills { diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 77ddaaaf..0c742c2d 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useQuery, useMutation } from 'react-query'; -import type { UseQueryOptions, UseMutationOptions } from 'react-query'; +import { useMutation, useQuery } from 'react-query'; +import type { UseMutationOptions, UseQueryOptions } from 'react-query'; -export function useTypedQuery>( - queryKey: string | unknown[], - query: TData | ValueTypes[O], - options?: Omit, 'queryKey' | 'queryFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); -} export function useTypedMutation>( mutationKey: string | unknown[], mutation: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } +export function useTypedQuery>( + queryKey: string | unknown[], + query: TData | ValueTypes[O], + options?: Omit, 'queryKey' | 'queryFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/src/zeus/typedDocumentNode.ts b/examples/typescript-node/src/zeus/typedDocumentNode.ts index 8277d202..8e49098d 100644 --- a/examples/typescript-node/src/zeus/typedDocumentNode.ts +++ b/examples/typescript-node/src/zeus/typedDocumentNode.ts @@ -1,27 +1,27 @@ import { TypedDocumentNode } from '@graphql-typed-document-node/core'; import gql from 'graphql-tag'; -import { ValueTypes, GenericOperation, OperationOptions, InternalsBuildQuery, GraphQLTypes, InputType } from './'; -import { Ops, AllTypesProps, ReturnTypes } from './const'; +import { + ValueTypes, + GenericOperation, + OperationOptions, + GraphQLTypes, + InputType, + ScalarDefinition, + ThunderGraphQLOptions, + Zeus, +} from './'; +import { Ops } from './const'; -export const ZeusTD = < - Z extends ValueTypes[R], - O extends keyof typeof Ops, - T extends Record, - R extends keyof ValueTypes = GenericOperation, ->( - operation: O, - o: Z | ValueTypes[R], - ops?: OperationOptions, -) => { - const varValues = ops?.variables?.values; - - return gql(InternalsBuildQuery({ - props: AllTypesProps, - returns: ReturnTypes, - options: ops, - ops: Ops, - })(operation, o as any)) as TypedDocumentNode< - InputType, - typeof varValues - >; -}; \ No newline at end of file +export const typedGql = + >( + operation: O, + graphqlOptions?: ThunderGraphQLOptions, + ) => + (o: Z | ValueTypes[R], ops?: OperationOptions) => { + const str = Zeus(operation, o, { + operationOptions: ops, + scalars: graphqlOptions?.scalars, + }); + const vars = ops?.variables; + return gql(str) as TypedDocumentNode, typeof vars>; + }; diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index e3203867..accf4a27 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,52 +1,31 @@ """""" -type EffectCard implements Nameable { - """""" - effectSize: Float! +scalar JSON +"""Aws S3 File""" +type S3Object { """""" - name: String! -} - -"""create card inputs
    """ -input createCard { - """input skills""" - skills: [SpecialSkills!] - - """The name of a card
    """ - name: String! - - """Description of a card
    """ - description: String! - - """
    How many children the greek god had
    """ - Children: Int + bucket: String! - """The attack power
    """ - Attack: Int! + """""" + key: String! - """The defense power
    """ - Defense: Int! + """""" + region: String! } """""" -type Query { - """""" - cardById(cardId: String): Card - - """Draw a card
    """ - drawCard: Card! - +type EffectCard implements Nameable { """""" - drawChangeCard: ChangeCard! - - """list All Cards availble
    """ - listCards: [Card!]! + effectSize: Float! """""" - myStacks: [CardStack!] + name: String! +} +"""""" +type Subscription { """""" - nameables: [Nameable!]! + deck: [Card!] } """""" @@ -64,46 +43,31 @@ enum SpecialSkills { """""" union ChangeCard = SpecialCard | EffectCard -"""""" -type SpecialCard implements Nameable { - """""" - effect: String! - - """""" - name: String! -} - """""" type Mutation { """add Card to Cards database
    """ addCard(card: createCard!): Card! } -"""""" -type Subscription { - """""" - deck: [Card!] -} - -"""""" -interface Nameable { - """""" +"""create card inputs
    """ +input createCard { + """The name of a card
    """ name: String! -} -"""""" -scalar JSON + """Description of a card
    """ + description: String! -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! + """
    How many children the greek god had
    """ + Children: Int - """""" - key: String! + """The attack power
    """ + Attack: Int! - """""" - region: String! + """The defense power
    """ + Defense: Int! + + """input skills""" + skills: [SpecialSkills!] } """Card used in card game
    """ @@ -145,6 +109,12 @@ type Card implements Nameable { skills: [SpecialSkills!] } +"""""" +interface Nameable { + """""" + name: String! +} + """Stack of cards""" type CardStack implements Nameable { """""" @@ -153,6 +123,36 @@ type CardStack implements Nameable { """""" name: String! } + +"""""" +type Query { + """""" + cardById(cardId: String): Card + + """Draw a card
    """ + drawCard: Card! + + """""" + drawChangeCard: ChangeCard! + + """list All Cards availble
    """ + listCards: [Card!]! + + """""" + myStacks: [CardStack!] + + """""" + nameables: [Nameable!]! +} + +"""""" +type SpecialCard implements Nameable { + """""" + effect: String! + + """""" + name: String! +} schema{ query: Query, mutation: Mutation, diff --git a/src/plugins/typedDocumentNode/index.ts b/src/plugins/typedDocumentNode/index.ts index b712cbeb..2dd9045c 100644 --- a/src/plugins/typedDocumentNode/index.ts +++ b/src/plugins/typedDocumentNode/index.ts @@ -1,27 +1,28 @@ export const pluginTypedDocumentNode = `import { TypedDocumentNode } from '@graphql-typed-document-node/core'; import gql from 'graphql-tag'; -import { ValueTypes, GenericOperation, OperationOptions, InternalsBuildQuery, GraphQLTypes, InputType } from './'; -import { Ops, AllTypesProps, ReturnTypes } from './const'; +import { + ValueTypes, + GenericOperation, + OperationOptions, + GraphQLTypes, + InputType, + ScalarDefinition, + ThunderGraphQLOptions, + Zeus, +} from './'; +import { Ops } from './const'; -export const ZeusTD = < - Z extends ValueTypes[R], - O extends keyof typeof Ops, - T extends Record, - R extends keyof ValueTypes = GenericOperation, ->( - operation: O, - o: Z | ValueTypes[R], - ops?: OperationOptions, -) => { - const varValues = ops?.variables?.values; - - return gql(InternalsBuildQuery({ - props: AllTypesProps, - returns: ReturnTypes, - options: ops, - ops: Ops, - })(operation, o as any)) as TypedDocumentNode< - InputType, - typeof varValues - >; -};`; +export const typedGql = + >( + operation: O, + graphqlOptions?: ThunderGraphQLOptions, + ) => + (o: Z | ValueTypes[R], ops?: OperationOptions) => { + const str = Zeus(operation, o, { + operationOptions: ops, + scalars: graphqlOptions?.scalars, + }); + const vars = ops?.variables; + return gql(str) as TypedDocumentNode, typeof vars>; + }; +`; From 91af6b6bce90f5064ad71b615560f52acba2f052 Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 22 Jun 2022 11:56:57 +0200 Subject: [PATCH 47/74] :bookmark: version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 192e2f26..56f6557e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.8", + "version": "5.0.9", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", From 0892819254e487135a4583fd3e930330c3ff4200 Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 22 Jun 2022 15:14:06 +0200 Subject: [PATCH 48/74] :bug: fix variables behavior on td --- doc/src/Layout/index.tsx | 2 +- examples/typescript-node/src/zeus/typedDocumentNode.ts | 2 +- package.json | 2 +- src/plugins/typedDocumentNode/index.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/src/Layout/index.tsx b/doc/src/Layout/index.tsx index efa75005..acf1adf9 100644 --- a/doc/src/Layout/index.tsx +++ b/doc/src/Layout/index.tsx @@ -29,7 +29,7 @@ export const Layout: React.FC<{ GraphQL Zeus Autocomplete client for GraphQL - 5.0.x + 5.1.x diff --git a/examples/typescript-node/src/zeus/typedDocumentNode.ts b/examples/typescript-node/src/zeus/typedDocumentNode.ts index 8e49098d..dc65319b 100644 --- a/examples/typescript-node/src/zeus/typedDocumentNode.ts +++ b/examples/typescript-node/src/zeus/typedDocumentNode.ts @@ -22,6 +22,6 @@ export const typedGql = operationOptions: ops, scalars: graphqlOptions?.scalars, }); - const vars = ops?.variables; + const vars = ops?.variables?.values; return gql(str) as TypedDocumentNode, typeof vars>; }; diff --git a/package.json b/package.json index 56f6557e..da11dbcf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.0.9", + "version": "5.1.0", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/plugins/typedDocumentNode/index.ts b/src/plugins/typedDocumentNode/index.ts index 2dd9045c..568a843b 100644 --- a/src/plugins/typedDocumentNode/index.ts +++ b/src/plugins/typedDocumentNode/index.ts @@ -22,7 +22,7 @@ export const typedGql = operationOptions: ops, scalars: graphqlOptions?.scalars, }); - const vars = ops?.variables; + const vars = ops?.variables?.values; return gql(str) as TypedDocumentNode, typeof vars>; }; `; From 2ded367768c3fc5deaee5168e79d0d12d5b6bfcd Mon Sep 17 00:00:00 2001 From: aexol Date: Wed, 22 Jun 2022 15:46:47 +0200 Subject: [PATCH 49/74] :pencil2: fixed lack of produce lib --- examples/typescript-node/src/index.ts | 2 +- examples/typescript-node/src/zeus/apollo.ts | 20 +- examples/typescript-node/src/zeus/const.ts | 72 +++--- examples/typescript-node/src/zeus/index.ts | 246 ++++++++++---------- examples/typescript-node/zeus.graphql | 142 +++++------ package.json | 2 +- 6 files changed, 242 insertions(+), 242 deletions(-) diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index 4c914cd2..9cf67cc4 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -11,7 +11,7 @@ import { useZeusVariables, ZeusScalars, } from './zeus'; -import { ApolloClient, InMemoryCache } from '@apollo/client'; +import { ApolloClient, InMemoryCache, useQuery } from '@apollo/client'; import { typedGql } from './zeus/typedDocumentNode'; export const testMutate = () => { diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 0d167d82..27fe6f51 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,32 +1,32 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index'; -import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; -import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client'; +import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; -export function useTypedSubscription( - subscription: Z | ValueTypes[O], +export function useTypedMutation( + mutation: Z | ValueTypes[O], options?:{ - apolloOptions?: SubscriptionHookOptions>, + apolloOptions?: MutationHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useSubscription>(gql(Zeus("subscription",subscription, { + return useMutation>(gql(Zeus("mutation",mutation, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedMutation( - mutation: Z | ValueTypes[O], +export function useTypedSubscription( + subscription: Z | ValueTypes[O], options?:{ - apolloOptions?: MutationHookOptions>, + apolloOptions?: SubscriptionHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useMutation>(gql(Zeus("mutation",mutation, { + return useSubscription>(gql(Zeus("subscription",subscription, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index bd675c07..71e92f88 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,49 +1,33 @@ /* eslint-disable */ export const AllTypesProps: Record = { + Card:{ + attack:{ + + } + }, JSON: `scalar.JSON` as const, - SpecialSkills: "enum" as const, Mutation:{ addCard:{ card:"createCard" } }, - createCard:{ - skills:"SpecialSkills" - }, - Card:{ - attack:{ - - } - }, Query:{ cardById:{ } + }, + SpecialSkills: "enum" as const, + createCard:{ + skills:"SpecialSkills" } } export const ReturnTypes: Record = { - JSON: `scalar.JSON` as const, - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, - EffectCard:{ - effectSize:"Float", + SpecialCard:{ + effect:"String", name:"String" }, - Subscription:{ - deck:"Card" - }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, - Mutation:{ - addCard:"Card" - }, Card:{ Attack:"Int", Children:"Int", @@ -57,16 +41,32 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, + JSON: `scalar.JSON` as const, + CardStack:{ + cards:"Card", + name:"String" + }, + Mutation:{ + addCard:"Card" + }, Nameable:{ - "...on EffectCard": "EffectCard", + "...on SpecialCard": "SpecialCard", "...on Card": "Card", "...on CardStack": "CardStack", - "...on SpecialCard": "SpecialCard", + "...on EffectCard": "EffectCard", name:"String" }, - CardStack:{ - cards:"Card", - name:"String" + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" + }, + Subscription:{ + deck:"Card" }, Query:{ cardById:"Card", @@ -76,14 +76,14 @@ export const ReturnTypes: Record = { myStacks:"CardStack", nameables:"Nameable" }, - SpecialCard:{ - effect:"String", + EffectCard:{ + effectSize:"Float", name:"String" } } export const Ops = { -subscription: "Subscription" as const, - mutation: "Mutation" as const, +mutation: "Mutation" as const, + subscription: "Subscription" as const, query: "Query" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 405d044c..22219abb 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -781,47 +781,11 @@ export type ScalarCoders = { type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["JSON"]:unknown; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean | `@${string}` -}>; - ["SpecialSkills"]:SpecialSkills; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] - __typename?: boolean | `@${string}` -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; - /** create card inputs
    */ -["createCard"]: { - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string, - /**
    How many children the greek god had
    */ - Children?: number | undefined | null, - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined | null -}; /** Card used in card game
    */ ["Card"]: AliasType<{ /** The attack power
    */ @@ -843,19 +807,39 @@ attack?: [{ /** Attacked card/card ids
    */ name?:boolean | `@${string}`, skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean | `@${string}` }>; ["Nameable"]:AliasType<{ name?:boolean | `@${string}`; - ['...on EffectCard']?: Omit; + ['...on SpecialCard']?: Omit; ['...on Card']?: Omit; ['...on CardStack']?: Omit; - ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; __typename?: boolean | `@${string}` }>; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean | `@${string}`, + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], __typename?: boolean | `@${string}` }>; ["Query"]: AliasType<{ @@ -869,36 +853,34 @@ cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], nameables?:ValueTypes["Nameable"], __typename?: boolean | `@${string}` }>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, + ["SpecialSkills"]:SpecialSkills; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}> +}>; + /** create card inputs
    */ +["createCard"]: { + /** The attack power
    */ + Attack: number, + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined | null, + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined | null +} } export type ModelTypes = { - ["JSON"]:any; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - ["EffectCard"]: { - effectSize: number, + ["SpecialCard"]: { + effect: string, name: string }; - ["Subscription"]: { - deck?: Array | undefined -}; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["Mutation"]: { - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; - /** create card inputs
    */ -["createCard"]: GraphQLTypes["createCard"]; /** Card used in card game
    */ ["Card"]: { /** The attack power
    */ @@ -920,11 +902,26 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["Card"] | ModelTypes["CardStack"] | ModelTypes["SpecialCard"]; + ["JSON"]:any; /** Stack of cards */ ["CardStack"]: { cards?: Array | undefined, name: string +}; + ["Mutation"]: { + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["Nameable"]: ModelTypes["SpecialCard"] | ModelTypes["Card"] | ModelTypes["CardStack"] | ModelTypes["EffectCard"]; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string +}; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["Subscription"]: { + deck?: Array | undefined }; ["Query"]: { cardById?: GraphQLTypes["Card"] | undefined, @@ -936,55 +933,20 @@ export type ModelTypes = { myStacks?: Array | undefined, nameables: Array }; - ["SpecialCard"]: { - effect: string, + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + ["EffectCard"]: { + effectSize: number, name: string -} +}; + /** create card inputs
    */ +["createCard"]: GraphQLTypes["createCard"] } export type GraphQLTypes = { - ["JSON"]: "scalar" & { name: "JSON" }; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string -}; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, name: string -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined -}; - ["SpecialSkills"]: SpecialSkills; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; - /** create card inputs
    */ -["createCard"]: { - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string, - /**
    How many children the greek god had
    */ - Children?: number | undefined, - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined }; /** Card used in card game
    */ ["Card"]: { @@ -1008,19 +970,41 @@ export type GraphQLTypes = { name: string, skills?: Array | undefined }; - ["Nameable"]: { - __typename:"EffectCard" | "Card" | "CardStack" | "SpecialCard", - name: string - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; -}; + ["JSON"]: "scalar" & { name: "JSON" }; /** Stack of cards */ ["CardStack"]: { __typename: "CardStack", cards?: Array | undefined, name: string +}; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["Nameable"]: { + __typename:"SpecialCard" | "Card" | "CardStack" | "EffectCard", + name: string + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string +}; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined }; ["Query"]: { __typename: "Query", @@ -1033,10 +1017,26 @@ export type GraphQLTypes = { myStacks?: Array | undefined, nameables: Array }; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, + ["SpecialSkills"]: SpecialSkills; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, name: string +}; + /** create card inputs
    */ +["createCard"]: { + /** The attack power
    */ + Attack: number, + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined, + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined } } export const enum SpecialSkills { diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index accf4a27..8529dd7b 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,75 +1,12 @@ """""" -scalar JSON - -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - - """""" - key: String! - - """""" - region: String! -} - -"""""" -type EffectCard implements Nameable { +type SpecialCard implements Nameable { """""" - effectSize: Float! + effect: String! """""" name: String! } -"""""" -type Subscription { - """""" - deck: [Card!] -} - -"""""" -enum SpecialSkills { - """Lower enemy defense -5
    """ - THUNDER - - """Attack multiple Cards at once
    """ - RAIN - - """50% chance to avoid any attack
    """ - FIRE -} - -"""""" -union ChangeCard = SpecialCard | EffectCard - -"""""" -type Mutation { - """add Card to Cards database
    """ - addCard(card: createCard!): Card! -} - -"""create card inputs
    """ -input createCard { - """The name of a card
    """ - name: String! - - """Description of a card
    """ - description: String! - - """
    How many children the greek god had
    """ - Children: Int - - """The attack power
    """ - Attack: Int! - - """The defense power
    """ - Defense: Int! - - """input skills""" - skills: [SpecialSkills!] -} - """Card used in card game
    """ type Card implements Nameable { """The attack power
    """ @@ -110,10 +47,7 @@ type Card implements Nameable { } """""" -interface Nameable { - """""" - name: String! -} +scalar JSON """Stack of cards""" type CardStack implements Nameable { @@ -124,6 +58,39 @@ type CardStack implements Nameable { name: String! } +"""""" +type Mutation { + """add Card to Cards database
    """ + addCard(card: createCard!): Card! +} + +"""""" +interface Nameable { + """""" + name: String! +} + +"""Aws S3 File""" +type S3Object { + """""" + bucket: String! + + """""" + key: String! + + """""" + region: String! +} + +"""""" +union ChangeCard = SpecialCard | EffectCard + +"""""" +type Subscription { + """""" + deck: [Card!] +} + """""" type Query { """""" @@ -146,13 +113,46 @@ type Query { } """""" -type SpecialCard implements Nameable { +enum SpecialSkills { + """Lower enemy defense -5
    """ + THUNDER + + """Attack multiple Cards at once
    """ + RAIN + + """50% chance to avoid any attack
    """ + FIRE +} + +"""""" +type EffectCard implements Nameable { """""" - effect: String! + effectSize: Float! """""" name: String! } + +"""create card inputs
    """ +input createCard { + """The attack power
    """ + Attack: Int! + + """The defense power
    """ + Defense: Int! + + """input skills""" + skills: [SpecialSkills!] + + """The name of a card
    """ + name: String! + + """Description of a card
    """ + description: String! + + """
    How many children the greek god had
    """ + Children: Int +} schema{ query: Query, mutation: Mutation, diff --git a/package.json b/package.json index da11dbcf..e4ed9a8f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.1.0", + "version": "5.1.1", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", From 59d55d8d0d71b315b97a01f4a1591b26d305727c Mon Sep 17 00:00:00 2001 From: aexol Date: Thu, 23 Jun 2022 10:41:24 +0200 Subject: [PATCH 50/74] :sparkles: Decided scalars should be stringified scalars should be stringified if no decoder used --- examples/typescript-node/src/index.ts | 4 +- examples/typescript-node/src/zeus/apollo.ts | 36 +-- examples/typescript-node/src/zeus/const.ts | 92 +++--- examples/typescript-node/src/zeus/index.ts | 292 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- examples/typescript-node/zeus.graphql | 172 +++++------ package.json | 2 +- src/TreeToTS/functions/generated.ts | 2 +- src/TreeToTS/functions/new/resolvePath.ts | 3 +- 9 files changed, 314 insertions(+), 313 deletions(-) diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index 9cf67cc4..1640595e 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -11,7 +11,7 @@ import { useZeusVariables, ZeusScalars, } from './zeus'; -import { ApolloClient, InMemoryCache, useQuery } from '@apollo/client'; +import { ApolloClient, InMemoryCache } from '@apollo/client'; import { typedGql } from './zeus/typedDocumentNode'; export const testMutate = () => { @@ -50,7 +50,7 @@ const decoders = ZeusScalars({ export type IRT = InputType; -const printQueryResult = (name: string, result: any) => +const printQueryResult = (name: string, result: unknown) => console.log(`${chalk.greenBright(name)} result:\n${chalk.cyan(JSON.stringify(result, null, 4))}\n\n`); const printGQLString = (name: string, result: string) => console.log(`${chalk.blue(name)} query:\n${chalk.magenta(result)}\n\n`); diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 27fe6f51..fcc56c5f 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,58 +1,58 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index'; -import { gql, useMutation, useSubscription, useQuery, useLazyQuery } from '@apollo/client'; -import type { MutationHookOptions, SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; +import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; -export function useTypedMutation( - mutation: Z | ValueTypes[O], +export function useTypedQuery( + query: Z | ValueTypes[O], options?:{ - apolloOptions?: MutationHookOptions>, + apolloOptions?: QueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useMutation>(gql(Zeus("mutation",mutation, { + return useQuery>(gql(Zeus("query",query, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedSubscription( - subscription: Z | ValueTypes[O], +export function useTypedLazyQuery( + LazyQuery: Z | ValueTypes[O], options?:{ - apolloOptions?: SubscriptionHookOptions>, + apolloOptions?: LazyQueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useSubscription>(gql(Zeus("subscription",subscription, { + return useLazyQuery>(gql(Zeus("query",LazyQuery, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedQuery( - query: Z | ValueTypes[O], +export function useTypedMutation( + mutation: Z | ValueTypes[O], options?:{ - apolloOptions?: QueryHookOptions>, + apolloOptions?: MutationHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useQuery>(gql(Zeus("query",query, { + return useMutation>(gql(Zeus("mutation",mutation, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedLazyQuery( - LazyQuery: Z | ValueTypes[O], +export function useTypedSubscription( + subscription: Z | ValueTypes[O], options?:{ - apolloOptions?: LazyQueryHookOptions>, + apolloOptions?: SubscriptionHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useLazyQuery>(gql(Zeus("query",LazyQuery, { + return useSubscription>(gql(Zeus("subscription",subscription, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 71e92f88..93460283 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,33 +1,57 @@ /* eslint-disable */ export const AllTypesProps: Record = { - Card:{ - attack:{ + SpecialSkills: "enum" as const, + Query:{ + cardById:{ } }, - JSON: `scalar.JSON` as const, Mutation:{ addCard:{ card:"createCard" } }, - Query:{ - cardById:{ - - } - }, - SpecialSkills: "enum" as const, + JSON: `scalar.JSON` as const, createCard:{ skills:"SpecialSkills" + }, + Card:{ + attack:{ + + } } } export const ReturnTypes: Record = { - SpecialCard:{ - effect:"String", + Nameable:{ + "...on EffectCard": "EffectCard", + "...on Card": "Card", + "...on SpecialCard": "SpecialCard", + "...on CardStack": "CardStack", name:"String" }, + EffectCard:{ + effectSize:"Float", + name:"String" + }, + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" + }, + Mutation:{ + addCard:"Card" + }, + JSON: `scalar.JSON` as const, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, Card:{ Attack:"Int", Children:"Int", @@ -41,49 +65,25 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, - JSON: `scalar.JSON` as const, - CardStack:{ - cards:"Card", - name:"String" - }, - Mutation:{ - addCard:"Card" - }, - Nameable:{ - "...on SpecialCard": "SpecialCard", - "...on Card": "Card", - "...on CardStack": "CardStack", - "...on EffectCard": "EffectCard", - name:"String" - }, - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, ChangeCard:{ "...on SpecialCard":"SpecialCard", "...on EffectCard":"EffectCard" }, - Subscription:{ - deck:"Card" - }, - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" + SpecialCard:{ + effect:"String", + name:"String" }, - EffectCard:{ - effectSize:"Float", + CardStack:{ + cards:"Card", name:"String" + }, + Subscription:{ + deck:"Card" } } export const Ops = { -mutation: "Mutation" as const, - subscription: "Subscription" as const, - query: "Query" as const +query: "Query" as const, + mutation: "Mutation" as const, + subscription: "Subscription" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 22219abb..05330671 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -612,7 +612,7 @@ export const InternalArgsBuilt = ({ if (checkType.startsWith('scalar.')) { const [_, ...splittedScalar] = checkType.split('.'); const scalarKey = splittedScalar.join('.'); - return (scalars?.[scalarKey]?.encode?.(a) as string) || (a as string); + return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); } if (Array.isArray(a)) { return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; @@ -781,11 +781,58 @@ export type ScalarCoders = { type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on EffectCard']?: Omit; + ['...on Card']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on CardStack']?: Omit; + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], + /** Draw a card
    */ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + /** create card inputs
    */ +["createCard"]: { + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined | null, + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined | null, + /** The attack power
    */ + Attack: number +}; /** Card used in card game
    */ ["Card"]: AliasType<{ /** The attack power
    */ @@ -807,80 +854,58 @@ attack?: [{ /** Attacked card/card ids
    */ name?:boolean | `@${string}`, skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}>; - ["JSON"]:unknown; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on SpecialCard']?: Omit; - ['...on Card']?: Omit; - ['...on CardStack']?: Omit; - ['...on EffectCard']?: Omit; - __typename?: boolean | `@${string}` -}>; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, - __typename?: boolean | `@${string}` }>; ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` }>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean | `@${string}` -}>; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], - /** Draw a card
    */ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["SpecialSkills"]:SpecialSkills; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - /** create card inputs
    */ -["createCard"]: { - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined | null, - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string, - /**
    How many children the greek god had
    */ - Children?: number | undefined | null -} + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}> } export type ModelTypes = { - ["SpecialCard"]: { - effect: string, + ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"]; + ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; + ["EffectCard"]: { + effectSize: number, name: string }; + ["Query"]: { + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["Mutation"]: { + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["JSON"]:any; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string +}; + /** create card inputs
    */ +["createCard"]: GraphQLTypes["createCard"]; /** Card used in card game
    */ ["Card"]: { /** The attack power
    */ @@ -902,29 +927,39 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["JSON"]:any; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["SpecialCard"]: { + effect: string, + name: string +}; /** Stack of cards */ ["CardStack"]: { cards?: Array | undefined, name: string }; - ["Mutation"]: { - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; - ["Nameable"]: ModelTypes["SpecialCard"] | ModelTypes["Card"] | ModelTypes["CardStack"] | ModelTypes["EffectCard"]; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; ["Subscription"]: { deck?: Array | undefined +} + } + +export type GraphQLTypes = { + ["Nameable"]: { + __typename:"EffectCard" | "Card" | "SpecialCard" | "CardStack", + name: string + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; +}; + ["SpecialSkills"]: SpecialSkills; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string }; ["Query"]: { - cardById?: GraphQLTypes["Card"] | undefined, + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, /** Draw a card
    */ drawCard: GraphQLTypes["Card"], drawChangeCard: GraphQLTypes["ChangeCard"], @@ -933,20 +968,33 @@ export type ModelTypes = { myStacks?: Array | undefined, nameables: Array }; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["EffectCard"]: { - effectSize: number, - name: string + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["JSON"]: "scalar" & { name: "JSON" }; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string }; /** create card inputs
    */ -["createCard"]: GraphQLTypes["createCard"] - } - -export type GraphQLTypes = { - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, - name: string +["createCard"]: { + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined, + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined, + /** The attack power
    */ + Attack: number }; /** Card used in card game
    */ ["Card"]: { @@ -970,73 +1018,25 @@ export type GraphQLTypes = { name: string, skills?: Array | undefined }; - ["JSON"]: "scalar" & { name: "JSON" }; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string +}; /** Stack of cards */ ["CardStack"]: { __typename: "CardStack", cards?: Array | undefined, name: string -}; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; - ["Nameable"]: { - __typename:"SpecialCard" | "Card" | "CardStack" | "EffectCard", - name: string - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string -}; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; ["Subscription"]: { __typename: "Subscription", deck?: Array | undefined -}; - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - ["SpecialSkills"]: SpecialSkills; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, - name: string -}; - /** create card inputs
    */ -["createCard"]: { - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined, - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string, - /**
    How many children the greek god had
    */ - Children?: number | undefined } } export const enum SpecialSkills { diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 0c742c2d..77ddaaaf 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useMutation, useQuery } from 'react-query'; -import type { UseMutationOptions, UseQueryOptions } from 'react-query'; +import { useQuery, useMutation } from 'react-query'; +import type { UseQueryOptions, UseMutationOptions } from 'react-query'; -export function useTypedMutation>( - mutationKey: string | unknown[], - mutation: TData | ValueTypes[O], - options?: Omit, 'mutationKey' | 'mutationFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); -} export function useTypedQuery>( queryKey: string | unknown[], query: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); } +export function useTypedMutation>( + mutationKey: string | unknown[], + mutation: TData | ValueTypes[O], + options?: Omit, 'mutationKey' | 'mutationFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 8529dd7b..b656c9d0 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,61 +1,49 @@ """""" -type SpecialCard implements Nameable { - """""" - effect: String! - +interface Nameable { """""" name: String! } -"""Card used in card game
    """ -type Card implements Nameable { - """The attack power
    """ - Attack: Int! - - """
    How many children the greek god had
    """ - Children: Int - - """The defense power
    """ - Defense: Int! - - """Attack other cards on the table , returns Cards after attack
    """ - attack( - """Attacked card/card ids
    """ - cardID: [String!]! - ): [Card!] +"""""" +enum SpecialSkills { + """Lower enemy defense -5
    """ + THUNDER - """Put your description here""" - cardImage: S3Object + """Attack multiple Cards at once
    """ + RAIN - """Description of a card
    """ - description: String! + """50% chance to avoid any attack
    """ + FIRE +} +"""""" +type EffectCard implements Nameable { """""" - id: ID! + effectSize: Float! """""" - image: String! + name: String! +} +"""""" +type Query { """""" - info: JSON! + cardById(cardId: String): Card - """The name of a card
    """ - name: String! + """Draw a card
    """ + drawCard: Card! """""" - skills: [SpecialSkills!] -} + drawChangeCard: ChangeCard! -"""""" -scalar JSON + """list All Cards availble
    """ + listCards: [Card!]! -"""Stack of cards""" -type CardStack implements Nameable { """""" - cards: [Card!] + myStacks: [CardStack!] """""" - name: String! + nameables: [Nameable!]! } """""" @@ -65,10 +53,7 @@ type Mutation { } """""" -interface Nameable { - """""" - name: String! -} +scalar JSON """Aws S3 File""" type S3Object { @@ -82,76 +67,91 @@ type S3Object { region: String! } -"""""" -union ChangeCard = SpecialCard | EffectCard +"""create card inputs
    """ +input createCard { + """The defense power
    """ + Defense: Int! -"""""" -type Subscription { - """""" - deck: [Card!] + """input skills""" + skills: [SpecialSkills!] + + """The name of a card
    """ + name: String! + + """Description of a card
    """ + description: String! + + """
    How many children the greek god had
    """ + Children: Int + + """The attack power
    """ + Attack: Int! } -"""""" -type Query { - """""" - cardById(cardId: String): Card +"""Card used in card game
    """ +type Card implements Nameable { + """The attack power
    """ + Attack: Int! - """Draw a card
    """ - drawCard: Card! + """
    How many children the greek god had
    """ + Children: Int - """""" - drawChangeCard: ChangeCard! + """The defense power
    """ + Defense: Int! - """list All Cards availble
    """ - listCards: [Card!]! + """Attack other cards on the table , returns Cards after attack
    """ + attack( + """Attacked card/card ids
    """ + cardID: [String!]! + ): [Card!] + + """Put your description here""" + cardImage: S3Object + + """Description of a card
    """ + description: String! """""" - myStacks: [CardStack!] + id: ID! """""" - nameables: [Nameable!]! -} + image: String! -"""""" -enum SpecialSkills { - """Lower enemy defense -5
    """ - THUNDER + """""" + info: JSON! - """Attack multiple Cards at once
    """ - RAIN + """The name of a card
    """ + name: String! - """50% chance to avoid any attack
    """ - FIRE + """""" + skills: [SpecialSkills!] } """""" -type EffectCard implements Nameable { +union ChangeCard = SpecialCard | EffectCard + +"""""" +type SpecialCard implements Nameable { """""" - effectSize: Float! + effect: String! """""" name: String! } -"""create card inputs
    """ -input createCard { - """The attack power
    """ - Attack: Int! - - """The defense power
    """ - Defense: Int! - - """input skills""" - skills: [SpecialSkills!] +"""Stack of cards""" +type CardStack implements Nameable { + """""" + cards: [Card!] - """The name of a card
    """ + """""" name: String! +} - """Description of a card
    """ - description: String! - - """
    How many children the greek god had
    """ - Children: Int +"""""" +type Subscription { + """""" + deck: [Card!] } schema{ query: Query, diff --git a/package.json b/package.json index e4ed9a8f..95b3c583 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.1.1", + "version": "5.1.2", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index ae505f6f..723245b0 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -603,7 +603,7 @@ export const InternalArgsBuilt = ({ if (checkType.startsWith('scalar.')) { const [_, ...splittedScalar] = checkType.split('.'); const scalarKey = splittedScalar.join('.'); - return (scalars?.[scalarKey]?.encode?.(a) as string) || (a as string); + return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); } if (Array.isArray(a)) { return \`[\${a.map((arr) => arb(arr, p, false)).join(', ')}]\`; diff --git a/src/TreeToTS/functions/new/resolvePath.ts b/src/TreeToTS/functions/new/resolvePath.ts index d2246ab1..472138dc 100644 --- a/src/TreeToTS/functions/new/resolvePath.ts +++ b/src/TreeToTS/functions/new/resolvePath.ts @@ -112,9 +112,10 @@ export const InternalArgsBuilt = ({ const arb = (a: ZeusArgsType, p = '', root = true): string => { const checkType = ResolveFromPath(props, returns, ops)(p); if (checkType.startsWith('scalar.')) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars const [_, ...splittedScalar] = checkType.split('.'); const scalarKey = splittedScalar.join('.'); - return (scalars?.[scalarKey]?.encode?.(a) as string) || (a as string); + return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); } if (Array.isArray(a)) { return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; From 56a82da1ad7736350812d4f1910e09eb012be727 Mon Sep 17 00:00:00 2001 From: Gautier Date: Tue, 28 Jun 2022 09:30:33 +0200 Subject: [PATCH 51/74] fix(#314): added explicit runtime error --- src/TreeToTS/functions/generated.ts | 2 ++ src/TreeToTS/functions/new/resolvePath.ts | 1 + 2 files changed, 3 insertions(+) diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 723245b0..cb331a41 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -558,6 +558,7 @@ export const ResolveFromPath = (props: AllTypesPropsType, returns: ReturnTypesTy const oKey = ops[mappedParts[0].v]; const returnP1 = oKey ? returns[oKey] : returns[mappedParts[0].v]; if (typeof returnP1 === 'object') { + if (!mappedParts[1]) throw new Error(\`\${mappedParts[0].v} does not take arguments\`); const returnP2 = returnP1[mappedParts[1].v]; if (returnP2) { return rpp( @@ -601,6 +602,7 @@ export const InternalArgsBuilt = ({ const arb = (a: ZeusArgsType, p = '', root = true): string => { const checkType = ResolveFromPath(props, returns, ops)(p); if (checkType.startsWith('scalar.')) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars const [_, ...splittedScalar] = checkType.split('.'); const scalarKey = splittedScalar.join('.'); return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); diff --git a/src/TreeToTS/functions/new/resolvePath.ts b/src/TreeToTS/functions/new/resolvePath.ts index 472138dc..193f1f4f 100644 --- a/src/TreeToTS/functions/new/resolvePath.ts +++ b/src/TreeToTS/functions/new/resolvePath.ts @@ -69,6 +69,7 @@ export const ResolveFromPath = (props: AllTypesPropsType, returns: ReturnTypesTy const oKey = ops[mappedParts[0].v]; const returnP1 = oKey ? returns[oKey] : returns[mappedParts[0].v]; if (typeof returnP1 === 'object') { + if (!mappedParts[1]) throw new Error(`${mappedParts[0].v} does not take arguments`); const returnP2 = returnP1[mappedParts[1].v]; if (returnP2) { return rpp( From dfbd3fe29efa54a9fb2cc9bf6c6ca28180e9016d Mon Sep 17 00:00:00 2001 From: aexol Date: Thu, 30 Jun 2022 16:25:03 +0200 Subject: [PATCH 52/74] :sparkles: Full typed document node support with type vars! --- doc/src/markdown/graphql/variables.md | 51 +- doc/src/markdown/plugins/apollo.md | 71 ++- doc/src/markdown/plugins/typedDocumentNode.md | 43 +- examples/typescript-node/src/index.ts | 65 +-- examples/typescript-node/src/zeus/apollo.ts | 36 +- examples/typescript-node/src/zeus/const.ts | 92 ++-- examples/typescript-node/src/zeus/index.ts | 477 +++++++++++------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- .../src/zeus/typedDocumentNode.ts | 4 +- examples/typescript-node/zeus.graphql | 160 +++--- src/TreeToTS/functions/apiTest/index.spec.ts | 12 + src/TreeToTS/functions/generated.ts | 164 ++++-- src/TreeToTS/functions/new/buildQuery.spec.ts | 12 +- src/TreeToTS/functions/new/buildQuery.ts | 24 +- src/TreeToTS/functions/new/clientFunctions.ts | 7 +- src/TreeToTS/functions/new/mocks.ts | 62 ++- src/TreeToTS/functions/new/models.ts | 6 +- src/TreeToTS/functions/new/resolvePath.ts | 23 +- src/TreeToTS/functions/new/types.ts | 61 ++- .../functions/new/useZeusVariables.spec.ts | 14 - .../functions/new/useZeusVariables.ts | 24 - src/TreeToTS/functions/new/variableExtract.ts | 24 + src/TreeToTS/index.ts | 6 +- src/TreeToTS/templates/modelTypes/index.ts | 9 +- src/TreeToTS/templates/shared/field.ts | 5 +- src/TreeToTS/templates/shared/primitive.ts | 2 +- src/TreeToTS/templates/valueTypes/arg.ts | 7 +- src/TreeToTS/templates/valueTypes/index.ts | 1 - src/TreeToTS/templates/variableTypes/index.ts | 16 + src/plugins/typedDocumentNode/index.ts | 4 +- 30 files changed, 903 insertions(+), 603 deletions(-) delete mode 100644 src/TreeToTS/functions/new/useZeusVariables.spec.ts delete mode 100644 src/TreeToTS/functions/new/useZeusVariables.ts create mode 100644 src/TreeToTS/functions/new/variableExtract.ts create mode 100644 src/TreeToTS/templates/variableTypes/index.ts diff --git a/doc/src/markdown/graphql/variables.md b/doc/src/markdown/graphql/variables.md index f3f021de..24411fc5 100644 --- a/doc/src/markdown/graphql/variables.md +++ b/doc/src/markdown/graphql/variables.md @@ -10,16 +10,7 @@ category: GraphQL It's simple to perform queries with variables by using `useZeusVariables` function. It forces you to be type-safe also ```ts -import { Gql, useZeusVariables } from './zeus'; -const variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({ - card: { - Attack: 2, - Defense: 3, - description: 'Lord of the mountains', - name: 'Golrog', - }, -}); -const { $ } = variables; +import { Gql, $ } from './zeus'; const addCardResult = await Gql('mutation')( { @@ -44,17 +35,45 @@ const addCardResult = await Gql('mutation')( ], }, { - variables, + variables: { + Attack: 2, + Defense: 3, + description: 'Lord of the mountains', + name: 'Golrog', + }, }, ); ``` -Note: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg: +### TypedDocumentNode + Apollo Client useQuery examples -```typescript -const [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation }); +The following example demonstrates usage with Apollo. Other clients should work similarly. -await addCard({ - variables: variables.values, +```tsx +import { typedGql } from './zeus/typedDocumentNode'; +import { $ } from './zeus'; +import { useQuery } from '@apollo/client'; + +const myMutation = typedGql('mutation')({ + cardById: [{ cardId: $('cardId') }, { name: true }], }); + +const Main = () => { + const [mutate] = useMutation(myMutation); + // data response is typed + return ( +
    { + // this are typesafe vars + mutate({ + variables: { + cardId: 'du1hn298u1eh', + }, + }); + }} + > + Click +
    + ); +}; ``` diff --git a/doc/src/markdown/plugins/apollo.md b/doc/src/markdown/plugins/apollo.md index 0e6d17e6..deb62b44 100644 --- a/doc/src/markdown/plugins/apollo.md +++ b/doc/src/markdown/plugins/apollo.md @@ -7,61 +7,48 @@ category: Plugins ## Usage with Apollo GraphQL -Zeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. 🚀 +From 5.1.3 Zeus apollo should be used with graphql-typed-document-node + +``` +npm i @graphql-codegen/typed-document-node +``` ### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks ```sh -$ zeus schema.graphql ./ --apollo +$ zeus schema.graphql ./ --typedDocumentNode # apollo.ts file with typed hooks is now in the output destination ``` -### Apollo Client `useTypedQuery` Hook Example - -```tsx -import { useTypedQuery } from './zeus/apollo'; +### TypedDocumentNode + Apollo Client useQuery examples -const Main = () => { - const { data } = useTypedQuery({ - // Get autocomplete here: - drawCard: { - name: true, - }, - }); - // data response is now typed - return
    {data.drawCard.name}
    ; -}; -``` - -### Inferring the response type for Apollo Client - -If you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library +The following example demonstrates usage with Apollo. Other clients should work similarly. ```tsx -import { Selector, InputType, GraphQLTypes } from './zeus'; +import { typedGql } from './zeus/typedDocumentNode'; +import { $ } from './zeus'; +import { useQuery } from '@apollo/client'; -export const drawCardQuery = Selector('Card')({ - drawCard: { - id: true, - name: true, - Attack: true, - Children: true, - }, +const myMutation = typedGql('mutation')({ + cardById: [{ cardId: $('cardId') }, { name: true }], }); -type DrawCardResponseType = InputType; -// DrawCardResponseType is now the response type from the query -``` - -Now `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later - -```tsx -import { useTypedQuery } from './zeus/apollo'; -import { drawCardQuery } from './'; - const Main = () => { - const { data } = useTypedQuery(drawCardQuery); - // data is of type DrawCardResponseType as per the above example - return
    {data.drawCard.name}
    ; + const [mutate] = useMutation(myMutation); + // data response is typed + return ( +
    { + // this are typesafe vars + mutate({ + variables: { + cardId: 'du1hn298u1eh', + }, + }); + }} + > + Click +
    + ); }; ``` diff --git a/doc/src/markdown/plugins/typedDocumentNode.md b/doc/src/markdown/plugins/typedDocumentNode.md index af1533d7..4795ec9f 100644 --- a/doc/src/markdown/plugins/typedDocumentNode.md +++ b/doc/src/markdown/plugins/typedDocumentNode.md @@ -7,6 +7,10 @@ category: Plugins ## Usage with Typed Document Node +``` +npm i @graphql-codegen/typed-document-node +``` + Zeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query representation understood by most GraphQL clients (including Apollo, urql etc) by adding the `--typedDocumentNode` or `--td` flag to the CLI. @@ -24,33 +28,30 @@ The following example demonstrates usage with Apollo. Other clients should work ```tsx import { typedGql } from './zeus/typedDocumentNode'; -import { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus'; +import { $ } from './zeus'; import { useQuery } from '@apollo/client'; -const variables = useZeusVariables({ cardId: 'String!' })({ - cardId: 'blabla', +const myMutation = typedGql('mutation')({ + cardById: [{ cardId: $('cardId') }, { name: true }], }); -const { $ } = variables; - -const myQuery = typedGql('query')( - { - drawCard: { - id: true, - Attack: true, - Defense: true, - }, - cardById: [{ cardId: $('cardId') }, { id: true }], - }, - { variables }, -); const Main = () => { - const { data } = useQuery(myQuery, { - // use those values or provide other values than default - variables: variables.values, - }); + const [mutate] = useMutation(myMutation); // data response is typed - return
    {data.drawCard.name}
    ; + return ( +
    { + // this are typesafe vars + mutate({ + variables: { + cardId: 'du1hn298u1eh', + }, + }); + }} + > + Click +
    + ); }; ``` diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index 1640595e..c21271ba 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -8,24 +8,41 @@ import { InputType, Selector, GraphQLTypes, - useZeusVariables, ZeusScalars, + ValueTypes, + $, } from './zeus'; -import { ApolloClient, InMemoryCache } from '@apollo/client'; +import { ApolloClient, InMemoryCache, useMutation } from '@apollo/client'; import { typedGql } from './zeus/typedDocumentNode'; +const client = new ApolloClient({ + cache: new InMemoryCache(), +}); + +export const useMyMutation = () => { + return ({ card }: { card: ValueTypes['createCard'] }) => + client.mutate({ + mutation: typedGql('mutation')({ + addCard: [{ card }, { id: true }], + }), + }); +}; + export const testMutate = () => { - const client = new ApolloClient({ - cache: new InMemoryCache(), - }); - const td = typedGql('mutation')({ - addCard: [{ card: { Attack: 1, Defense: 2, name: 'Pokemon', description: 'Stronk' } }, { id: true }], + const [mutate] = useMutation( + typedGql('mutation')({ + addCard: [ + { card: { Attack: $('attt', 'Int'), Defense: 2, name: $('name', 'String!'), description: 'Stronk' } }, + { id: true }, + ], + }), + ); + mutate({ + variables: { + name: 'DDD', + attt: 1, + }, }); - client - .mutate({ - mutation: td, - }) - .then((data) => data.data?.addCard?.id); }; const sel = Selector('Query')({ @@ -220,7 +237,6 @@ const run = async () => { }, ); printGQLString('operationName ListCards', operationName); - const { $, values, $params } = useZeusVariables({ cardIds: '[String!]!' })({ cardIds: ['1', '2'] }); const aliasedQueryExecute = await Gql('query')( { listCards: { @@ -230,7 +246,7 @@ const run = async () => { }, atak: { attack: [ - { cardID: $('cardIds') }, + { cardID: $('cardIds', '[String!]!') }, { name: true, __alias: { @@ -250,8 +266,7 @@ const run = async () => { }, { variables: { - $params, - values, + cardIds: ['aaa'], }, }, ); @@ -307,18 +322,14 @@ const run = async () => { printQueryResult('interfaceTest', interfaceTest); // Variable test - const mutationVars = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({ - Attack: 1, - Defense: 10, - }); const test = await Gql('mutation')( { addCard: [ { card: { - Attack: mutationVars.$('Attack'), - Defense: mutationVars.$('Defense'), + Attack: $('Attack', 'Int!'), + Defense: $('Defense', 'Int!'), name: 'aa', description: 'aa', }, @@ -340,25 +351,21 @@ const run = async () => { ], }, { - variables: mutationVars, + variables: { Attack: 1, Defense: 1 }, }, ); printQueryResult('variable Test', test); - const zeusTDDVars = useZeusVariables({ cardId: 'String!' })({ - cardId: 'blabla', - }); - const selectorTDD = Selector('Query')({ drawCard: { id: true, Attack: true, Defense: true, }, - cardById: [{ cardId: zeusTDDVars.$('cardId') }, { id: true }], + cardById: [{ cardId: $('cardId', 'String!') }, { id: true }], }); - const generatedTypedDocumentNode = typedGql('query')(selectorTDD, { variables: zeusTDDVars }); + const generatedTypedDocumentNode = typedGql('query')(selectorTDD); printQueryResult('Generated TypedDocumentNode Test', generatedTypedDocumentNode); }; run(); diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index fcc56c5f..0d167d82 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,58 +1,58 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index'; -import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; -import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; +import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; +import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; -export function useTypedQuery( - query: Z | ValueTypes[O], +export function useTypedSubscription( + subscription: Z | ValueTypes[O], options?:{ - apolloOptions?: QueryHookOptions>, + apolloOptions?: SubscriptionHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useQuery>(gql(Zeus("query",query, { + return useSubscription>(gql(Zeus("subscription",subscription, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedLazyQuery( - LazyQuery: Z | ValueTypes[O], +export function useTypedMutation( + mutation: Z | ValueTypes[O], options?:{ - apolloOptions?: LazyQueryHookOptions>, + apolloOptions?: MutationHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useLazyQuery>(gql(Zeus("query",LazyQuery, { + return useMutation>(gql(Zeus("mutation",mutation, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedMutation( - mutation: Z | ValueTypes[O], +export function useTypedQuery( + query: Z | ValueTypes[O], options?:{ - apolloOptions?: MutationHookOptions>, + apolloOptions?: QueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useMutation>(gql(Zeus("mutation",mutation, { + return useQuery>(gql(Zeus("query",query, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedSubscription( - subscription: Z | ValueTypes[O], +export function useTypedLazyQuery( + LazyQuery: Z | ValueTypes[O], options?:{ - apolloOptions?: SubscriptionHookOptions>, + apolloOptions?: LazyQueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useSubscription>(gql(Zeus("subscription",subscription, { + return useLazyQuery>(gql(Zeus("query",LazyQuery, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 93460283..4cb8008f 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,57 +1,29 @@ /* eslint-disable */ export const AllTypesProps: Record = { - SpecialSkills: "enum" as const, - Query:{ - cardById:{ + Card:{ + attack:{ } }, + JSON: `scalar.JSON` as const, + createCard:{ + skills:"SpecialSkills" + }, Mutation:{ addCard:{ card:"createCard" } }, - JSON: `scalar.JSON` as const, - createCard:{ - skills:"SpecialSkills" - }, - Card:{ - attack:{ + Query:{ + cardById:{ } - } + }, + SpecialSkills: "enum" as const } export const ReturnTypes: Record = { - Nameable:{ - "...on EffectCard": "EffectCard", - "...on Card": "Card", - "...on SpecialCard": "SpecialCard", - "...on CardStack": "CardStack", - name:"String" - }, - EffectCard:{ - effectSize:"Float", - name:"String" - }, - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" - }, - Mutation:{ - addCard:"Card" - }, - JSON: `scalar.JSON` as const, - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, Card:{ Attack:"Int", Children:"Int", @@ -65,25 +37,53 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, SpecialCard:{ effect:"String", name:"String" }, + Subscription:{ + deck:"Card" + }, + Nameable:{ + "...on Card": "Card", + "...on SpecialCard": "SpecialCard", + "...on EffectCard": "EffectCard", + "...on CardStack": "CardStack", + name:"String" + }, + JSON: `scalar.JSON` as const, + EffectCard:{ + effectSize:"Float", + name:"String" + }, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, CardStack:{ cards:"Card", name:"String" }, - Subscription:{ - deck:"Card" + Mutation:{ + addCard:"Card" + }, + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" + }, + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" } } export const Ops = { -query: "Query" as const, +subscription: "Subscription" as const, mutation: "Mutation" as const, - subscription: "Subscription" as const + query: "Query" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 05330671..398ef5af 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -113,7 +113,13 @@ export const InternalsBuildQuery = ({ options?: OperationOptions; scalars?: ScalarDefinition; }) => { - const ibb = (k: string, o: InputValueType | VType, p = '', root = true): string => { + const ibb = ( + k: string, + o: InputValueType | VType, + p = '', + root = true, + vars: Array<{ name: string; graphQLType: string }> = [], + ): string => { const keyForPath = purifyGraphQLKey(k); const newPath = [p, keyForPath].join(SEPARATOR); if (!o) { @@ -131,9 +137,9 @@ export const InternalsBuildQuery = ({ returns, ops, scalars, - variables: options?.variables?.values, + vars, })(o[0], newPath); - return `${ibb(args ? `${k}(${args})` : k, o[1], p, false)}`; + return `${ibb(args ? `${k}(${args})` : k, o[1], p, false, vars)}`; } if (k === '__alias') { return Object.entries(o) @@ -145,17 +151,21 @@ export const InternalsBuildQuery = ({ } const operationName = Object.keys(objectUnderAlias)[0]; const operation = objectUnderAlias[operationName]; - return ibb(`${alias}:${operationName}`, operation, p, false); + return ibb(`${alias}:${operationName}`, operation, p, false, vars); }) .join('\n'); } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; - const hasVariables = root && options?.variables?.$params ? `(${options.variables?.$params})` : ''; const keyForDirectives = o.__directives ?? ''; - return `${k} ${keyForDirectives}${hasOperationName}${hasVariables}{${Object.entries(o) + const query = `{${Object.entries(o) .filter(([k]) => k !== '__directives') - .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join(SEPARATOR), false)) + .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join(SEPARATOR), false, vars)) .join('\n')}}`; + if (!root) { + return `${k} ${keyForDirectives}${hasOperationName} ${query}`; + } + const varsString = vars.map((v) => `${v.name}: ${v.graphQLType}`).join(', '); + return `${k} ${keyForDirectives}${hasOperationName}${varsString ? `(${varsString})` : ''} ${query}`; }; return ibb; }; @@ -167,19 +177,20 @@ export const InternalsBuildQuery = ({ + export const Thunder = (fn: FetchFunction) => >( operation: O, graphqlOptions?: ThunderGraphQLOptions, ) => - (o: Z | ValueTypes[R], ops?: OperationOptions) => + (o: Z | ValueTypes[R], ops?: OperationOptions & { variables?: Record }) => fn( Zeus(operation, o, { operationOptions: ops, scalars: graphqlOptions?.scalars, }), - ops?.variables?.values, + ops?.variables, ).then((data) => { if (graphqlOptions?.scalars) { return decodeScalarsInResponse({ @@ -202,7 +213,7 @@ export const SubscriptionThunder = operation: O, graphqlOptions?: ThunderGraphQLOptions, ) => - (o: Z | ValueTypes[R], ops?: OperationOptions) => { + (o: Z | ValueTypes[R], ops?: OperationOptions & { variables?: ExtractVariables }) => { const returnedFunction = fn( Zeus(operation, o, { operationOptions: ops, @@ -335,7 +346,6 @@ export const traverseResponse = ({ - export type AllTypesPropsType = { [x: string]: | undefined @@ -389,13 +399,12 @@ export const SEPARATOR = '|'; export type fetchOptions = Parameters; type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; -export type FetchFunction = (query: string, variables?: Record) => Promise; +export type FetchFunction = (query: string, variables?: Record) => Promise; export type SubscriptionFunction = (query: string) => any; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; -export type OperationOptions = Record> = { - variables?: VariableInput; +export type OperationOptions = { operationName?: string; }; @@ -505,6 +514,7 @@ export const purifyGraphQLKey = (k: string) => k.replace(/\([^)]*\)/g, '').repla + const mapPart = (p: string) => { const [isArg, isField] = p.split('<>'); if (isField) { @@ -599,17 +609,18 @@ export const InternalArgsBuilt = ({ ops, returns, scalars, - variables, + vars, }: { props: AllTypesPropsType; returns: ReturnTypesType; ops: Operations; - variables?: Record; scalars?: ScalarDefinition; + vars: Array<{ name: string; graphQLType: string }>; }) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { const checkType = ResolveFromPath(props, returns, ops)(p); if (checkType.startsWith('scalar.')) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars const [_, ...splittedScalar] = checkType.split('.'); const scalarKey = splittedScalar.join('.'); return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); @@ -618,8 +629,22 @@ export const InternalArgsBuilt = ({ return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; } if (typeof a === 'string') { - if (a.startsWith('$') && variables?.[a.slice(1)]) { - return a; + if (a.startsWith(START_VAR_NAME)) { + const [varName, graphQLType] = a.replace(START_VAR_NAME, '$').split(GRAPHQL_TYPE_SEPARATOR); + const v = vars.find((v) => v.name === varName); + if (!v) { + vars.push({ + name: varName, + graphQLType, + }); + } else { + if (v.graphQLType !== graphQLType) { + throw new Error( + `Invalid variable exists with two different GraphQL Types, "${v.graphQLType}" and ${graphQLType}`, + ); + } + } + return varName; } if (checkType === 'enum') { return a; @@ -659,6 +684,7 @@ export const resolverFor = = T extends Promise ? R : T; export type ZeusState Promise> = NonNullable>>; export type ZeusHook< @@ -678,6 +704,7 @@ type DeepAnify = { }; type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; export type ScalarDefinition = Record; + type IsScalar = S extends 'scalar' & { name: infer T } ? T extends keyof SCLR ? SCLR[T]['decode'] extends (s: unknown) => unknown @@ -689,7 +716,7 @@ type IsArray = T extends Array ? InputType[] : InputType; type FlattenArray = T extends Array ? R : T; -type BaseZeusResolver = boolean | 1 | string; +type BaseZeusResolver = boolean | 1 | string | Variable; type IsInterfaced, DST, SCLR extends ScalarDefinition> = FlattenArray extends | ZEUS_INTERFACES @@ -748,30 +775,85 @@ export type ScalarResolver = { export type SelectionFunction = (t: T | V) => T; +type BuiltInVariableTypes = { + ['String']: string; + ['Int']: number; + ['Float']: number; + ['ID']: unknown; + ['Boolean']: boolean; +}; +type AllVariableTypes = keyof BuiltInVariableTypes | keyof ZEUS_VARIABLES; +type VariableRequired = `${T}!` | T | `[${T}]` | `[${T}]!` | `[${T}!]` | `[${T}!]!`; +type VR = VariableRequired>; + +export type GraphQLVariableType = VR; + +type ExtractVariableTypeString = T extends VR + ? R1 extends VR + ? R2 extends VR + ? R3 extends VR + ? R4 extends VR + ? R5 + : R4 + : R3 + : R2 + : R1 + : T; + +type DecomposeType = T extends `[${infer R}]` + ? Array> | undefined + : T extends `${infer R}!` + ? NonNullable> + : Type | undefined; + +type ExtractTypeFromGraphQLType = T extends keyof ZEUS_VARIABLES + ? ZEUS_VARIABLES[T] + : T extends keyof BuiltInVariableTypes + ? BuiltInVariableTypes[T] + : any; + +export type GetVariableType = DecomposeType< + T, + ExtractTypeFromGraphQLType> +>; -export const useZeusVariables = - (variables: T) => - < - Z extends { - [P in keyof T]: unknown; - }, - >( - values: Z, - ) => { - return { - $params: Object.keys(variables) - .map((k) => `$${k}: ${variables[k as keyof T]}`) - .join(', '), - $: (variable: U) => { - return `$${String(variable)}` as unknown as Z[U]; - }, - values, - }; - }; +type UndefinedKeys = { + [K in keyof T]-?: T[K] extends NonNullable ? never : K; +}[keyof T]; + +type WithNullableKeys = Pick>; +type WithNonNullableKeys = Omit>; + +type OptionalKeys = { + [P in keyof T]?: T[P]; +}; + +export type WithOptionalNullables = OptionalKeys> & WithNonNullableKeys; -export type VariableInput> = { - $params: ReturnType>['$params']; - values: Z; + + + +export type Variable = { + ' __zeus_name': Name; + ' __zeus_type': T; +}; + +export type ExtractVariables = Query extends Variable + ? { [key in VName]: GetVariableType } + : Query extends [infer Inputs, infer Outputs] + ? ExtractVariables & ExtractVariables + : Query extends string | number | boolean + ? // eslint-disable-next-line @typescript-eslint/ban-types + {} + : UnionToIntersection<{ [K in keyof Query]: WithOptionalNullables> }[keyof Query]>; + +type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; + +export const START_VAR_NAME = `$ZEUS_VAR`; +export const GRAPHQL_TYPE_SEPARATOR = `__$GRAPHQL__`; + +export const $ = (name: Name, graphqlType: Type) => { + return (START_VAR_NAME + name + GRAPHQL_TYPE_SEPARATOR + graphqlType) as unknown as Variable; }; type ZEUS_INTERFACES = GraphQLTypes["Nameable"] @@ -781,59 +863,7 @@ export type ScalarCoders = { type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on EffectCard']?: Omit; - ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; - ['...on CardStack']?: Omit; - __typename?: boolean | `@${string}` -}>; - ["SpecialSkills"]:SpecialSkills; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ValueTypes["Card"]], - /** Draw a card
    */ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean | `@${string}` -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; - ["JSON"]:unknown; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - /** create card inputs
    */ -["createCard"]: { - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined | null, - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string, - /**
    How many children the greek god had
    */ - Children?: number | undefined | null, - /** The attack power
    */ - Attack: number -}; - /** Card used in card game
    */ + /** Card used in card game
    */ ["Card"]: AliasType<{ /** The attack power
    */ Attack?:boolean | `@${string}`, @@ -842,7 +872,7 @@ addCard?: [{ card: ValueTypes["createCard"]},ValueTypes["Card"]], /** The defense power
    */ Defense?:boolean | `@${string}`, attack?: [{ /** Attacked card/card ids
    */ - cardID: Array},ValueTypes["Card"]], + cardID: Array | Variable},ValueTypes["Card"]], /** Put your description here */ cardImage?:ValueTypes["S3Object"], /** Description of a card
    */ @@ -854,15 +884,51 @@ attack?: [{ /** Attacked card/card ids
    */ name?:boolean | `@${string}`, skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}>; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] - __typename?: boolean | `@${string}` }>; ["SpecialCard"]: AliasType<{ effect?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on Card']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; + ['...on CardStack']?: Omit; + __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + /** create card inputs
    */ +["createCard"]: { + /** The defense power
    */ + Defense: number | Variable, + /** input skills */ + skills?: Array | undefined | null | Variable, + /** The name of a card
    */ + name: string | Variable, + /** Description of a card
    */ + description: string | Variable, + /**
    How many children the greek god had
    */ + Children?: number | undefined | null | Variable, + /** The attack power
    */ + Attack: number | Variable +}; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` }>; /** Stack of cards */ ["CardStack"]: AliasType<{ @@ -870,43 +936,30 @@ attack?: [{ /** Attacked card/card ids
    */ name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null | Variable},ValueTypes["Card"]], + /** Draw a card
    */ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` }> } export type ModelTypes = { - ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["CardStack"]; - ["SpecialSkills"]: GraphQLTypes["SpecialSkills"]; - ["EffectCard"]: { - effectSize: number, - name: string -}; - ["Query"]: { - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - ["Mutation"]: { - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; - ["JSON"]:any; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - /** create card inputs
    */ -["createCard"]: GraphQLTypes["createCard"]; - /** Card used in card game
    */ + /** Card used in card game
    */ ["Card"]: { /** The attack power
    */ Attack: number, @@ -927,66 +980,25 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; ["SpecialCard"]: { effect: string, name: string -}; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string }; ["Subscription"]: { deck?: Array | undefined -} - } - -export type GraphQLTypes = { - ["Nameable"]: { - __typename:"EffectCard" | "Card" | "SpecialCard" | "CardStack", - name: string - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; }; - ["SpecialSkills"]: SpecialSkills; + ["Nameable"]: ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] | ModelTypes["CardStack"]; + ["JSON"]:any; ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, + effectSize: number, name: string -}; - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; - ["JSON"]: "scalar" & { name: "JSON" }; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string }; /** create card inputs
    */ ["createCard"]: { - /** The defense power
    */ + /** The defense power
    */ Defense: number, /** input skills */ - skills?: Array | undefined, + skills?: Array | undefined, /** The name of a card
    */ name: string, /** Description of a card
    */ @@ -996,7 +1008,37 @@ export type GraphQLTypes = { /** The attack power
    */ Attack: number }; - /** Card used in card game
    */ + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string +}; + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, + name: string +}; + ["Mutation"]: { + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["Query"]: { + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["SpecialSkills"]:SpecialSkills; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] + } + +export type GraphQLTypes = { + /** Card used in card game
    */ ["Card"]: { __typename: "Card", /** The attack power
    */ @@ -1017,16 +1059,51 @@ export type GraphQLTypes = { /** The name of a card
    */ name: string, skills?: Array | undefined -}; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; ["SpecialCard"]: { __typename: "SpecialCard", effect: string, name: string +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined +}; + ["Nameable"]: { + __typename:"Card" | "SpecialCard" | "EffectCard" | "CardStack", + name: string + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; +}; + ["JSON"]: "scalar" & { name: "JSON" }; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string +}; + /** create card inputs
    */ +["createCard"]: { + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined, + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined, + /** The attack power
    */ + Attack: number +}; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string }; /** Stack of cards */ ["CardStack"]: { @@ -1034,13 +1111,37 @@ export type GraphQLTypes = { cards?: Array | undefined, name: string }; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["SpecialSkills"]: SpecialSkills; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; } } export const enum SpecialSkills { + FIRE = "FIRE", THUNDER = "THUNDER", - RAIN = "RAIN", - FIRE = "FIRE" + RAIN = "RAIN" +} + +type ZEUS_VARIABLES = { + ["JSON"]: ValueTypes["JSON"]; + ["createCard"]: ValueTypes["createCard"]; + ["SpecialSkills"]: ValueTypes["SpecialSkills"]; } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 77ddaaaf..0c742c2d 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useQuery, useMutation } from 'react-query'; -import type { UseQueryOptions, UseMutationOptions } from 'react-query'; +import { useMutation, useQuery } from 'react-query'; +import type { UseMutationOptions, UseQueryOptions } from 'react-query'; -export function useTypedQuery>( - queryKey: string | unknown[], - query: TData | ValueTypes[O], - options?: Omit, 'queryKey' | 'queryFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); -} export function useTypedMutation>( mutationKey: string | unknown[], mutation: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } +export function useTypedQuery>( + queryKey: string | unknown[], + query: TData | ValueTypes[O], + options?: Omit, 'queryKey' | 'queryFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/src/zeus/typedDocumentNode.ts b/examples/typescript-node/src/zeus/typedDocumentNode.ts index dc65319b..d457da69 100644 --- a/examples/typescript-node/src/zeus/typedDocumentNode.ts +++ b/examples/typescript-node/src/zeus/typedDocumentNode.ts @@ -9,6 +9,7 @@ import { ScalarDefinition, ThunderGraphQLOptions, Zeus, + ExtractVariables, } from './'; import { Ops } from './const'; @@ -22,6 +23,5 @@ export const typedGql = operationOptions: ops, scalars: graphqlOptions?.scalars, }); - const vars = ops?.variables?.values; - return gql(str) as TypedDocumentNode, typeof vars>; + return gql(str) as TypedDocumentNode, ExtractVariables>; }; diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index b656c9d0..2e3bc1e6 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,70 +1,73 @@ -"""""" -interface Nameable { - """""" - name: String! -} +"""Card used in card game
    """ +type Card implements Nameable { + """The attack power
    """ + Attack: Int! -"""""" -enum SpecialSkills { - """Lower enemy defense -5
    """ - THUNDER + """
    How many children the greek god had
    """ + Children: Int - """Attack multiple Cards at once
    """ - RAIN + """The defense power
    """ + Defense: Int! - """50% chance to avoid any attack
    """ - FIRE -} + """Attack other cards on the table , returns Cards after attack
    """ + attack( + """Attacked card/card ids
    """ + cardID: [String!]! + ): [Card!] + + """Put your description here""" + cardImage: S3Object + + """Description of a card
    """ + description: String! -"""""" -type EffectCard implements Nameable { """""" - effectSize: Float! + id: ID! """""" - name: String! -} + image: String! -"""""" -type Query { """""" - cardById(cardId: String): Card + info: JSON! - """Draw a card
    """ - drawCard: Card! + """The name of a card
    """ + name: String! """""" - drawChangeCard: ChangeCard! + skills: [SpecialSkills!] +} - """list All Cards availble
    """ - listCards: [Card!]! +"""""" +type SpecialCard implements Nameable { + """""" + effect: String! """""" - myStacks: [CardStack!] + name: String! +} +"""""" +type Subscription { """""" - nameables: [Nameable!]! + deck: [Card!] } """""" -type Mutation { - """add Card to Cards database
    """ - addCard(card: createCard!): Card! +interface Nameable { + """""" + name: String! } """""" scalar JSON -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - +"""""" +type EffectCard implements Nameable { """""" - key: String! + effectSize: Float! """""" - region: String! + name: String! } """create card inputs
    """ @@ -88,71 +91,68 @@ input createCard { Attack: Int! } -"""Card used in card game
    """ -type Card implements Nameable { - """The attack power
    """ - Attack: Int! - - """
    How many children the greek god had
    """ - Children: Int - - """The defense power
    """ - Defense: Int! - - """Attack other cards on the table , returns Cards after attack
    """ - attack( - """Attacked card/card ids
    """ - cardID: [String!]! - ): [Card!] - - """Put your description here""" - cardImage: S3Object - - """Description of a card
    """ - description: String! - +"""Aws S3 File""" +type S3Object { """""" - id: ID! + bucket: String! """""" - image: String! + key: String! """""" - info: JSON! + region: String! +} - """The name of a card
    """ - name: String! +"""Stack of cards""" +type CardStack implements Nameable { + """""" + cards: [Card!] """""" - skills: [SpecialSkills!] + name: String! } """""" -union ChangeCard = SpecialCard | EffectCard +type Mutation { + """add Card to Cards database
    """ + addCard(card: createCard!): Card! +} """""" -type SpecialCard implements Nameable { +type Query { """""" - effect: String! + cardById(cardId: String): Card + + """Draw a card
    """ + drawCard: Card! """""" - name: String! -} + drawChangeCard: ChangeCard! + + """list All Cards availble
    """ + listCards: [Card!]! -"""Stack of cards""" -type CardStack implements Nameable { """""" - cards: [Card!] + myStacks: [CardStack!] """""" - name: String! + nameables: [Nameable!]! } """""" -type Subscription { - """""" - deck: [Card!] +enum SpecialSkills { + """50% chance to avoid any attack
    """ + FIRE + + """Lower enemy defense -5
    """ + THUNDER + + """Attack multiple Cards at once
    """ + RAIN } + +"""""" +union ChangeCard = SpecialCard | EffectCard schema{ query: Query, mutation: Mutation, diff --git a/src/TreeToTS/functions/apiTest/index.spec.ts b/src/TreeToTS/functions/apiTest/index.spec.ts index c21bd1db..84705fbc 100644 --- a/src/TreeToTS/functions/apiTest/index.spec.ts +++ b/src/TreeToTS/functions/apiTest/index.spec.ts @@ -1,5 +1,6 @@ import { Chain, ZeusScalars, Selector } from '@/TreeToTS/functions/new/clientFunctions'; import { FromSelector } from '@/TreeToTS/functions/new/types'; +import { $ } from '@/TreeToTS/functions/new/variableExtract'; const cardSelector = Selector('Card')({ name: true, id: true }); @@ -27,6 +28,17 @@ export const test1 = async () => { }); return ch; }; +export const test2 = async () => { + const sel = Selector('Card')({ + name: $('name', 'String!'), + }); + const ch = await Chain('')('query', { + scalars, + })({ + drawCard: sel, + }); + return ch; +}; describe('empty test', () => { test('should pass', () => { diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 723245b0..16f6f73c 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -104,7 +104,13 @@ export const InternalsBuildQuery = ({ options?: OperationOptions; scalars?: ScalarDefinition; }) => { - const ibb = (k: string, o: InputValueType | VType, p = '', root = true): string => { + const ibb = ( + k: string, + o: InputValueType | VType, + p = '', + root = true, + vars: Array<{ name: string; graphQLType: string }> = [], + ): string => { const keyForPath = purifyGraphQLKey(k); const newPath = [p, keyForPath].join(SEPARATOR); if (!o) { @@ -122,9 +128,9 @@ export const InternalsBuildQuery = ({ returns, ops, scalars, - variables: options?.variables?.values, + vars, })(o[0], newPath); - return \`\${ibb(args ? \`\${k}(\${args})\` : k, o[1], p, false)}\`; + return \`\${ibb(args ? \`\${k}(\${args})\` : k, o[1], p, false, vars)}\`; } if (k === '__alias') { return Object.entries(o) @@ -136,17 +142,21 @@ export const InternalsBuildQuery = ({ } const operationName = Object.keys(objectUnderAlias)[0]; const operation = objectUnderAlias[operationName]; - return ibb(\`\${alias}:\${operationName}\`, operation, p, false); + return ibb(\`\${alias}:\${operationName}\`, operation, p, false, vars); }) .join('\\n'); } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; - const hasVariables = root && options?.variables?.$params ? \`(\${options.variables?.$params})\` : ''; const keyForDirectives = o.__directives ?? ''; - return \`\${k} \${keyForDirectives}\${hasOperationName}\${hasVariables}{\${Object.entries(o) + const query = \`{\${Object.entries(o) .filter(([k]) => k !== '__directives') - .map((e) => ibb(...e, [p, \`field<>\${keyForPath}\`].join(SEPARATOR), false)) + .map((e) => ibb(...e, [p, \`field<>\${keyForPath}\`].join(SEPARATOR), false, vars)) .join('\\n')}}\`; + if (!root) { + return \`\${k} \${keyForDirectives}\${hasOperationName} \${query}\`; + } + const varsString = vars.map((v) => \`\${v.name}: \${v.graphQLType}\`).join(', '); + return \`\${k} \${keyForDirectives}\${hasOperationName}\${varsString ? \`(\${varsString})\` : ''} \${query}\`; }; return ibb; }; @@ -158,19 +168,20 @@ export const InternalsBuildQuery = ({ + export const Thunder = (fn: FetchFunction) => >( operation: O, graphqlOptions?: ThunderGraphQLOptions, ) => - (o: Z | ValueTypes[R], ops?: OperationOptions) => + (o: Z | ValueTypes[R], ops?: OperationOptions & { variables?: Record }) => fn( Zeus(operation, o, { operationOptions: ops, scalars: graphqlOptions?.scalars, }), - ops?.variables?.values, + ops?.variables, ).then((data) => { if (graphqlOptions?.scalars) { return decodeScalarsInResponse({ @@ -193,7 +204,7 @@ export const SubscriptionThunder = operation: O, graphqlOptions?: ThunderGraphQLOptions, ) => - (o: Z | ValueTypes[R], ops?: OperationOptions) => { + (o: Z | ValueTypes[R], ops?: OperationOptions & { variables?: ExtractVariables }) => { const returnedFunction = fn( Zeus(operation, o, { operationOptions: ops, @@ -326,7 +337,6 @@ export const traverseResponse = ({ - export type AllTypesPropsType = { [x: string]: | undefined @@ -380,13 +390,12 @@ export const SEPARATOR = '|'; export type fetchOptions = Parameters; type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; -export type FetchFunction = (query: string, variables?: Record) => Promise; +export type FetchFunction = (query: string, variables?: Record) => Promise; export type SubscriptionFunction = (query: string) => any; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; -export type OperationOptions = Record> = { - variables?: VariableInput; +export type OperationOptions = { operationName?: string; }; @@ -496,6 +505,7 @@ export const purifyGraphQLKey = (k: string) => k.replace(/\\([^)]*\\)/g, '').rep + const mapPart = (p: string) => { const [isArg, isField] = p.split('<>'); if (isField) { @@ -590,17 +600,18 @@ export const InternalArgsBuilt = ({ ops, returns, scalars, - variables, + vars, }: { props: AllTypesPropsType; returns: ReturnTypesType; ops: Operations; - variables?: Record; scalars?: ScalarDefinition; + vars: Array<{ name: string; graphQLType: string }>; }) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { const checkType = ResolveFromPath(props, returns, ops)(p); if (checkType.startsWith('scalar.')) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars const [_, ...splittedScalar] = checkType.split('.'); const scalarKey = splittedScalar.join('.'); return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); @@ -609,8 +620,22 @@ export const InternalArgsBuilt = ({ return \`[\${a.map((arr) => arb(arr, p, false)).join(', ')}]\`; } if (typeof a === 'string') { - if (a.startsWith('$') && variables?.[a.slice(1)]) { - return a; + if (a.startsWith(START_VAR_NAME)) { + const [varName, graphQLType] = a.replace(START_VAR_NAME, '$').split(GRAPHQL_TYPE_SEPARATOR); + const v = vars.find((v) => v.name === varName); + if (!v) { + vars.push({ + name: varName, + graphQLType, + }); + } else { + if (v.graphQLType !== graphQLType) { + throw new Error( + \`Invalid variable exists with two different GraphQL Types, "\${v.graphQLType}" and \${graphQLType}\`, + ); + } + } + return varName; } if (checkType === 'enum') { return a; @@ -650,6 +675,7 @@ export const resolverFor = = T extends Promise ? R : T; export type ZeusState Promise> = NonNullable>>; export type ZeusHook< @@ -669,6 +695,7 @@ type DeepAnify = { }; type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; export type ScalarDefinition = Record; + type IsScalar = S extends 'scalar' & { name: infer T } ? T extends keyof SCLR ? SCLR[T]['decode'] extends (s: unknown) => unknown @@ -680,7 +707,7 @@ type IsArray = T extends Array ? InputType[] : InputType; type FlattenArray = T extends Array ? R : T; -type BaseZeusResolver = boolean | 1 | string; +type BaseZeusResolver = boolean | 1 | string | Variable; type IsInterfaced, DST, SCLR extends ScalarDefinition> = FlattenArray extends | ZEUS_INTERFACES @@ -739,29 +766,84 @@ export type ScalarResolver = { export type SelectionFunction = (t: T | V) => T; +type BuiltInVariableTypes = { + ['String']: string; + ['Int']: number; + ['Float']: number; + ['ID']: unknown; + ['Boolean']: boolean; +}; +type AllVariableTypes = keyof BuiltInVariableTypes | keyof ZEUS_VARIABLES; +type VariableRequired = \`\${T}!\` | T | \`[\${T}]\` | \`[\${T}]!\` | \`[\${T}!]\` | \`[\${T}!]!\`; +type VR = VariableRequired>; + +export type GraphQLVariableType = VR; + +type ExtractVariableTypeString = T extends VR + ? R1 extends VR + ? R2 extends VR + ? R3 extends VR + ? R4 extends VR + ? R5 + : R4 + : R3 + : R2 + : R1 + : T; + +type DecomposeType = T extends \`[\${infer R}]\` + ? Array> | undefined + : T extends \`\${infer R}!\` + ? NonNullable> + : Type | undefined; + +type ExtractTypeFromGraphQLType = T extends keyof ZEUS_VARIABLES + ? ZEUS_VARIABLES[T] + : T extends keyof BuiltInVariableTypes + ? BuiltInVariableTypes[T] + : any; + +export type GetVariableType = DecomposeType< + T, + ExtractTypeFromGraphQLType> +>; -export const useZeusVariables = - (variables: T) => - < - Z extends { - [P in keyof T]: unknown; - }, - >( - values: Z, - ) => { - return { - $params: Object.keys(variables) - .map((k) => \`$\${k}: \${variables[k as keyof T]}\`) - .join(', '), - $: (variable: U) => { - return \`$\${String(variable)}\` as unknown as Z[U]; - }, - values, - }; - }; +type UndefinedKeys = { + [K in keyof T]-?: T[K] extends NonNullable ? never : K; +}[keyof T]; + +type WithNullableKeys = Pick>; +type WithNonNullableKeys = Omit>; + +type OptionalKeys = { + [P in keyof T]?: T[P]; +}; + +export type WithOptionalNullables = OptionalKeys> & WithNonNullableKeys; + + + + +export type Variable = { + ' __zeus_name': Name; + ' __zeus_type': T; +}; + +export type ExtractVariables = Query extends Variable + ? { [key in VName]: GetVariableType } + : Query extends [infer Inputs, infer Outputs] + ? ExtractVariables & ExtractVariables + : Query extends string | number | boolean + ? // eslint-disable-next-line @typescript-eslint/ban-types + {} + : UnionToIntersection<{ [K in keyof Query]: WithOptionalNullables> }[keyof Query]>; + +type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; + +export const START_VAR_NAME = \`$ZEUS_VAR\`; +export const GRAPHQL_TYPE_SEPARATOR = \`__$GRAPHQL__\`; -export type VariableInput> = { - $params: ReturnType>['$params']; - values: Z; +export const $ = (name: Name, graphqlType: Type) => { + return (START_VAR_NAME + name + GRAPHQL_TYPE_SEPARATOR + graphqlType) as unknown as Variable; }; `; diff --git a/src/TreeToTS/functions/new/buildQuery.spec.ts b/src/TreeToTS/functions/new/buildQuery.spec.ts index 194a72b2..27cfc287 100644 --- a/src/TreeToTS/functions/new/buildQuery.spec.ts +++ b/src/TreeToTS/functions/new/buildQuery.spec.ts @@ -1,6 +1,6 @@ import { InternalsBuildQuery } from '@/TreeToTS/functions/new/buildQuery'; import { AllTypesProps, Ops, ReturnTypes } from '@/TreeToTS/functions/new/mocks'; -import { useZeusVariables } from '@/TreeToTS/functions/new/useZeusVariables'; +import { $ } from '@/TreeToTS/functions/new/variableExtract'; import { replSpace } from '@/__tests__/TestUtils'; const builder = InternalsBuildQuery({ props: AllTypesProps, returns: ReturnTypes, ops: Ops }); @@ -99,23 +99,17 @@ describe('Test generated function buildQuery', () => { }`); }); test('Query with arguments and variables', () => { - const variables = useZeusVariables({ id: 'String!' })({ - id: 'a1', - }); const builder = InternalsBuildQuery({ props: AllTypesProps, returns: ReturnTypes, ops: Ops, - options: { - variables, - }, + options: {}, }); - const { $ } = variables; const matchExact = replSpace( builder('query', { cardById: [ { - id: $('id'), + id: $('id', 'String!'), name: 'blabla', age: 123, me: true, diff --git a/src/TreeToTS/functions/new/buildQuery.ts b/src/TreeToTS/functions/new/buildQuery.ts index 036c1bec..8cf37006 100644 --- a/src/TreeToTS/functions/new/buildQuery.ts +++ b/src/TreeToTS/functions/new/buildQuery.ts @@ -24,7 +24,13 @@ export const InternalsBuildQuery = ({ options?: OperationOptions; scalars?: ScalarDefinition; }) => { - const ibb = (k: string, o: InputValueType | VType, p = '', root = true): string => { + const ibb = ( + k: string, + o: InputValueType | VType, + p = '', + root = true, + vars: Array<{ name: string; graphQLType: string }> = [], + ): string => { const keyForPath = purifyGraphQLKey(k); const newPath = [p, keyForPath].join(SEPARATOR); if (!o) { @@ -42,9 +48,9 @@ export const InternalsBuildQuery = ({ returns, ops, scalars, - variables: options?.variables?.values, + vars, })(o[0], newPath); - return `${ibb(args ? `${k}(${args})` : k, o[1], p, false)}`; + return `${ibb(args ? `${k}(${args})` : k, o[1], p, false, vars)}`; } if (k === '__alias') { return Object.entries(o) @@ -56,17 +62,21 @@ export const InternalsBuildQuery = ({ } const operationName = Object.keys(objectUnderAlias)[0]; const operation = objectUnderAlias[operationName]; - return ibb(`${alias}:${operationName}`, operation, p, false); + return ibb(`${alias}:${operationName}`, operation, p, false, vars); }) .join('\n'); } const hasOperationName = root && options?.operationName ? ' ' + options.operationName : ''; - const hasVariables = root && options?.variables?.$params ? `(${options.variables?.$params})` : ''; const keyForDirectives = o.__directives ?? ''; - return `${k} ${keyForDirectives}${hasOperationName}${hasVariables}{${Object.entries(o) + const query = `{${Object.entries(o) .filter(([k]) => k !== '__directives') - .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join(SEPARATOR), false)) + .map((e) => ibb(...e, [p, `field<>${keyForPath}`].join(SEPARATOR), false, vars)) .join('\n')}}`; + if (!root) { + return `${k} ${keyForDirectives}${hasOperationName} ${query}`; + } + const varsString = vars.map((v) => `${v.name}: ${v.graphQLType}`).join(', '); + return `${k} ${keyForDirectives}${hasOperationName}${varsString ? `(${varsString})` : ''} ${query}`; }; return ibb; }; diff --git a/src/TreeToTS/functions/new/clientFunctions.ts b/src/TreeToTS/functions/new/clientFunctions.ts index 18c1ac58..0d0f7202 100644 --- a/src/TreeToTS/functions/new/clientFunctions.ts +++ b/src/TreeToTS/functions/new/clientFunctions.ts @@ -22,6 +22,7 @@ import { VType, } from '@/TreeToTS/functions/new/models'; import { InputType, ScalarDefinition, SelectionFunction, SubscriptionToGraphQL } from '@/TreeToTS/functions/new/types'; +import { ExtractVariables } from '@/TreeToTS/functions/new/variableExtract'; export const Thunder = (fn: FetchFunction) => @@ -29,13 +30,13 @@ export const Thunder = operation: O, graphqlOptions?: ThunderGraphQLOptions, ) => - (o: Z | ValueTypes[R], ops?: OperationOptions) => + (o: Z | ValueTypes[R], ops?: OperationOptions & { variables?: Record }) => fn( Zeus(operation, o, { operationOptions: ops, scalars: graphqlOptions?.scalars, }), - ops?.variables?.values, + ops?.variables, ).then((data) => { if (graphqlOptions?.scalars) { return decodeScalarsInResponse({ @@ -58,7 +59,7 @@ export const SubscriptionThunder = operation: O, graphqlOptions?: ThunderGraphQLOptions, ) => - (o: Z | ValueTypes[R], ops?: OperationOptions) => { + (o: Z | ValueTypes[R], ops?: OperationOptions & { variables?: ExtractVariables }) => { const returnedFunction = fn( Zeus(operation, o, { operationOptions: ops, diff --git a/src/TreeToTS/functions/new/mocks.ts b/src/TreeToTS/functions/new/mocks.ts index ca864a9a..6639da30 100644 --- a/src/TreeToTS/functions/new/mocks.ts +++ b/src/TreeToTS/functions/new/mocks.ts @@ -1,5 +1,6 @@ import { chainOptions, FetchFunction, SubscriptionFunction } from '@/TreeToTS/functions/new/models'; import { AliasType, ScalarResolver } from '@/TreeToTS/functions/new/types'; +import { Variable } from '@/TreeToTS/functions/new/variableExtract'; export const AllTypesProps = { Query: { @@ -49,36 +50,41 @@ export const Ops = { export type ZEUS_INTERFACES = GraphQLTypes['Nameable']; export type ZEUS_UNIONS = GraphQLTypes['ChangeCard']; +export type ZEUS_VARIABLES = { + ['createCard']: ValueTypes['createCard']; + ['JSON']: ValueTypes['JSON']; +}; export type ValueTypes = { ['Nameable']: AliasType<{ - name?: boolean; + name?: boolean | Variable; ['...on EffectCard']?: Omit; ['...on Card']?: Omit; ['...on SpecialCard']?: Omit; ['...on CardStack']?: Omit; - __typename?: boolean; + __typename?: boolean | Variable; }>; + ['JSON']: 'unknown'; /** Aws S3 File */ ['S3Object']: AliasType<{ - bucket?: boolean; - key?: boolean; - region?: boolean; - __typename?: boolean; + bucket?: boolean | Variable; + key?: boolean | Variable; + region?: boolean | Variable; + __typename?: boolean | Variable; }>; ['ChangeCard']: AliasType<{ ['...on SpecialCard']: ValueTypes['SpecialCard']; ['...on EffectCard']: ValueTypes['EffectCard']; - __typename?: boolean; + __typename?: boolean | Variable; }>; ['EffectCard']: AliasType<{ - effectSize?: boolean; - name?: boolean; - __typename?: boolean; + effectSize?: boolean | Variable; + name?: boolean | Variable; + __typename?: boolean | Variable; }>; ['Subscription']: AliasType<{ deck?: ValueTypes['Card']; - __typename?: boolean; + __typename?: boolean | Variable; }>; ['Query']: AliasType<{ cardById?: [{ cardId?: string | undefined | null }, ValueTypes['Card']]; @@ -89,16 +95,16 @@ export type ValueTypes = { listCards?: ValueTypes['Card']; myStacks?: ValueTypes['CardStack']; nameables?: ValueTypes['Nameable']; - __typename?: boolean; + __typename?: boolean | Variable; }>; /** Card used in card game
    */ ['Card']: AliasType<{ /** The attack power
    */ - Attack?: boolean; + Attack?: boolean | Variable; /**
    How many children the greek god had
    */ - Children?: boolean; + Children?: boolean | Variable; /** The defense power
    */ - Defense?: boolean; + Defense?: boolean | Variable; attack?: [ { /** Attacked card/card ids
    */ cardID: string[] | undefined | null; @@ -108,30 +114,30 @@ export type ValueTypes = { /** Put your description here */ cardImage?: ValueTypes['S3Object']; /** Description of a card
    */ - description?: boolean; - id?: boolean; - image?: boolean; - info?: boolean; + description?: boolean | Variable; + id?: boolean | Variable; + image?: boolean | Variable; + info?: boolean | Variable; /** The name of a card
    */ - name?: boolean; - skills?: boolean; - __typename?: boolean; + name?: boolean | Variable; + skills?: boolean | Variable; + __typename?: boolean | Variable; }>; ['SpecialSkills']: SpecialSkills; ['SpecialCard']: AliasType<{ - effect?: boolean; - name?: boolean; - __typename?: boolean; + effect?: boolean | Variable; + name?: boolean | Variable; + __typename?: boolean | Variable; }>; ['Mutation']: AliasType<{ addCard?: [{ card: ValueTypes['createCard'] }, ValueTypes['Card']]; - __typename?: boolean; + __typename?: boolean | Variable; }>; /** Stack of cards */ ['CardStack']: AliasType<{ cards?: ValueTypes['Card']; - name?: boolean; - __typename?: boolean; + name?: boolean | Variable; + __typename?: boolean | Variable; }>; /** create card inputs
    */ ['createCard']: { diff --git a/src/TreeToTS/functions/new/models.ts b/src/TreeToTS/functions/new/models.ts index e2b6fe5e..480dc02f 100644 --- a/src/TreeToTS/functions/new/models.ts +++ b/src/TreeToTS/functions/new/models.ts @@ -1,6 +1,5 @@ import { Ops, ScalarCoders } from '@/TreeToTS/functions/new/mocks'; import { ScalarDefinition } from '@/TreeToTS/functions/new/types'; -import { VariableInput } from '@/TreeToTS/functions/new/useZeusVariables'; export type AllTypesPropsType = { [x: string]: @@ -55,13 +54,12 @@ export const SEPARATOR = '|'; export type fetchOptions = Parameters; type websocketOptions = typeof WebSocket extends new (...args: infer R) => WebSocket ? R : never; export type chainOptions = [fetchOptions[0], fetchOptions[1] & { websocket?: websocketOptions }] | [fetchOptions[0]]; -export type FetchFunction = (query: string, variables?: Record) => Promise; +export type FetchFunction = (query: string, variables?: Record) => Promise; export type SubscriptionFunction = (query: string) => any; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; -export type OperationOptions = Record> = { - variables?: VariableInput; +export type OperationOptions = { operationName?: string; }; diff --git a/src/TreeToTS/functions/new/resolvePath.ts b/src/TreeToTS/functions/new/resolvePath.ts index 472138dc..46a3598c 100644 --- a/src/TreeToTS/functions/new/resolvePath.ts +++ b/src/TreeToTS/functions/new/resolvePath.ts @@ -6,6 +6,7 @@ import { ZeusArgsType, } from '@/TreeToTS/functions/new/models'; import { ScalarDefinition } from '@/TreeToTS/functions/new/types'; +import { GRAPHQL_TYPE_SEPARATOR, START_VAR_NAME } from '@/TreeToTS/functions/new/variableExtract'; const mapPart = (p: string) => { const [isArg, isField] = p.split('<>'); @@ -101,13 +102,13 @@ export const InternalArgsBuilt = ({ ops, returns, scalars, - variables, + vars, }: { props: AllTypesPropsType; returns: ReturnTypesType; ops: Operations; - variables?: Record; scalars?: ScalarDefinition; + vars: Array<{ name: string; graphQLType: string }>; }) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { const checkType = ResolveFromPath(props, returns, ops)(p); @@ -121,8 +122,22 @@ export const InternalArgsBuilt = ({ return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; } if (typeof a === 'string') { - if (a.startsWith('$') && variables?.[a.slice(1)]) { - return a; + if (a.startsWith(START_VAR_NAME)) { + const [varName, graphQLType] = a.replace(START_VAR_NAME, '$').split(GRAPHQL_TYPE_SEPARATOR); + const v = vars.find((v) => v.name === varName); + if (!v) { + vars.push({ + name: varName, + graphQLType, + }); + } else { + if (v.graphQLType !== graphQLType) { + throw new Error( + `Invalid variable exists with two different GraphQL Types, "${v.graphQLType}" and ${graphQLType}`, + ); + } + } + return varName; } if (checkType === 'enum') { return a; diff --git a/src/TreeToTS/functions/new/types.ts b/src/TreeToTS/functions/new/types.ts index 8f4c0098..96370825 100644 --- a/src/TreeToTS/functions/new/types.ts +++ b/src/TreeToTS/functions/new/types.ts @@ -1,4 +1,5 @@ -import { GraphQLTypes, ZEUS_INTERFACES, ZEUS_UNIONS } from '@/TreeToTS/functions/new/mocks'; +import { GraphQLTypes, ZEUS_VARIABLES, ZEUS_INTERFACES, ZEUS_UNIONS } from '@/TreeToTS/functions/new/mocks'; +import { Variable } from '@/TreeToTS/functions/new/variableExtract'; export type UnwrapPromise = T extends Promise ? R : T; export type ZeusState Promise> = NonNullable>>; @@ -19,6 +20,7 @@ type DeepAnify = { }; type IsPayLoad = T extends [any, infer PayLoad] ? PayLoad : T; export type ScalarDefinition = Record; + type IsScalar = S extends 'scalar' & { name: infer T } ? T extends keyof SCLR ? SCLR[T]['decode'] extends (s: unknown) => unknown @@ -30,7 +32,7 @@ type IsArray = T extends Array ? InputType[] : InputType; type FlattenArray = T extends Array ? R : T; -type BaseZeusResolver = boolean | 1 | string; +type BaseZeusResolver = boolean | 1 | string | Variable; type IsInterfaced, DST, SCLR extends ScalarDefinition> = FlattenArray extends | ZEUS_INTERFACES @@ -88,3 +90,58 @@ export type ScalarResolver = { }; export type SelectionFunction = (t: T | V) => T; + +type BuiltInVariableTypes = { + ['String']: string; + ['Int']: number; + ['Float']: number; + ['ID']: unknown; + ['Boolean']: boolean; +}; +type AllVariableTypes = keyof BuiltInVariableTypes | keyof ZEUS_VARIABLES; +type VariableRequired = `${T}!` | T | `[${T}]` | `[${T}]!` | `[${T}!]` | `[${T}!]!`; +type VR = VariableRequired>; + +export type GraphQLVariableType = VR; + +type ExtractVariableTypeString = T extends VR + ? R1 extends VR + ? R2 extends VR + ? R3 extends VR + ? R4 extends VR + ? R5 + : R4 + : R3 + : R2 + : R1 + : T; + +type DecomposeType = T extends `[${infer R}]` + ? Array> | undefined + : T extends `${infer R}!` + ? NonNullable> + : Type | undefined; + +type ExtractTypeFromGraphQLType = T extends keyof ZEUS_VARIABLES + ? ZEUS_VARIABLES[T] + : T extends keyof BuiltInVariableTypes + ? BuiltInVariableTypes[T] + : any; + +export type GetVariableType = DecomposeType< + T, + ExtractTypeFromGraphQLType> +>; + +type UndefinedKeys = { + [K in keyof T]-?: T[K] extends NonNullable ? never : K; +}[keyof T]; + +type WithNullableKeys = Pick>; +type WithNonNullableKeys = Omit>; + +type OptionalKeys = { + [P in keyof T]?: T[P]; +}; + +export type WithOptionalNullables = OptionalKeys> & WithNonNullableKeys; diff --git a/src/TreeToTS/functions/new/useZeusVariables.spec.ts b/src/TreeToTS/functions/new/useZeusVariables.spec.ts deleted file mode 100644 index f64b9314..00000000 --- a/src/TreeToTS/functions/new/useZeusVariables.spec.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { useZeusVariables } from '@/TreeToTS/functions/new/useZeusVariables'; -import { replSpace } from '@/__tests__/TestUtils'; -const { $params, $ } = useZeusVariables({ name: 'String!', age: 'Int' })({ name: 'dasds', age: 12 }); - -describe('Test variable parameters', () => { - it('Creates correct params', () => { - const m = replSpace($params); - m(`$name: String!, $age: Int`); - }); - it('Creates correct variabbles', () => { - const castedVar = $('name'); - expect(castedVar).toEqual('$name'); - }); -}); diff --git a/src/TreeToTS/functions/new/useZeusVariables.ts b/src/TreeToTS/functions/new/useZeusVariables.ts deleted file mode 100644 index 4a18a017..00000000 --- a/src/TreeToTS/functions/new/useZeusVariables.ts +++ /dev/null @@ -1,24 +0,0 @@ -export const useZeusVariables = - (variables: T) => - < - Z extends { - [P in keyof T]: unknown; - }, - >( - values: Z, - ) => { - return { - $params: Object.keys(variables) - .map((k) => `$${k}: ${variables[k as keyof T]}`) - .join(', '), - $: (variable: U) => { - return `$${String(variable)}` as unknown as Z[U]; - }, - values, - }; - }; - -export type VariableInput> = { - $params: ReturnType>['$params']; - values: Z; -}; diff --git a/src/TreeToTS/functions/new/variableExtract.ts b/src/TreeToTS/functions/new/variableExtract.ts new file mode 100644 index 00000000..286519f7 --- /dev/null +++ b/src/TreeToTS/functions/new/variableExtract.ts @@ -0,0 +1,24 @@ +import { GetVariableType, GraphQLVariableType, WithOptionalNullables } from '@/TreeToTS/functions/new/types'; + +export type Variable = { + ' __zeus_name': Name; + ' __zeus_type': T; +}; + +export type ExtractVariables = Query extends Variable + ? { [key in VName]: GetVariableType } + : Query extends [infer Inputs, infer Outputs] + ? ExtractVariables & ExtractVariables + : Query extends string | number | boolean + ? // eslint-disable-next-line @typescript-eslint/ban-types + {} + : UnionToIntersection<{ [K in keyof Query]: WithOptionalNullables> }[keyof Query]>; + +type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; + +export const START_VAR_NAME = `$ZEUS_VAR`; +export const GRAPHQL_TYPE_SEPARATOR = `__$GRAPHQL__`; + +export const $ = (name: Name, graphqlType: Type) => { + return (START_VAR_NAME + name + GRAPHQL_TYPE_SEPARATOR + graphqlType) as unknown as Variable; +}; diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index f7bf214d..ab17ff9f 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -10,6 +10,7 @@ import { resolveReturnFromRoot } from './templates/returnedReturns'; import { resolveTypes } from './templates/returnedTypes'; import { default as typescriptFunctions } from './functions/generated'; import { generateScalars } from '@/TreeToTS/templates/scalars'; +import { resolveVariableTypes } from '@/TreeToTS/templates/variableTypes'; export interface OperationName { name: string; @@ -61,6 +62,7 @@ export class TreeToTS { const unionTypes = resolveUnions(tree.nodes); const interfaceTypes = resolveInterfaces(tree.nodes); const scalarTypes = generateScalars(tree.nodes); + const variableTypes = resolveVariableTypes(tree.nodes); return interfaceTypes .concat('\n') .concat(scalarTypes) @@ -71,7 +73,9 @@ export class TreeToTS { .concat('\n\n') .concat(modelTypes) .concat('\n\n') - .concat(rootTypes); + .concat(rootTypes) + .concat('\n\n') + .concat(variableTypes); } /** * Generate typescript file diff --git a/src/TreeToTS/templates/modelTypes/index.ts b/src/TreeToTS/templates/modelTypes/index.ts index ddcd30c3..eda2b57e 100644 --- a/src/TreeToTS/templates/modelTypes/index.ts +++ b/src/TreeToTS/templates/modelTypes/index.ts @@ -1,4 +1,3 @@ -import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; import { plusDescription } from '@/TreeToTS/templates/shared/description'; import { resolveField } from '@/TreeToTS/templates/shared/field'; import { ParserField, TypeSystemDefinition, TypeDefinition } from 'graphql-js-tree'; @@ -9,6 +8,9 @@ const resolveTypeFromRoot = (i: ParserField, rootNodes: ParserField[]): string = if (i.data.type === TypeSystemDefinition.DirectiveDefinition) { return ''; } + if (i.data.type === TypeDefinition.EnumTypeDefinition) { + return `["${i.name}"]:${i.name}`; + } if (i.data.type === TypeDefinition.ScalarTypeDefinition) { return `${plusDescription(i.description)}["${i.name}"]:any`; } @@ -27,9 +29,10 @@ const resolveTypeFromRoot = (i: ParserField, rootNodes: ParserField[]): string = .join(' | ')}`; } if (i.data.type !== TypeDefinition.ObjectTypeDefinition) { - return `${plusDescription(i.description)}["${i.name}"]: ${TYPES}["${i.name}"]`; + return `${plusDescription(i.description)}["${i.name}"]: {\n${i.args + .map((f) => resolveField(f, MODEL_TYPES)) + .join(',\n')}\n}`; } - return `${plusDescription(i.description)}["${i.name}"]: {\n\t${i.args.map((f) => resolveField(f)).join(',\n')}\n}`; }; export const resolveModelTypes = (rootNodes: ParserField[]): string => { diff --git a/src/TreeToTS/templates/shared/field.ts b/src/TreeToTS/templates/shared/field.ts index 1b4b7c66..f473b696 100644 --- a/src/TreeToTS/templates/shared/field.ts +++ b/src/TreeToTS/templates/shared/field.ts @@ -1,3 +1,4 @@ +import { TYPES } from '@/TreeToTS/templates/returnedTypes/models'; import { plusDescription } from '@/TreeToTS/templates/shared/description'; import { toTypeScriptPrimitive } from '@/TreeToTS/templates/shared/primitive'; import { ParserField, Options, getTypeName, FieldType } from 'graphql-js-tree'; @@ -25,11 +26,11 @@ export const resolveFieldType = ( throw new Error('Invalid field type'); }; -export const resolveField = (f: ParserField): string => { +export const resolveField = (f: ParserField, t = TYPES): string => { const isNullType = (type: string): string => { return f.type.fieldType.type === Options.required ? `: ${type}` : `?: ${type}`; }; return `${plusDescription(f.description, '\t')}\t${f.name}${isNullType( - resolveFieldType(toTypeScriptPrimitive(getTypeName(f.type.fieldType)), f.type.fieldType), + resolveFieldType(toTypeScriptPrimitive(getTypeName(f.type.fieldType), t), f.type.fieldType), )}`; }; diff --git a/src/TreeToTS/templates/shared/primitive.ts b/src/TreeToTS/templates/shared/primitive.ts index af54f056..d461421d 100644 --- a/src/TreeToTS/templates/shared/primitive.ts +++ b/src/TreeToTS/templates/shared/primitive.ts @@ -8,4 +8,4 @@ const typeScriptMap: Record = { String: 'string', }; export const isTypeScriptPrimitive = (a: string) => !!typeScriptMap[a]; -export const toTypeScriptPrimitive = (a: string): string => typeScriptMap[a] || `${TYPES}["${a}"]`; +export const toTypeScriptPrimitive = (a: string, t = TYPES): string => typeScriptMap[a] || `${t}["${a}"]`; diff --git a/src/TreeToTS/templates/valueTypes/arg.ts b/src/TreeToTS/templates/valueTypes/arg.ts index f13e4676..0f64bbe0 100644 --- a/src/TreeToTS/templates/valueTypes/arg.ts +++ b/src/TreeToTS/templates/valueTypes/arg.ts @@ -4,6 +4,8 @@ import { truthyType } from '@/TreeToTS/templates/truthy'; import { VALUETYPES } from '@/TreeToTS/templates/valueTypes/models'; import { ParserField, Options, getTypeName, FieldType } from 'graphql-js-tree'; +const orVar = (name: string) => `${name} | Variable`; + export const resolveArg = (f: ParserField): string => { const { type: { fieldType }, @@ -19,9 +21,8 @@ export const resolveArg = (f: ParserField): string => { }; const typeName = getTypeName(f.type.fieldType); const tsp = toTypeScriptPrimitive(typeName); - return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${resolveValueFieldType( - isTypeScriptPrimitive(typeName) ? tsp : createValueType(typeName), - f.type.fieldType, + return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${orVar( + resolveValueFieldType(isTypeScriptPrimitive(typeName) ? tsp : createValueType(typeName), f.type.fieldType), )}`; }; diff --git a/src/TreeToTS/templates/valueTypes/index.ts b/src/TreeToTS/templates/valueTypes/index.ts index 6a6b1379..1a24ac66 100644 --- a/src/TreeToTS/templates/valueTypes/index.ts +++ b/src/TreeToTS/templates/valueTypes/index.ts @@ -5,7 +5,6 @@ import { plusDescription } from '@/TreeToTS/templates/shared/description'; import { VALUETYPES } from '@/TreeToTS/templates/valueTypes/models'; const AliasType = (code: string): string => `AliasType<${code}>`; - const resolveValueTypeFromRoot = (i: ParserField, rootNodes: ParserField[], enumsAndScalars: string[]): string => { if (!i.args || !i.args.length) { return `["${i.name}"]:unknown`; diff --git a/src/TreeToTS/templates/variableTypes/index.ts b/src/TreeToTS/templates/variableTypes/index.ts new file mode 100644 index 00000000..5635e1f0 --- /dev/null +++ b/src/TreeToTS/templates/variableTypes/index.ts @@ -0,0 +1,16 @@ +import { VALUETYPES } from '@/TreeToTS/templates/valueTypes/models'; +import { ParserField, TypeDefinition } from 'graphql-js-tree'; +export const ZEUS_VARIABLES = `ZEUS_VARIABLES`; + +export const resolveVariableTypes = (rootNodes: ParserField[]): string => { + const variableTypes = rootNodes + .filter( + (rn) => + rn.data.type === TypeDefinition.InputObjectTypeDefinition || + rn.data.type === TypeDefinition.EnumTypeDefinition || + rn.data.type === TypeDefinition.ScalarTypeDefinition, + ) + .map((rn) => `\t["${rn.name}"]: ${VALUETYPES}["${rn.name}"];`) + .join('\n'); + return `type ${ZEUS_VARIABLES} = ${variableTypes ? `{\n${variableTypes}\n}` : 'never'}`; +}; diff --git a/src/plugins/typedDocumentNode/index.ts b/src/plugins/typedDocumentNode/index.ts index 568a843b..9431b334 100644 --- a/src/plugins/typedDocumentNode/index.ts +++ b/src/plugins/typedDocumentNode/index.ts @@ -9,6 +9,7 @@ import { ScalarDefinition, ThunderGraphQLOptions, Zeus, + ExtractVariables, } from './'; import { Ops } from './const'; @@ -22,7 +23,6 @@ export const typedGql = operationOptions: ops, scalars: graphqlOptions?.scalars, }); - const vars = ops?.variables?.values; - return gql(str) as TypedDocumentNode, typeof vars>; + return gql(str) as TypedDocumentNode, ExtractVariables>; }; `; From bf24b6272f5d33c766f59e5e80504b1b0b8dd361 Mon Sep 17 00:00:00 2001 From: aexol Date: Thu, 30 Jun 2022 16:26:09 +0200 Subject: [PATCH 53/74] :bookmark: 5.1.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 95b3c583..343aae96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.1.2", + "version": "5.1.3", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", From a9c97ad09fe4f6675232df6f6d7397f907644aa3 Mon Sep 17 00:00:00 2001 From: aexol Date: Thu, 30 Jun 2022 16:50:02 +0200 Subject: [PATCH 54/74] :bug: Fixed vars --- examples/typescript-node/src/zeus/apollo.ts | 36 ++-- examples/typescript-node/src/zeus/const.ts | 50 ++--- examples/typescript-node/src/zeus/index.ts | 194 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +-- examples/typescript-node/zeus.graphql | 80 ++++---- package.json | 2 +- src/TreeToTS/functions/generated.ts | 22 +- src/TreeToTS/functions/new/resolvePath.ts | 22 +- 8 files changed, 218 insertions(+), 212 deletions(-) diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 0d167d82..fcc56c5f 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,58 +1,58 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index'; -import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; -import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; +import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; -export function useTypedSubscription( - subscription: Z | ValueTypes[O], +export function useTypedQuery( + query: Z | ValueTypes[O], options?:{ - apolloOptions?: SubscriptionHookOptions>, + apolloOptions?: QueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useSubscription>(gql(Zeus("subscription",subscription, { + return useQuery>(gql(Zeus("query",query, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedMutation( - mutation: Z | ValueTypes[O], +export function useTypedLazyQuery( + LazyQuery: Z | ValueTypes[O], options?:{ - apolloOptions?: MutationHookOptions>, + apolloOptions?: LazyQueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useMutation>(gql(Zeus("mutation",mutation, { + return useLazyQuery>(gql(Zeus("query",LazyQuery, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedQuery( - query: Z | ValueTypes[O], +export function useTypedMutation( + mutation: Z | ValueTypes[O], options?:{ - apolloOptions?: QueryHookOptions>, + apolloOptions?: MutationHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useQuery>(gql(Zeus("query",query, { + return useMutation>(gql(Zeus("mutation",mutation, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedLazyQuery( - LazyQuery: Z | ValueTypes[O], +export function useTypedSubscription( + subscription: Z | ValueTypes[O], options?:{ - apolloOptions?: LazyQueryHookOptions>, + apolloOptions?: SubscriptionHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useLazyQuery>(gql(Zeus("query",LazyQuery, { + return useSubscription>(gql(Zeus("subscription",subscription, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 4cb8008f..84a19655 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -6,21 +6,21 @@ export const AllTypesProps: Record = { } }, - JSON: `scalar.JSON` as const, + SpecialSkills: "enum" as const, createCard:{ skills:"SpecialSkills" }, - Mutation:{ - addCard:{ - card:"createCard" - } - }, + JSON: `scalar.JSON` as const, Query:{ cardById:{ } }, - SpecialSkills: "enum" as const + Mutation:{ + addCard:{ + card:"createCard" + } + } } export const ReturnTypes: Record = { @@ -37,23 +37,19 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, - SpecialCard:{ - effect:"String", + EffectCard:{ + effectSize:"Float", name:"String" }, - Subscription:{ - deck:"Card" - }, Nameable:{ "...on Card": "Card", - "...on SpecialCard": "SpecialCard", "...on EffectCard": "EffectCard", "...on CardStack": "CardStack", + "...on SpecialCard": "SpecialCard", name:"String" }, - JSON: `scalar.JSON` as const, - EffectCard:{ - effectSize:"Float", + CardStack:{ + cards:"Card", name:"String" }, S3Object:{ @@ -61,13 +57,7 @@ export const ReturnTypes: Record = { key:"String", region:"String" }, - CardStack:{ - cards:"Card", - name:"String" - }, - Mutation:{ - addCard:"Card" - }, + JSON: `scalar.JSON` as const, Query:{ cardById:"Card", drawCard:"Card", @@ -79,11 +69,21 @@ export const ReturnTypes: Record = { ChangeCard:{ "...on SpecialCard":"SpecialCard", "...on EffectCard":"EffectCard" + }, + SpecialCard:{ + effect:"String", + name:"String" + }, + Mutation:{ + addCard:"Card" + }, + Subscription:{ + deck:"Card" } } export const Ops = { -subscription: "Subscription" as const, +query: "Query" as const, mutation: "Mutation" as const, - query: "Query" as const + subscription: "Subscription" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 398ef5af..cf337b0b 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -618,16 +618,6 @@ export const InternalArgsBuilt = ({ vars: Array<{ name: string; graphQLType: string }>; }) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { - const checkType = ResolveFromPath(props, returns, ops)(p); - if (checkType.startsWith('scalar.')) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const [_, ...splittedScalar] = checkType.split('.'); - const scalarKey = splittedScalar.join('.'); - return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); - } - if (Array.isArray(a)) { - return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; - } if (typeof a === 'string') { if (a.startsWith(START_VAR_NAME)) { const [varName, graphQLType] = a.replace(START_VAR_NAME, '$').split(GRAPHQL_TYPE_SEPARATOR); @@ -646,6 +636,18 @@ export const InternalArgsBuilt = ({ } return varName; } + } + const checkType = ResolveFromPath(props, returns, ops)(p); + if (checkType.startsWith('scalar.')) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [_, ...splittedScalar] = checkType.split('.'); + const scalarKey = splittedScalar.join('.'); + return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); + } + if (Array.isArray(a)) { + return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; + } + if (typeof a === 'string') { if (checkType === 'enum') { return a; } @@ -885,35 +887,28 @@ attack?: [{ /** Attacked card/card ids
    */ skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, + ["SpecialSkills"]:SpecialSkills; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean | `@${string}` }>; ["Nameable"]:AliasType<{ name?:boolean | `@${string}`; ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; ['...on EffectCard']?: Omit; ['...on CardStack']?: Omit; + ['...on SpecialCard']?: Omit; __typename?: boolean | `@${string}` }>; - ["JSON"]:unknown; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; /** create card inputs
    */ ["createCard"]: { - /** The defense power
    */ - Defense: number | Variable, - /** input skills */ - skills?: Array | undefined | null | Variable, /** The name of a card
    */ name: string | Variable, /** Description of a card
    */ @@ -921,7 +916,11 @@ attack?: [{ /** Attacked card/card ids
    */ /**
    How many children the greek god had
    */ Children?: number | undefined | null | Variable, /** The attack power
    */ - Attack: number | Variable + Attack: number | Variable, + /** The defense power
    */ + Defense: number | Variable, + /** input skills */ + skills?: Array | undefined | null | Variable }; /** Aws S3 File */ ["S3Object"]: AliasType<{ @@ -930,16 +929,7 @@ attack?: [{ /** Attacked card/card ids
    */ region?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; + ["JSON"]:unknown; ["Query"]: AliasType<{ cardById?: [{ cardId?: string | undefined | null | Variable},ValueTypes["Card"]], /** Draw a card
    */ @@ -951,10 +941,22 @@ cardById?: [{ cardId?: string | undefined | null | Variable},ValueT nameables?:ValueTypes["Nameable"], __typename?: boolean | `@${string}` }>; - ["SpecialSkills"]:SpecialSkills; ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` +}>; + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` }> } @@ -980,25 +982,19 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["SpecialCard"]: { - effect: string, - name: string -}; - ["Subscription"]: { - deck?: Array | undefined -}; - ["Nameable"]: ModelTypes["Card"] | ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] | ModelTypes["CardStack"]; - ["JSON"]:any; + ["SpecialSkills"]:SpecialSkills; ["EffectCard"]: { effectSize: number, name: string +}; + ["Nameable"]: ModelTypes["Card"] | ModelTypes["EffectCard"] | ModelTypes["CardStack"] | ModelTypes["SpecialCard"]; + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, + name: string }; /** create card inputs
    */ ["createCard"]: { - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined, /** The name of a card
    */ name: string, /** Description of a card
    */ @@ -1006,7 +1002,11 @@ export type ModelTypes = { /**
    How many children the greek god had
    */ Children?: number | undefined, /** The attack power
    */ - Attack: number + Attack: number, + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined }; /** Aws S3 File */ ["S3Object"]: { @@ -1014,15 +1014,7 @@ export type ModelTypes = { key: string, region: string }; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string -}; - ["Mutation"]: { - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; + ["JSON"]:any; ["Query"]: { cardById?: GraphQLTypes["Card"] | undefined, /** Draw a card
    */ @@ -1033,8 +1025,18 @@ export type ModelTypes = { myStacks?: Array | undefined, nameables: Array }; - ["SpecialSkills"]:SpecialSkills; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["SpecialCard"]: { + effect: string, + name: string +}; + ["Mutation"]: { + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["Subscription"]: { + deck?: Array | undefined +} } export type GraphQLTypes = { @@ -1060,43 +1062,40 @@ export type GraphQLTypes = { name: string, skills?: Array | undefined }; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, + ["SpecialSkills"]: SpecialSkills; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, name: string -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined }; ["Nameable"]: { - __typename:"Card" | "SpecialCard" | "EffectCard" | "CardStack", + __typename:"Card" | "EffectCard" | "CardStack" | "SpecialCard", name: string ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; }; - ["JSON"]: "scalar" & { name: "JSON" }; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, name: string }; /** create card inputs
    */ ["createCard"]: { - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined, - /** The name of a card
    */ + /** The name of a card
    */ name: string, /** Description of a card
    */ description: string, /**
    How many children the greek god had
    */ Children?: number | undefined, /** The attack power
    */ - Attack: number + Attack: number, + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined }; /** Aws S3 File */ ["S3Object"]: { @@ -1105,17 +1104,7 @@ export type GraphQLTypes = { key: string, region: string }; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, - name: string -}; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; + ["JSON"]: "scalar" & { name: "JSON" }; ["Query"]: { __typename: "Query", cardById?: GraphQLTypes["Card"] | undefined, @@ -1127,21 +1116,34 @@ export type GraphQLTypes = { myStacks?: Array | undefined, nameables: Array }; - ["SpecialSkills"]: SpecialSkills; ["ChangeCard"]:{ __typename:"SpecialCard" | "EffectCard" ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string +}; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined } } export const enum SpecialSkills { + RAIN = "RAIN", FIRE = "FIRE", - THUNDER = "THUNDER", - RAIN = "RAIN" + THUNDER = "THUNDER" } type ZEUS_VARIABLES = { - ["JSON"]: ValueTypes["JSON"]; - ["createCard"]: ValueTypes["createCard"]; ["SpecialSkills"]: ValueTypes["SpecialSkills"]; + ["createCard"]: ValueTypes["createCard"]; + ["JSON"]: ValueTypes["JSON"]; } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 0c742c2d..77ddaaaf 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useMutation, useQuery } from 'react-query'; -import type { UseMutationOptions, UseQueryOptions } from 'react-query'; +import { useQuery, useMutation } from 'react-query'; +import type { UseQueryOptions, UseMutationOptions } from 'react-query'; -export function useTypedMutation>( - mutationKey: string | unknown[], - mutation: TData | ValueTypes[O], - options?: Omit, 'mutationKey' | 'mutationFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); -} export function useTypedQuery>( queryKey: string | unknown[], query: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); } +export function useTypedMutation>( + mutationKey: string | unknown[], + mutation: TData | ValueTypes[O], + options?: Omit, 'mutationKey' | 'mutationFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 2e3bc1e6..20ec8934 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -38,18 +38,24 @@ type Card implements Nameable { } """""" -type SpecialCard implements Nameable { - """""" - effect: String! +enum SpecialSkills { + """Attack multiple Cards at once
    """ + RAIN - """""" - name: String! + """50% chance to avoid any attack
    """ + FIRE + + """Lower enemy defense -5
    """ + THUNDER } """""" -type Subscription { +type EffectCard implements Nameable { """""" - deck: [Card!] + effectSize: Float! + + """""" + name: String! } """""" @@ -58,13 +64,10 @@ interface Nameable { name: String! } -"""""" -scalar JSON - -"""""" -type EffectCard implements Nameable { +"""Stack of cards""" +type CardStack implements Nameable { """""" - effectSize: Float! + cards: [Card!] """""" name: String! @@ -72,12 +75,6 @@ type EffectCard implements Nameable { """create card inputs
    """ input createCard { - """The defense power
    """ - Defense: Int! - - """input skills""" - skills: [SpecialSkills!] - """The name of a card
    """ name: String! @@ -89,6 +86,12 @@ input createCard { """The attack power
    """ Attack: Int! + + """The defense power
    """ + Defense: Int! + + """input skills""" + skills: [SpecialSkills!] } """Aws S3 File""" @@ -103,20 +106,8 @@ type S3Object { region: String! } -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - - """""" - name: String! -} - """""" -type Mutation { - """add Card to Cards database
    """ - addCard(card: createCard!): Card! -} +scalar JSON """""" type Query { @@ -140,19 +131,28 @@ type Query { } """""" -enum SpecialSkills { - """50% chance to avoid any attack
    """ - FIRE +union ChangeCard = SpecialCard | EffectCard - """Lower enemy defense -5
    """ - THUNDER +"""""" +type SpecialCard implements Nameable { + """""" + effect: String! - """Attack multiple Cards at once
    """ - RAIN + """""" + name: String! } """""" -union ChangeCard = SpecialCard | EffectCard +type Mutation { + """add Card to Cards database
    """ + addCard(card: createCard!): Card! +} + +"""""" +type Subscription { + """""" + deck: [Card!] +} schema{ query: Query, mutation: Mutation, diff --git a/package.json b/package.json index 343aae96..f1436764 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.1.3", + "version": "5.1.4", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 16f6f73c..3164fc25 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -609,16 +609,6 @@ export const InternalArgsBuilt = ({ vars: Array<{ name: string; graphQLType: string }>; }) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { - const checkType = ResolveFromPath(props, returns, ops)(p); - if (checkType.startsWith('scalar.')) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const [_, ...splittedScalar] = checkType.split('.'); - const scalarKey = splittedScalar.join('.'); - return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); - } - if (Array.isArray(a)) { - return \`[\${a.map((arr) => arb(arr, p, false)).join(', ')}]\`; - } if (typeof a === 'string') { if (a.startsWith(START_VAR_NAME)) { const [varName, graphQLType] = a.replace(START_VAR_NAME, '$').split(GRAPHQL_TYPE_SEPARATOR); @@ -637,6 +627,18 @@ export const InternalArgsBuilt = ({ } return varName; } + } + const checkType = ResolveFromPath(props, returns, ops)(p); + if (checkType.startsWith('scalar.')) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [_, ...splittedScalar] = checkType.split('.'); + const scalarKey = splittedScalar.join('.'); + return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); + } + if (Array.isArray(a)) { + return \`[\${a.map((arr) => arb(arr, p, false)).join(', ')}]\`; + } + if (typeof a === 'string') { if (checkType === 'enum') { return a; } diff --git a/src/TreeToTS/functions/new/resolvePath.ts b/src/TreeToTS/functions/new/resolvePath.ts index 46a3598c..45fa94ef 100644 --- a/src/TreeToTS/functions/new/resolvePath.ts +++ b/src/TreeToTS/functions/new/resolvePath.ts @@ -111,16 +111,6 @@ export const InternalArgsBuilt = ({ vars: Array<{ name: string; graphQLType: string }>; }) => { const arb = (a: ZeusArgsType, p = '', root = true): string => { - const checkType = ResolveFromPath(props, returns, ops)(p); - if (checkType.startsWith('scalar.')) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const [_, ...splittedScalar] = checkType.split('.'); - const scalarKey = splittedScalar.join('.'); - return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); - } - if (Array.isArray(a)) { - return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; - } if (typeof a === 'string') { if (a.startsWith(START_VAR_NAME)) { const [varName, graphQLType] = a.replace(START_VAR_NAME, '$').split(GRAPHQL_TYPE_SEPARATOR); @@ -139,6 +129,18 @@ export const InternalArgsBuilt = ({ } return varName; } + } + const checkType = ResolveFromPath(props, returns, ops)(p); + if (checkType.startsWith('scalar.')) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [_, ...splittedScalar] = checkType.split('.'); + const scalarKey = splittedScalar.join('.'); + return (scalars?.[scalarKey]?.encode?.(a) as string) || JSON.stringify(a); + } + if (Array.isArray(a)) { + return `[${a.map((arr) => arb(arr, p, false)).join(', ')}]`; + } + if (typeof a === 'string') { if (checkType === 'enum') { return a; } From 1b92bebdac92f073f4bc3c5959c9180f20f8d9dd Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 1 Jul 2022 12:30:34 +0200 Subject: [PATCH 55/74] :bug: fixed modeltypes --- examples/typescript-node/src/zeus/const.ts | 86 ++--- examples/typescript-node/src/zeus/index.ts | 352 ++++++++++----------- examples/typescript-node/zeus.graphql | 164 +++++----- package.json | 2 +- src/TreeToTS/templates/modelTypes/index.ts | 4 +- 5 files changed, 305 insertions(+), 303 deletions(-) diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 84a19655..bf1f66c9 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,82 +1,82 @@ /* eslint-disable */ export const AllTypesProps: Record = { - Card:{ - attack:{ - - } - }, - SpecialSkills: "enum" as const, - createCard:{ - skills:"SpecialSkills" - }, - JSON: `scalar.JSON` as const, Query:{ cardById:{ } }, + JSON: `scalar.JSON` as const, Mutation:{ addCard:{ card:"createCard" } - } + }, + createCard:{ + skills:"SpecialSkills" + }, + Card:{ + attack:{ + + } + }, + SpecialSkills: "enum" as const } export const ReturnTypes: Record = { - Card:{ - Attack:"Int", - Children:"Int", - Defense:"Int", - attack:"Card", - cardImage:"S3Object", - description:"String", - id:"ID", - image:"String", - info:"JSON", - name:"String", - skills:"SpecialSkills" - }, - EffectCard:{ - effectSize:"Float", - name:"String" + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" }, + JSON: `scalar.JSON` as const, Nameable:{ - "...on Card": "Card", "...on EffectCard": "EffectCard", "...on CardStack": "CardStack", + "...on Card": "Card", "...on SpecialCard": "SpecialCard", name:"String" }, - CardStack:{ - cards:"Card", - name:"String" - }, S3Object:{ bucket:"String", key:"String", region:"String" }, - JSON: `scalar.JSON` as const, - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" - }, ChangeCard:{ "...on SpecialCard":"SpecialCard", "...on EffectCard":"EffectCard" }, - SpecialCard:{ - effect:"String", + EffectCard:{ + effectSize:"Float", name:"String" }, Mutation:{ addCard:"Card" }, + CardStack:{ + cards:"Card", + name:"String" + }, + Card:{ + Attack:"Int", + Children:"Int", + Defense:"Int", + attack:"Card", + cardImage:"S3Object", + description:"String", + id:"ID", + image:"String", + info:"JSON", + name:"String", + skills:"SpecialSkills" + }, + SpecialCard:{ + effect:"String", + name:"String" + }, Subscription:{ deck:"Card" } diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index cf337b0b..3291fde6 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -865,237 +865,200 @@ export type ScalarCoders = { type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - /** Card used in card game
    */ -["Card"]: AliasType<{ - /** The attack power
    */ - Attack?:boolean | `@${string}`, - /**
    How many children the greek god had
    */ - Children?:boolean | `@${string}`, - /** The defense power
    */ - Defense?:boolean | `@${string}`, -attack?: [{ /** Attacked card/card ids
    */ - cardID: Array | Variable},ValueTypes["Card"]], - /** Put your description here */ - cardImage?:ValueTypes["S3Object"], - /** Description of a card
    */ - description?:boolean | `@${string}`, - id?:boolean | `@${string}`, - image?:boolean | `@${string}`, - info?:boolean | `@${string}`, - /** The name of a card
    */ - name?:boolean | `@${string}`, - skills?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["SpecialSkills"]:SpecialSkills; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, - name?:boolean | `@${string}`, + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null | Variable},ValueTypes["Card"]], + /** Draw a card
    */ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], __typename?: boolean | `@${string}` }>; + ["JSON"]:unknown; ["Nameable"]:AliasType<{ name?:boolean | `@${string}`; - ['...on Card']?: Omit; ['...on EffectCard']?: Omit; ['...on CardStack']?: Omit; + ['...on Card']?: Omit; ['...on SpecialCard']?: Omit; __typename?: boolean | `@${string}` }>; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean | `@${string}` +}>; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], + __typename?: boolean | `@${string}` }>; /** create card inputs
    */ ["createCard"]: { - /** The name of a card
    */ - name: string | Variable, - /** Description of a card
    */ - description: string | Variable, - /**
    How many children the greek god had
    */ - Children?: number | undefined | null | Variable, /** The attack power
    */ Attack: number | Variable, /** The defense power
    */ Defense: number | Variable, /** input skills */ - skills?: Array | undefined | null | Variable + skills?: Array | undefined | null | Variable, + /** The name of a card
    */ + name: string | Variable, + /** Description of a card
    */ + description: string | Variable, + /**
    How many children the greek god had
    */ + Children?: number | undefined | null | Variable }; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["JSON"]:unknown; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null | Variable},ValueTypes["Card"]], - /** Draw a card
    */ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] + /** Card used in card game
    */ +["Card"]: AliasType<{ + /** The attack power
    */ + Attack?:boolean | `@${string}`, + /**
    How many children the greek god had
    */ + Children?:boolean | `@${string}`, + /** The defense power
    */ + Defense?:boolean | `@${string}`, +attack?: [{ /** Attacked card/card ids
    */ + cardID: Array | Variable},ValueTypes["Card"]], + /** Put your description here */ + cardImage?:ValueTypes["S3Object"], + /** Description of a card
    */ + description?:boolean | `@${string}`, + id?:boolean | `@${string}`, + image?:boolean | `@${string}`, + info?:boolean | `@${string}`, + /** The name of a card
    */ + name?:boolean | `@${string}`, + skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; ["SpecialCard"]: AliasType<{ effect?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}>; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], - __typename?: boolean | `@${string}` }>; ["Subscription"]: AliasType<{ deck?:ValueTypes["Card"], __typename?: boolean | `@${string}` -}> +}>; + ["SpecialSkills"]:SpecialSkills } export type ModelTypes = { - /** Card used in card game
    */ -["Card"]: { - /** The attack power
    */ - Attack: number, - /**
    How many children the greek god had
    */ - Children?: number | undefined, - /** The defense power
    */ - Defense: number, - /** Attack other cards on the table , returns Cards after attack
    */ - attack?: Array | undefined, - /** Put your description here */ - cardImage?: GraphQLTypes["S3Object"] | undefined, - /** Description of a card
    */ - description: string, - id: string, - image: string, - info: GraphQLTypes["JSON"], - /** The name of a card
    */ - name: string, - skills?: Array | undefined + ["Query"]: { + cardById?: ModelTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: ModelTypes["Card"], + drawChangeCard: ModelTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["JSON"]:any; + ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["CardStack"] | ModelTypes["Card"] | ModelTypes["SpecialCard"]; + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string }; - ["SpecialSkills"]:SpecialSkills; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; ["EffectCard"]: { effectSize: number, name: string }; - ["Nameable"]: ModelTypes["Card"] | ModelTypes["EffectCard"] | ModelTypes["CardStack"] | ModelTypes["SpecialCard"]; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string + ["Mutation"]: { + /** add Card to Cards database
    */ + addCard: ModelTypes["Card"] }; /** create card inputs
    */ ["createCard"]: { - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string, - /**
    How many children the greek god had
    */ - Children?: number | undefined, /** The attack power
    */ Attack: number, /** The defense power
    */ Defense: number, /** input skills */ - skills?: Array | undefined -}; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - ["JSON"]:any; - ["Query"]: { - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array + skills?: Array | undefined, + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined }; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["SpecialCard"]: { - effect: string, + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, name: string }; - ["Mutation"]: { - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; - ["Subscription"]: { - deck?: Array | undefined -} - } - -export type GraphQLTypes = { - /** Card used in card game
    */ + /** Card used in card game
    */ ["Card"]: { - __typename: "Card", - /** The attack power
    */ + /** The attack power
    */ Attack: number, /**
    How many children the greek god had
    */ Children?: number | undefined, /** The defense power
    */ Defense: number, /** Attack other cards on the table , returns Cards after attack
    */ - attack?: Array | undefined, + attack?: Array | undefined, /** Put your description here */ - cardImage?: GraphQLTypes["S3Object"] | undefined, + cardImage?: ModelTypes["S3Object"] | undefined, /** Description of a card
    */ description: string, id: string, image: string, - info: GraphQLTypes["JSON"], + info: ModelTypes["JSON"], /** The name of a card
    */ name: string, - skills?: Array | undefined + skills?: Array | undefined }; - ["SpecialSkills"]: SpecialSkills; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, + ["SpecialCard"]: { + effect: string, name: string }; + ["Subscription"]: { + deck?: Array | undefined +}; + ["SpecialSkills"]:SpecialSkills + } + +export type GraphQLTypes = { + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["JSON"]: "scalar" & { name: "JSON" }; ["Nameable"]: { - __typename:"Card" | "EffectCard" | "CardStack" | "SpecialCard", + __typename:"EffectCard" | "CardStack" | "Card" | "SpecialCard", name: string - ['...on Card']: '__union' & GraphQLTypes["Card"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; -}; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, - name: string -}; - /** create card inputs
    */ -["createCard"]: { - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string, - /**
    How many children the greek god had
    */ - Children?: number | undefined, - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined }; /** Aws S3 File */ ["S3Object"]: { @@ -1103,38 +1066,75 @@ export type GraphQLTypes = { bucket: string, key: string, region: string -}; - ["JSON"]: "scalar" & { name: "JSON" }; - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array }; ["ChangeCard"]:{ __typename:"SpecialCard" | "EffectCard" ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, name: string }; ["Mutation"]: { __typename: "Mutation", /** add Card to Cards database
    */ addCard: GraphQLTypes["Card"] +}; + /** create card inputs
    */ +["createCard"]: { + /** The attack power
    */ + Attack: number, + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined, + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined +}; + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, + name: string +}; + /** Card used in card game
    */ +["Card"]: { + __typename: "Card", + /** The attack power
    */ + Attack: number, + /**
    How many children the greek god had
    */ + Children?: number | undefined, + /** The defense power
    */ + Defense: number, + /** Attack other cards on the table , returns Cards after attack
    */ + attack?: Array | undefined, + /** Put your description here */ + cardImage?: GraphQLTypes["S3Object"] | undefined, + /** Description of a card
    */ + description: string, + id: string, + image: string, + info: GraphQLTypes["JSON"], + /** The name of a card
    */ + name: string, + skills?: Array | undefined +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string }; ["Subscription"]: { __typename: "Subscription", deck?: Array | undefined -} +}; + ["SpecialSkills"]: SpecialSkills } export const enum SpecialSkills { RAIN = "RAIN", @@ -1143,7 +1143,7 @@ export const enum SpecialSkills { } type ZEUS_VARIABLES = { - ["SpecialSkills"]: ValueTypes["SpecialSkills"]; - ["createCard"]: ValueTypes["createCard"]; ["JSON"]: ValueTypes["JSON"]; + ["createCard"]: ValueTypes["createCard"]; + ["SpecialSkills"]: ValueTypes["SpecialSkills"]; } \ No newline at end of file diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 20ec8934..e4c14ed4 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,53 +1,47 @@ -"""Card used in card game
    """ -type Card implements Nameable { - """The attack power
    """ - Attack: Int! - - """
    How many children the greek god had
    """ - Children: Int +"""""" +type Query { + """""" + cardById(cardId: String): Card - """The defense power
    """ - Defense: Int! + """Draw a card
    """ + drawCard: Card! - """Attack other cards on the table , returns Cards after attack
    """ - attack( - """Attacked card/card ids
    """ - cardID: [String!]! - ): [Card!] + """""" + drawChangeCard: ChangeCard! - """Put your description here""" - cardImage: S3Object + """list All Cards availble
    """ + listCards: [Card!]! - """Description of a card
    """ - description: String! + """""" + myStacks: [CardStack!] """""" - id: ID! + nameables: [Nameable!]! +} + +"""""" +scalar JSON +"""""" +interface Nameable { """""" - image: String! + name: String! +} +"""Aws S3 File""" +type S3Object { """""" - info: JSON! + bucket: String! - """The name of a card
    """ - name: String! + """""" + key: String! """""" - skills: [SpecialSkills!] + region: String! } """""" -enum SpecialSkills { - """Attack multiple Cards at once
    """ - RAIN - - """50% chance to avoid any attack
    """ - FIRE - - """Lower enemy defense -5
    """ - THUNDER -} +union ChangeCard = SpecialCard | EffectCard """""" type EffectCard implements Nameable { @@ -59,22 +53,22 @@ type EffectCard implements Nameable { } """""" -interface Nameable { - """""" - name: String! -} - -"""Stack of cards""" -type CardStack implements Nameable { - """""" - cards: [Card!] - - """""" - name: String! +type Mutation { + """add Card to Cards database
    """ + addCard(card: createCard!): Card! } """create card inputs
    """ input createCard { + """The attack power
    """ + Attack: Int! + + """The defense power
    """ + Defense: Int! + + """input skills""" + skills: [SpecialSkills!] + """The name of a card
    """ name: String! @@ -83,56 +77,56 @@ input createCard { """
    How many children the greek god had
    """ Children: Int +} +"""Stack of cards""" +type CardStack implements Nameable { + """""" + cards: [Card!] + + """""" + name: String! +} + +"""Card used in card game
    """ +type Card implements Nameable { """The attack power
    """ Attack: Int! + """
    How many children the greek god had
    """ + Children: Int + """The defense power
    """ Defense: Int! - """input skills""" - skills: [SpecialSkills!] -} + """Attack other cards on the table , returns Cards after attack
    """ + attack( + """Attacked card/card ids
    """ + cardID: [String!]! + ): [Card!] -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! + """Put your description here""" + cardImage: S3Object - """""" - key: String! + """Description of a card
    """ + description: String! """""" - region: String! -} - -"""""" -scalar JSON + id: ID! -"""""" -type Query { """""" - cardById(cardId: String): Card - - """Draw a card
    """ - drawCard: Card! + image: String! """""" - drawChangeCard: ChangeCard! - - """list All Cards availble
    """ - listCards: [Card!]! + info: JSON! - """""" - myStacks: [CardStack!] + """The name of a card
    """ + name: String! """""" - nameables: [Nameable!]! + skills: [SpecialSkills!] } -"""""" -union ChangeCard = SpecialCard | EffectCard - """""" type SpecialCard implements Nameable { """""" @@ -142,17 +136,23 @@ type SpecialCard implements Nameable { name: String! } -"""""" -type Mutation { - """add Card to Cards database
    """ - addCard(card: createCard!): Card! -} - """""" type Subscription { """""" deck: [Card!] } + +"""""" +enum SpecialSkills { + """Attack multiple Cards at once
    """ + RAIN + + """50% chance to avoid any attack
    """ + FIRE + + """Lower enemy defense -5
    """ + THUNDER +} schema{ query: Query, mutation: Mutation, diff --git a/package.json b/package.json index f1436764..c6e62736 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.1.4", + "version": "5.1.5", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", diff --git a/src/TreeToTS/templates/modelTypes/index.ts b/src/TreeToTS/templates/modelTypes/index.ts index eda2b57e..a50d184c 100644 --- a/src/TreeToTS/templates/modelTypes/index.ts +++ b/src/TreeToTS/templates/modelTypes/index.ts @@ -33,7 +33,9 @@ const resolveTypeFromRoot = (i: ParserField, rootNodes: ParserField[]): string = .map((f) => resolveField(f, MODEL_TYPES)) .join(',\n')}\n}`; } - return `${plusDescription(i.description)}["${i.name}"]: {\n\t${i.args.map((f) => resolveField(f)).join(',\n')}\n}`; + return `${plusDescription(i.description)}["${i.name}"]: {\n\t${i.args + .map((f) => resolveField(f, MODEL_TYPES)) + .join(',\n')}\n}`; }; export const resolveModelTypes = (rootNodes: ParserField[]): string => { return `export type ${MODEL_TYPES} = { From 76311fe16f0ab78925d019a4e266bd27fa6751c4 Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 1 Jul 2022 14:16:28 +0200 Subject: [PATCH 56/74] :memo: td docs --- doc/src/markdown/plugins/typedDocumentNode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/markdown/plugins/typedDocumentNode.md b/doc/src/markdown/plugins/typedDocumentNode.md index 4795ec9f..5885897d 100644 --- a/doc/src/markdown/plugins/typedDocumentNode.md +++ b/doc/src/markdown/plugins/typedDocumentNode.md @@ -32,7 +32,7 @@ import { $ } from './zeus'; import { useQuery } from '@apollo/client'; const myMutation = typedGql('mutation')({ - cardById: [{ cardId: $('cardId') }, { name: true }], + cardById: [{ cardId: $('cardId', 'String!') }, { name: true }], }); const Main = () => { From 1ce87e8baf2f32b7f7458f9383672c47a5e70657 Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 1 Jul 2022 14:17:51 +0200 Subject: [PATCH 57/74] :memo: Docs fixes --- doc/src/markdown/graphql/variables.md | 8 +++++--- doc/src/markdown/plugins/apollo.md | 8 +++++--- doc/src/markdown/plugins/typedDocumentNode.md | 4 ++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/doc/src/markdown/graphql/variables.md b/doc/src/markdown/graphql/variables.md index 24411fc5..75bbe02f 100644 --- a/doc/src/markdown/graphql/variables.md +++ b/doc/src/markdown/graphql/variables.md @@ -45,17 +45,17 @@ const addCardResult = await Gql('mutation')( ); ``` -### TypedDocumentNode + Apollo Client useQuery examples +### TypedDocumentNode + Apollo Client useMutation examples The following example demonstrates usage with Apollo. Other clients should work similarly. ```tsx import { typedGql } from './zeus/typedDocumentNode'; import { $ } from './zeus'; -import { useQuery } from '@apollo/client'; +import { useMutation } from '@apollo/client'; const myMutation = typedGql('mutation')({ - cardById: [{ cardId: $('cardId') }, { name: true }], + cardById: [{ cardId: $('cardId', 'String!') }, { name: true }], }); const Main = () => { @@ -77,3 +77,5 @@ const Main = () => { ); }; ``` + +[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node diff --git a/doc/src/markdown/plugins/apollo.md b/doc/src/markdown/plugins/apollo.md index deb62b44..7a7987ad 100644 --- a/doc/src/markdown/plugins/apollo.md +++ b/doc/src/markdown/plugins/apollo.md @@ -20,17 +20,17 @@ $ zeus schema.graphql ./ --typedDocumentNode # apollo.ts file with typed hooks is now in the output destination ``` -### TypedDocumentNode + Apollo Client useQuery examples +### TypedDocumentNode + Apollo Client useMutation examples The following example demonstrates usage with Apollo. Other clients should work similarly. ```tsx import { typedGql } from './zeus/typedDocumentNode'; import { $ } from './zeus'; -import { useQuery } from '@apollo/client'; +import { useMutation } from '@apollo/client'; const myMutation = typedGql('mutation')({ - cardById: [{ cardId: $('cardId') }, { name: true }], + cardById: [{ cardId: $('cardId', 'String!') }, { name: true }], }); const Main = () => { @@ -52,3 +52,5 @@ const Main = () => { ); }; ``` + +[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node diff --git a/doc/src/markdown/plugins/typedDocumentNode.md b/doc/src/markdown/plugins/typedDocumentNode.md index 5885897d..3a9951f5 100644 --- a/doc/src/markdown/plugins/typedDocumentNode.md +++ b/doc/src/markdown/plugins/typedDocumentNode.md @@ -22,14 +22,14 @@ $ zeus https://yourschema.com/graphql ./ --typedDocumentNode # typedDocumentNode.ts file with typed document node builders is now in the output destination ``` -### TypedDocumentNode + Apollo Client useQuery examples +### TypedDocumentNode + Apollo Client useMutation examples The following example demonstrates usage with Apollo. Other clients should work similarly. ```tsx import { typedGql } from './zeus/typedDocumentNode'; import { $ } from './zeus'; -import { useQuery } from '@apollo/client'; +import { useMutation } from '@apollo/client'; const myMutation = typedGql('mutation')({ cardById: [{ cardId: $('cardId', 'String!') }, { name: true }], From b6066c94abde0b612cfbb3e544163d47ef99221b Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 1 Jul 2022 17:02:41 +0200 Subject: [PATCH 58/74] :sparkles: ResolverInputTypes generation --- examples/typescript-node/src/zeus/apollo.ts | 28 +- examples/typescript-node/src/zeus/const.ts | 68 ++-- examples/typescript-node/src/zeus/index.ts | 345 +++++++++++------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- examples/typescript-node/zeus.graphql | 124 +++---- src/TreeToTS/functions/generated.ts | 4 +- src/TreeToTS/functions/new/mocks.ts | 101 +++++ src/TreeToTS/functions/new/resolverFor.ts | 6 +- src/TreeToTS/index.ts | 4 + .../templates/valueTypes/inputTypes/arg.ts | 61 ++++ .../templates/valueTypes/inputTypes/index.ts | 53 +++ src/TreeToTS/templates/valueTypes/models.ts | 1 + 12 files changed, 568 insertions(+), 251 deletions(-) create mode 100644 src/TreeToTS/templates/valueTypes/inputTypes/arg.ts create mode 100644 src/TreeToTS/templates/valueTypes/inputTypes/index.ts diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index fcc56c5f..3e1082c0 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,45 +1,45 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index'; -import { gql, useQuery, useLazyQuery, useMutation, useSubscription } from '@apollo/client'; -import type { QueryHookOptions, LazyQueryHookOptions, MutationHookOptions, SubscriptionHookOptions } from '@apollo/client'; +import { gql, useMutation, useQuery, useLazyQuery, useSubscription } from '@apollo/client'; +import type { MutationHookOptions, QueryHookOptions, LazyQueryHookOptions, SubscriptionHookOptions } from '@apollo/client'; -export function useTypedQuery( - query: Z | ValueTypes[O], +export function useTypedMutation( + mutation: Z | ValueTypes[O], options?:{ - apolloOptions?: QueryHookOptions>, + apolloOptions?: MutationHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useQuery>(gql(Zeus("query",query, { + return useMutation>(gql(Zeus("mutation",mutation, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedLazyQuery( - LazyQuery: Z | ValueTypes[O], +export function useTypedQuery( + query: Z | ValueTypes[O], options?:{ - apolloOptions?: LazyQueryHookOptions>, + apolloOptions?: QueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useLazyQuery>(gql(Zeus("query",LazyQuery, { + return useQuery>(gql(Zeus("query",query, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedMutation( - mutation: Z | ValueTypes[O], +export function useTypedLazyQuery( + LazyQuery: Z | ValueTypes[O], options?:{ - apolloOptions?: MutationHookOptions>, + apolloOptions?: LazyQueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useMutation>(gql(Zeus("mutation",mutation, { + return useLazyQuery>(gql(Zeus("query",LazyQuery, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index bf1f66c9..cca3a8de 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,12 +1,6 @@ /* eslint-disable */ export const AllTypesProps: Record = { - Query:{ - cardById:{ - - } - }, - JSON: `scalar.JSON` as const, Mutation:{ addCard:{ card:"createCard" @@ -15,15 +9,38 @@ export const AllTypesProps: Record = { createCard:{ skills:"SpecialSkills" }, + JSON: `scalar.JSON` as const, + Query:{ + cardById:{ + + } + }, + SpecialSkills: "enum" as const, Card:{ attack:{ } - }, - SpecialSkills: "enum" as const + } } export const ReturnTypes: Record = { + CardStack:{ + cards:"Card", + name:"String" + }, + Mutation:{ + addCard:"Card" + }, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, + JSON: `scalar.JSON` as const, + EffectCard:{ + effectSize:"Float", + name:"String" + }, Query:{ cardById:"Card", drawCard:"Card", @@ -32,33 +49,15 @@ export const ReturnTypes: Record = { myStacks:"CardStack", nameables:"Nameable" }, - JSON: `scalar.JSON` as const, Nameable:{ - "...on EffectCard": "EffectCard", "...on CardStack": "CardStack", + "...on EffectCard": "EffectCard", "...on Card": "Card", "...on SpecialCard": "SpecialCard", name:"String" }, - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, - EffectCard:{ - effectSize:"Float", - name:"String" - }, - Mutation:{ - addCard:"Card" - }, - CardStack:{ - cards:"Card", - name:"String" + Subscription:{ + deck:"Card" }, Card:{ Attack:"Int", @@ -73,17 +72,18 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" + }, SpecialCard:{ effect:"String", name:"String" - }, - Subscription:{ - deck:"Card" } } export const Ops = { -query: "Query" as const, - mutation: "Mutation" as const, +mutation: "Mutation" as const, + query: "Query" as const, subscription: "Subscription" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 3291fde6..db93f45f 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -674,11 +674,11 @@ export const InternalArgsBuilt = ({ -export const resolverFor = ( +export const resolverFor = ( type: T, field: Z, fn: ( - args: Required[Z] extends [infer Input, any] ? Input : any, + args: Required[Z] extends [infer Input, any] ? Input : any, source: any, ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, ) => fn as (args?: any, source?: any) => any; @@ -865,7 +865,45 @@ export type ScalarCoders = { type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - ["Query"]: AliasType<{ + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + /** create card inputs
    */ +["createCard"]: { + /** The name of a card
    */ + name: string | Variable, + /** Description of a card
    */ + description: string | Variable, + /**
    How many children the greek god had
    */ + Children?: number | undefined | null | Variable, + /** The attack power
    */ + Attack: number | Variable, + /** The defense power
    */ + Defense: number | Variable, + /** input skills */ + skills?: Array | undefined | null | Variable +}; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["Query"]: AliasType<{ cardById?: [{ cardId?: string | undefined | null | Variable},ValueTypes["Card"]], /** Draw a card
    */ drawCard?:ValueTypes["Card"], @@ -876,56 +914,115 @@ cardById?: [{ cardId?: string | undefined | null | Variable},ValueT nameables?:ValueTypes["Nameable"], __typename?: boolean | `@${string}` }>; - ["JSON"]:unknown; ["Nameable"]:AliasType<{ name?:boolean | `@${string}`; - ['...on EffectCard']?: Omit; ['...on CardStack']?: Omit; + ['...on EffectCard']?: Omit; ['...on Card']?: Omit; ['...on SpecialCard']?: Omit; __typename?: boolean | `@${string}` }>; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; + /** Card used in card game
    */ +["Card"]: AliasType<{ + /** The attack power
    */ + Attack?:boolean | `@${string}`, + /**
    How many children the greek god had
    */ + Children?:boolean | `@${string}`, + /** The defense power
    */ + Defense?:boolean | `@${string}`, +attack?: [{ /** Attacked card/card ids
    */ + cardID: Array | Variable},ValueTypes["Card"]], + /** Put your description here */ + cardImage?:ValueTypes["S3Object"], + /** Description of a card
    */ + description?:boolean | `@${string}`, + id?:boolean | `@${string}`, + image?:boolean | `@${string}`, + info?:boolean | `@${string}`, + /** The name of a card
    */ + name?:boolean | `@${string}`, + skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: boolean | `@${string}` }>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}> + } + +export type ResolverInputTypes = { + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ResolverInputTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], +addCard?: [{ card: ResolverInputTypes["createCard"]},ResolverInputTypes["Card"]], __typename?: boolean | `@${string}` }>; /** create card inputs
    */ ["createCard"]: { - /** The attack power
    */ - Attack: number | Variable, - /** The defense power
    */ - Defense: number | Variable, - /** input skills */ - skills?: Array | undefined | null | Variable, /** The name of a card
    */ - name: string | Variable, + name: string, /** Description of a card
    */ - description: string | Variable, + description: string, /**
    How many children the greek god had
    */ - Children?: number | undefined | null | Variable + Children?: number | undefined | null, + /** The attack power
    */ + Attack: number, + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined | null }; - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ResolverInputTypes["Card"]], + /** Draw a card
    */ + drawCard?:ResolverInputTypes["Card"], + drawChangeCard?:ResolverInputTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards?:ResolverInputTypes["Card"], + myStacks?:ResolverInputTypes["CardStack"], + nameables?:ResolverInputTypes["Nameable"], + __typename?: boolean | `@${string}` +}>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on CardStack']?: Omit; + ['...on EffectCard']?: Omit; + ['...on Card']?: Omit; + ['...on SpecialCard']?: Omit; + __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ResolverInputTypes["Card"], + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; /** Card used in card game
    */ ["Card"]: AliasType<{ /** The attack power
    */ @@ -935,9 +1032,9 @@ addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes[ /** The defense power
    */ Defense?:boolean | `@${string}`, attack?: [{ /** Attacked card/card ids
    */ - cardID: Array | Variable},ValueTypes["Card"]], + cardID: Array},ResolverInputTypes["Card"]], /** Put your description here */ - cardImage?:ValueTypes["S3Object"], + cardImage?:ResolverInputTypes["S3Object"], /** Description of a card
    */ description?:boolean | `@${string}`, id?:boolean | `@${string}`, @@ -947,41 +1044,23 @@ attack?: [{ /** Attacked card/card ids
    */ name?:boolean | `@${string}`, skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` +}>; + ["ChangeCard"]: AliasType<{ + SpecialCard?:ResolverInputTypes["SpecialCard"], + EffectCard?:ResolverInputTypes["EffectCard"], + __typename?: boolean | `@${string}` }>; ["SpecialCard"]: AliasType<{ effect?:boolean | `@${string}`, name?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean | `@${string}` -}>; - ["SpecialSkills"]:SpecialSkills +}> } export type ModelTypes = { - ["Query"]: { - cardById?: ModelTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: ModelTypes["Card"], - drawChangeCard: ModelTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - ["JSON"]:any; - ["Nameable"]: ModelTypes["EffectCard"] | ModelTypes["CardStack"] | ModelTypes["Card"] | ModelTypes["SpecialCard"]; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["EffectCard"]: { - effectSize: number, + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, name: string }; ["Mutation"]: { @@ -990,24 +1069,45 @@ export type ModelTypes = { }; /** create card inputs
    */ ["createCard"]: { - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined, /** The name of a card
    */ name: string, /** Description of a card
    */ description: string, /**
    How many children the greek god had
    */ - Children?: number | undefined + Children?: number | undefined, + /** The attack power
    */ + Attack: number, + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined }; - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string +}; + ["JSON"]:any; + ["EffectCard"]: { + effectSize: number, name: string }; + ["Query"]: { + cardById?: ModelTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: ModelTypes["Card"], + drawChangeCard: ModelTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["EffectCard"] | ModelTypes["Card"] | ModelTypes["SpecialCard"]; + ["Subscription"]: { + deck?: Array | undefined +}; + ["SpecialSkills"]:SpecialSkills; /** Card used in card game
    */ ["Card"]: { /** The attack power
    */ @@ -1029,36 +1129,39 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; ["SpecialCard"]: { effect: string, name: string -}; - ["Subscription"]: { - deck?: Array | undefined -}; - ["SpecialSkills"]:SpecialSkills +} } export type GraphQLTypes = { - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array -}; - ["JSON"]: "scalar" & { name: "JSON" }; - ["Nameable"]: { - __typename:"EffectCard" | "CardStack" | "Card" | "SpecialCard", + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, name: string - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; +}; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + /** create card inputs
    */ +["createCard"]: { + /** The name of a card
    */ + name: string, + /** Description of a card
    */ + description: string, + /**
    How many children the greek god had
    */ + Children?: number | undefined, + /** The attack power
    */ + Attack: number, + /** The defense power
    */ + Defense: number, + /** input skills */ + skills?: Array | undefined }; /** Aws S3 File */ ["S3Object"]: { @@ -1067,42 +1170,36 @@ export type GraphQLTypes = { key: string, region: string }; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; + ["JSON"]: "scalar" & { name: "JSON" }; ["EffectCard"]: { __typename: "EffectCard", effectSize: number, name: string }; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; - /** create card inputs
    */ -["createCard"]: { - /** The attack power
    */ - Attack: number, - /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined, - /** The name of a card
    */ - name: string, - /** Description of a card
    */ - description: string, - /**
    How many children the greek god had
    */ - Children?: number | undefined + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array }; - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, + ["Nameable"]: { + __typename:"CardStack" | "EffectCard" | "Card" | "SpecialCard", name: string + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; }; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined +}; + ["SpecialSkills"]: SpecialSkills; /** Card used in card game
    */ ["Card"]: { __typename: "Card", @@ -1124,26 +1221,26 @@ export type GraphQLTypes = { /** The name of a card
    */ name: string, skills?: Array | undefined +}; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; ["SpecialCard"]: { __typename: "SpecialCard", effect: string, name: string -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined -}; - ["SpecialSkills"]: SpecialSkills +} } export const enum SpecialSkills { + THUNDER = "THUNDER", RAIN = "RAIN", - FIRE = "FIRE", - THUNDER = "THUNDER" + FIRE = "FIRE" } type ZEUS_VARIABLES = { - ["JSON"]: ValueTypes["JSON"]; ["createCard"]: ValueTypes["createCard"]; + ["JSON"]: ValueTypes["JSON"]; ["SpecialSkills"]: ValueTypes["SpecialSkills"]; } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 77ddaaaf..0c742c2d 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useQuery, useMutation } from 'react-query'; -import type { UseQueryOptions, UseMutationOptions } from 'react-query'; +import { useMutation, useQuery } from 'react-query'; +import type { UseMutationOptions, UseQueryOptions } from 'react-query'; -export function useTypedQuery>( - queryKey: string | unknown[], - query: TData | ValueTypes[O], - options?: Omit, 'queryKey' | 'queryFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); -} export function useTypedMutation>( mutationKey: string | unknown[], mutation: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } +export function useTypedQuery>( + queryKey: string | unknown[], + query: TData | ValueTypes[O], + options?: Omit, 'queryKey' | 'queryFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index e4c14ed4..4f4908ff 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,31 +1,37 @@ -"""""" -type Query { - """""" - cardById(cardId: String): Card - - """Draw a card
    """ - drawCard: Card! - - """""" - drawChangeCard: ChangeCard! - - """list All Cards availble
    """ - listCards: [Card!]! - +"""Stack of cards""" +type CardStack implements Nameable { """""" - myStacks: [CardStack!] + cards: [Card!] """""" - nameables: [Nameable!]! + name: String! } """""" -scalar JSON +type Mutation { + """add Card to Cards database
    """ + addCard(card: createCard!): Card! +} -"""""" -interface Nameable { - """""" +"""create card inputs
    """ +input createCard { + """The name of a card
    """ name: String! + + """Description of a card
    """ + description: String! + + """
    How many children the greek god had
    """ + Children: Int + + """The attack power
    """ + Attack: Int! + + """The defense power
    """ + Defense: Int! + + """input skills""" + skills: [SpecialSkills!] } """Aws S3 File""" @@ -41,7 +47,7 @@ type S3Object { } """""" -union ChangeCard = SpecialCard | EffectCard +scalar JSON """""" type EffectCard implements Nameable { @@ -53,39 +59,48 @@ type EffectCard implements Nameable { } """""" -type Mutation { - """add Card to Cards database
    """ - addCard(card: createCard!): Card! -} - -"""create card inputs
    """ -input createCard { - """The attack power
    """ - Attack: Int! +type Query { + """""" + cardById(cardId: String): Card - """The defense power
    """ - Defense: Int! + """Draw a card
    """ + drawCard: Card! - """input skills""" - skills: [SpecialSkills!] + """""" + drawChangeCard: ChangeCard! - """The name of a card
    """ - name: String! + """list All Cards availble
    """ + listCards: [Card!]! - """Description of a card
    """ - description: String! + """""" + myStacks: [CardStack!] - """
    How many children the greek god had
    """ - Children: Int + """""" + nameables: [Nameable!]! } -"""Stack of cards""" -type CardStack implements Nameable { +"""""" +interface Nameable { """""" - cards: [Card!] + name: String! +} +"""""" +type Subscription { """""" - name: String! + deck: [Card!] +} + +"""""" +enum SpecialSkills { + """Lower enemy defense -5
    """ + THUNDER + + """Attack multiple Cards at once
    """ + RAIN + + """50% chance to avoid any attack
    """ + FIRE } """Card used in card game
    """ @@ -127,6 +142,9 @@ type Card implements Nameable { skills: [SpecialSkills!] } +"""""" +union ChangeCard = SpecialCard | EffectCard + """""" type SpecialCard implements Nameable { """""" @@ -135,24 +153,6 @@ type SpecialCard implements Nameable { """""" name: String! } - -"""""" -type Subscription { - """""" - deck: [Card!] -} - -"""""" -enum SpecialSkills { - """Attack multiple Cards at once
    """ - RAIN - - """50% chance to avoid any attack
    """ - FIRE - - """Lower enemy defense -5
    """ - THUNDER -} schema{ query: Query, mutation: Mutation, diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 3164fc25..d46d690e 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -665,11 +665,11 @@ export const InternalArgsBuilt = ({ -export const resolverFor = ( +export const resolverFor = ( type: T, field: Z, fn: ( - args: Required[Z] extends [infer Input, any] ? Input : any, + args: Required[Z] extends [infer Input, any] ? Input : any, source: any, ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, ) => fn as (args?: any, source?: any) => any; diff --git a/src/TreeToTS/functions/new/mocks.ts b/src/TreeToTS/functions/new/mocks.ts index 6639da30..854abfaf 100644 --- a/src/TreeToTS/functions/new/mocks.ts +++ b/src/TreeToTS/functions/new/mocks.ts @@ -335,3 +335,104 @@ export const apiSubscription = (opts: chainOptions) => ((q: string) => 1) as unk export const apiFetch = (options: chainOptions) => ((q: string, vars?: unknown) => 1) as unknown as FetchFunction; export const HOST = 'https://faker.graphqleditor.com/a-team/olympus/graphql'; export const HEADERS = {}; + +export type ResolverInputTypes = { + ['Query']: AliasType<{ + cardById?: [{ cardId?: string | undefined | null }, ResolverInputTypes['Card']]; + /** Draw a card
    */ + drawCard?: ResolverInputTypes['Card']; + drawChangeCard?: ResolverInputTypes['ChangeCard']; + /** list All Cards availble
    */ + listCards?: ResolverInputTypes['Card']; + myStacks?: ResolverInputTypes['CardStack']; + nameables?: ResolverInputTypes['Nameable']; + __typename?: boolean | `@${string}`; + }>; + ['SpecialSkills']: SpecialSkills; + ['EffectCard']: AliasType<{ + effectSize?: boolean | `@${string}`; + name?: boolean | `@${string}`; + __typename?: boolean | `@${string}`; + }>; + /** create card inputs
    */ + ['createCard']: { + /** input skills */ + skills?: Array | undefined | null; + /** The name of a card
    */ + name: string; + /** Description of a card
    */ + description: string; + /**
    How many children the greek god had
    */ + Children?: number | undefined | null; + /** The attack power
    */ + Attack: number; + /** The defense power
    */ + Defense: number; + }; + /** Aws S3 File */ + ['S3Object']: AliasType<{ + bucket?: boolean | `@${string}`; + key?: boolean | `@${string}`; + region?: boolean | `@${string}`; + __typename?: boolean | `@${string}`; + }>; + ['ChangeCard']: AliasType<{ + SpecialCard?: ResolverInputTypes['SpecialCard']; + EffectCard?: ResolverInputTypes['EffectCard']; + __typename?: boolean | `@${string}`; + }>; + ['SpecialCard']: AliasType<{ + effect?: boolean | `@${string}`; + name?: boolean | `@${string}`; + __typename?: boolean | `@${string}`; + }>; + /** Card used in card game
    */ + ['Card']: AliasType<{ + /** The attack power
    */ + Attack?: boolean | `@${string}`; + /**
    How many children the greek god had
    */ + Children?: boolean | `@${string}`; + /** The defense power
    */ + Defense?: boolean | `@${string}`; + attack?: [ + { + /** Attacked card/card ids
    */ cardID: Array; + }, + ResolverInputTypes['Card'], + ]; + /** Put your description here */ + cardImage?: ResolverInputTypes['S3Object']; + /** Description of a card
    */ + description?: boolean | `@${string}`; + id?: boolean | `@${string}`; + image?: boolean | `@${string}`; + info?: boolean | `@${string}`; + /** The name of a card
    */ + name?: boolean | `@${string}`; + skills?: boolean | `@${string}`; + __typename?: boolean | `@${string}`; + }>; + ['Nameable']: AliasType<{ + name?: boolean | `@${string}`; + ['...on EffectCard']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on Card']?: Omit; + ['...on CardStack']?: Omit; + __typename?: boolean | `@${string}`; + }>; + /** Stack of cards */ + ['CardStack']: AliasType<{ + cards?: ResolverInputTypes['Card']; + name?: boolean | `@${string}`; + __typename?: boolean | `@${string}`; + }>; + ['Mutation']: AliasType<{ + addCard?: [{ card: ResolverInputTypes['createCard'] }, ResolverInputTypes['Card']]; + __typename?: boolean | `@${string}`; + }>; + ['JSON']: unknown; + ['Subscription']: AliasType<{ + deck?: ResolverInputTypes['Card']; + __typename?: boolean | `@${string}`; + }>; +}; diff --git a/src/TreeToTS/functions/new/resolverFor.ts b/src/TreeToTS/functions/new/resolverFor.ts index 67fe2ff6..e44c48ce 100644 --- a/src/TreeToTS/functions/new/resolverFor.ts +++ b/src/TreeToTS/functions/new/resolverFor.ts @@ -1,10 +1,10 @@ -import { ValueTypes, ModelTypes } from '@/TreeToTS/functions/new/mocks'; +import { ModelTypes, ResolverInputTypes } from '@/TreeToTS/functions/new/mocks'; -export const resolverFor = ( +export const resolverFor = ( type: T, field: Z, fn: ( - args: Required[Z] extends [infer Input, any] ? Input : any, + args: Required[Z] extends [infer Input, any] ? Input : any, source: any, ) => Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, ) => fn as (args?: any, source?: any) => any; diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index ab17ff9f..9ba6b853 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -11,6 +11,7 @@ import { resolveTypes } from './templates/returnedTypes'; import { default as typescriptFunctions } from './functions/generated'; import { generateScalars } from '@/TreeToTS/templates/scalars'; import { resolveVariableTypes } from '@/TreeToTS/templates/variableTypes'; +import { resolveInputTypes } from '@/TreeToTS/templates/valueTypes/inputTypes'; export interface OperationName { name: string; @@ -58,6 +59,7 @@ export class TreeToTS { static resolveBasisTypes(tree: ParserTree): string { const rootTypes = resolveTypes(tree.nodes); const valueTypes = resolveValueTypes(tree.nodes); + const inputTypes = resolveInputTypes(tree.nodes); const modelTypes = resolveModelTypes(tree.nodes); const unionTypes = resolveUnions(tree.nodes); const interfaceTypes = resolveInterfaces(tree.nodes); @@ -71,6 +73,8 @@ export class TreeToTS { .concat('\n\n') .concat(valueTypes) .concat('\n\n') + .concat(inputTypes) + .concat('\n\n') .concat(modelTypes) .concat('\n\n') .concat(rootTypes) diff --git a/src/TreeToTS/templates/valueTypes/inputTypes/arg.ts b/src/TreeToTS/templates/valueTypes/inputTypes/arg.ts new file mode 100644 index 00000000..7cb60cbd --- /dev/null +++ b/src/TreeToTS/templates/valueTypes/inputTypes/arg.ts @@ -0,0 +1,61 @@ +import { plusDescription } from '@/TreeToTS/templates/shared/description'; +import { isTypeScriptPrimitive, toTypeScriptPrimitive } from '@/TreeToTS/templates/shared/primitive'; +import { truthyType } from '@/TreeToTS/templates/truthy'; +import { INPUTTYPES } from '@/TreeToTS/templates/valueTypes/models'; +import { ParserField, Options, getTypeName, FieldType } from 'graphql-js-tree'; + +export const resolveInputArg = (f: ParserField): string => { + const { + type: { fieldType }, + } = f; + const isRequiredName = (name: string): string => { + if (fieldType.type === Options.required) { + return name; + } + return `${name}?`; + }; + const resolveArgsName = (name: string): string => { + return isRequiredName(name) + ': '; + }; + const typeName = getTypeName(f.type.fieldType); + const tsp = toTypeScriptPrimitive(typeName); + return `${plusDescription(f.description, '\t')}\t${resolveArgsName(f.name)}${resolveValueFieldType( + isTypeScriptPrimitive(typeName) ? tsp : createInputType(typeName), + f.type.fieldType, + )}`; +}; + +export const createInputType = (t: string): string => `${INPUTTYPES}["${t}"]`; + +export const resolveValueFieldType = ( + name: string, + fType: FieldType, + fn: (str: string) => string = (x) => x, + isRequired = false, +): string => { + if (fType.type === Options.name) { + return fn(isRequired ? name : `${name} | undefined | null`); + } + if (fType.type === Options.array) { + return resolveValueFieldType( + name, + fType.nest, + isRequired ? (x) => `Array<${fn(x)}>` : (x) => `Array<${fn(x)}> | undefined | null`, + false, + ); + } + if (fType.type === Options.required) { + return resolveValueFieldType(name, fType.nest, fn, true); + } + throw new Error('Invalid field type'); +}; +export const resolveInputField = (f: ParserField, enumsAndScalars: string[]): string => { + const { args } = f; + const typeName = getTypeName(f.type.fieldType); + const resolvedTypeName = + isTypeScriptPrimitive(typeName) || enumsAndScalars.includes(typeName) ? truthyType : createInputType(typeName); + if (args && args.length) { + return `${f.name}?: [{${args.map(resolveInputArg).join(',')}},${resolvedTypeName}]`; + } + return `${plusDescription(f.description, '\t')}\t${`${f.name}?` + ':'}${resolvedTypeName}`; +}; diff --git a/src/TreeToTS/templates/valueTypes/inputTypes/index.ts b/src/TreeToTS/templates/valueTypes/inputTypes/index.ts new file mode 100644 index 00000000..1345924f --- /dev/null +++ b/src/TreeToTS/templates/valueTypes/inputTypes/index.ts @@ -0,0 +1,53 @@ +import { truthyType } from '@/TreeToTS/templates/truthy'; +import { ParserField, TypeSystemDefinition, Helpers, TypeDefinition } from 'graphql-js-tree'; +import { createInputType, resolveInputArg, resolveInputField } from '@/TreeToTS/templates/valueTypes/inputTypes/arg'; +import { plusDescription } from '@/TreeToTS/templates/shared/description'; +import { INPUTTYPES } from '@/TreeToTS/templates/valueTypes/models'; + +const AliasType = (code: string): string => `AliasType<${code}>`; +const resolveValueTypeFromRoot = (i: ParserField, rootNodes: ParserField[], enumsAndScalars: string[]): string => { + if (!i.args || !i.args.length) { + return `["${i.name}"]:unknown`; + } + if (i.data.type === TypeDefinition.EnumTypeDefinition) { + return `["${i.name}"]:${i.name}`; + } + if (i.data.type === TypeDefinition.InputObjectTypeDefinition) { + return `["${i.name}"]: {\n${i.args.map((f) => resolveInputArg(f)).join(',\n')}\n}`; + } + if (i.data.type === TypeDefinition.InterfaceTypeDefinition) { + const typesImplementing = rootNodes.filter((rn) => rn.interfaces && rn.interfaces.includes(i.name)); + return `["${i.name}"]:${AliasType( + `{ +\t${i.args.map((f) => resolveInputField(f, enumsAndScalars)).join(',\n')};\n\t\t${typesImplementing + .map((f) => `['...on ${f.name}']?: Omit<${createInputType(f.name)},keyof ${createInputType(i.name)}>;`) + .join('\n\t\t')}\n\t\t__typename?: ${truthyType}\n}`, + )}`; + } + return `["${i.name}"]: ${AliasType( + `{\n${i.args.map((f) => resolveInputField(f, enumsAndScalars)).join(',\n')},\n\t\t__typename?: ${truthyType}\n}`, + )}`; +}; +const resolveInputType = (i: ParserField, rootNodes: ParserField[], enumsAndScalars: string[]): string => { + if (i.data.type === TypeSystemDefinition.DirectiveDefinition) { + return ''; + } + if (i.data.type === Helpers.Comment) { + return ''; + } + const output = resolveValueTypeFromRoot(i, rootNodes, enumsAndScalars); + return `${plusDescription(i.description)}${output}`; +}; +export const resolveInputTypes = (rootNodes: ParserField[]): string => { + const enumsAndScalars = rootNodes + .filter( + (n) => n.data?.type === TypeDefinition.EnumTypeDefinition || n.data?.type === TypeDefinition.ScalarTypeDefinition, + ) + .map((n) => n.name); + return `export type ${INPUTTYPES} = { + ${rootNodes + .map((f) => resolveInputType(f, rootNodes, enumsAndScalars)) + .filter((v) => v) + .join(';\n\t')} + }`; +}; diff --git a/src/TreeToTS/templates/valueTypes/models.ts b/src/TreeToTS/templates/valueTypes/models.ts index d32b9aeb..e54c475e 100644 --- a/src/TreeToTS/templates/valueTypes/models.ts +++ b/src/TreeToTS/templates/valueTypes/models.ts @@ -1 +1,2 @@ export const VALUETYPES = 'ValueTypes'; +export const INPUTTYPES = 'ResolverInputTypes'; From 3906d61c2494af3e66b404e3b5f42fc1c451a1a3 Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 1 Jul 2022 17:03:08 +0200 Subject: [PATCH 59/74] :bookmark: 5.1.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c6e62736..5b4c1899 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.1.5", + "version": "5.1.6", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", From 5438a4badff1e4577460843202f358c9e1043bd7 Mon Sep 17 00:00:00 2001 From: Gautier Date: Tue, 7 Jun 2022 17:07:08 +0200 Subject: [PATCH 60/74] =?UTF-8?q?=E2=9C=A8=20Added=20graphql-ws?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + src/CLI/CLIClass.ts | 2 + src/CLI/index.ts | 6 + src/CLI/libBuilder.ts | 29 +- src/TranslateGraphQL/index.ts | 32 +- .../functions/apiSubscription/graphql-ws.ts | 56 + .../legacy.ts} | 0 src/TreeToTS/functions/generated.ts | 175 +- src/TreeToTS/index.ts | 50 +- tsconfig.build.json | 2 +- tsconfig.json | 2 +- yarn.lock | 9881 ++++++++--------- 12 files changed, 5082 insertions(+), 5154 deletions(-) create mode 100644 src/TreeToTS/functions/apiSubscription/graphql-ws.ts rename src/TreeToTS/functions/{new/apiSubscription.ts => apiSubscription/legacy.ts} (100%) diff --git a/package.json b/package.json index 5b4c1899..c6bae1a5 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "eslint": "^7.19.0", "eslint-config-prettier": "^7.2.0", "eslint-plugin-prettier": "^3.3.1", + "graphql-ws": "^5.8.2", "husky": "^4.2.3", "jest": "^27.5.1", "json-schema": "^0.3.0", diff --git a/src/CLI/CLIClass.ts b/src/CLI/CLIClass.ts index 3d89b1b5..ec71c2e5 100644 --- a/src/CLI/CLIClass.ts +++ b/src/CLI/CLIClass.ts @@ -31,6 +31,7 @@ interface CliArgs extends Yargs { reactQuery?: boolean; stuccoSubscriptions?: boolean; typedDocumentNode?: boolean; + subscriptions?: string; } /** * Main class for controlling CLI @@ -80,6 +81,7 @@ export class CLI { env, host, esModule: !!args.esModule, + subscriptions: args.subscriptions == 'graphql-ws' ? 'graphql-ws' : 'legacy', }); Object.keys(typeScriptDefinition).forEach((k) => writeFileRecursive( diff --git a/src/CLI/index.ts b/src/CLI/index.ts index ebffab2c..6f29c013 100644 --- a/src/CLI/index.ts +++ b/src/CLI/index.ts @@ -58,5 +58,11 @@ zeus [path] [output_path] [options] 'Generate JSON Schema to create forms from inputs and type fields with args. Path where .json schema file should be put. ', string: true, }) + .option('subscriptions', { + alias: 's', + describe: 'The underlying implementation of realtime subscriptions.', + choices: ['legacy', 'graphql-ws'], + default: 'legacy', + }) .demandCommand(1).argv; CLI.execute(args); diff --git a/src/CLI/libBuilder.ts b/src/CLI/libBuilder.ts index 1602c25c..916b923d 100644 --- a/src/CLI/libBuilder.ts +++ b/src/CLI/libBuilder.ts @@ -2,8 +2,8 @@ import * as fs from 'fs'; import path = require('path'); +const removeImports = (s: string) => s.replace(/import\s(\n|\w|{|}|\s|,)*.*;(?! \/\/ keep)/gm, ''); const toTemplateString = (s: string) => '`' + s.replace(/\$\{/gm, '\\${').replace(/`/gm, '\\`') + '`'; -const toExport = (s: string) => `export default ${s};`; const bundleFunctions = () => { const baseDirFunctions = path.join(process.cwd(), 'src/TreeToTS/functions'); @@ -14,14 +14,27 @@ const bundleFunctions = () => { .filter((d) => !d.endsWith('spec.ts')) .map((d) => path.join(baseDir, d)) .map((d) => { - const content = fs.readFileSync(d); - return content - .toString('utf-8') - .replace(/import\s(\n|\w|{|}|\s|,)*.*;/gm, '') - .replace(/\\/gm, '\\\\'); + const content = fs.readFileSync(d).toString('utf-8'); + return removeImports(content).replace(/\\/gm, '\\\\').trim(); }); - const content = toTemplateString(allFunctions.join('\n\n')); - fs.writeFileSync(path.join(baseDirFunctions, 'generated.ts'), toExport(content)); + + const subscriptionDir = path.join(baseDirFunctions, 'apiSubscription'); + const subscriptionFunctions = fs.readdirSync(subscriptionDir).map((file) => { + // The key is the filename without its extension + const key = path.basename(file, '.ts'); + const content = fs.readFileSync(path.join(subscriptionDir, file)).toString('utf-8'); + const code = removeImports(content).replace(/\\/gm, '\\\\').trim(); + return [key, code]; + }); + + const content = ` + export default ${toTemplateString(allFunctions.join('\n\n'))}; + + export const subscriptionFunctions = {${subscriptionFunctions + .map(([key, value]) => JSON.stringify(key) + ': ' + toTemplateString(value)) + .join(',\n')}}`; + + fs.writeFileSync(path.join(baseDirFunctions, 'generated.ts'), content); }; bundleFunctions(); diff --git a/src/TranslateGraphQL/index.ts b/src/TranslateGraphQL/index.ts index fb16a155..19240ea2 100644 --- a/src/TranslateGraphQL/index.ts +++ b/src/TranslateGraphQL/index.ts @@ -2,34 +2,30 @@ import { Environment } from '@/Models'; import { Parser } from 'graphql-js-tree'; import { TreeToTS } from '@/TreeToTS'; +export interface TranslateOptions { + schema: string; + env?: Environment; + host?: string; + esModule?: boolean; + subscriptions?: 'legacy' | 'graphql-ws'; +} + export class TranslateGraphQL { - static typescript = ({ - schema, - env = 'browser', - host, - }: { - schema: string; - env?: Environment; - host?: string; - esModule?: boolean; - }) => { + static typescript = ({ schema, env = 'browser', host, subscriptions = 'legacy' }: TranslateOptions) => { const tree = Parser.parseAddExtensions(schema); - const ts = TreeToTS.resolveTree({ tree, env, host }); + const ts = TreeToTS.resolveTree({ tree, env, host, subscriptions }); return ts; }; + static typescriptSplit = ({ schema, env = 'browser', host, esModule, - }: { - schema: string; - env?: Environment; - host?: string; - esModule?: boolean; - }) => { + subscriptions = 'legacy', + }: TranslateOptions) => { const tree = Parser.parseAddExtensions(schema); - const ts = TreeToTS.resolveTreeSplit({ tree, env, host, esModule }); + const ts = TreeToTS.resolveTreeSplit({ tree, env, host, esModule, subscriptions }); return { const: TreeToTS.resolveBasisHeader().concat(ts.const), index: TreeToTS.resolveBasisHeader().concat(ts.indexImports).concat('\n').concat(ts.index), diff --git a/src/TreeToTS/functions/apiSubscription/graphql-ws.ts b/src/TreeToTS/functions/apiSubscription/graphql-ws.ts new file mode 100644 index 00000000..aa9f9434 --- /dev/null +++ b/src/TreeToTS/functions/apiSubscription/graphql-ws.ts @@ -0,0 +1,56 @@ +import { chainOptions } from '@/TreeToTS/functions/new/models'; +import { createClient, type Sink } from 'graphql-ws'; // keep + +export const apiSubscription = (options: chainOptions) => { + const client = createClient({ + url: String(options[0]), + connectionParams: Object.fromEntries(new Headers(options[1]?.headers).entries()), + }); + + const ws = new Proxy( + { + close: () => client.dispose(), + } as WebSocket, + { + get(target, key) { + if (key === 'close') return target.close; + throw new Error(`Unimplemented property '${String(key)}', only 'close()' is available.`); + }, + }, + ); + + return (query: string) => { + let onMessage: ((event: any) => void) | undefined; + let onError: Sink['error'] | undefined; + + client.subscribe( + { query }, + { + next({ data }) { + onMessage && onMessage(data); + }, + error(error) { + onError && onError(error); + }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + complete() {}, + }, + ); + + return { + ws, + on(listener: typeof onMessage) { + onMessage = listener; + }, + error(listener: typeof onError) { + onError = listener; + }, + open() { + throw new Error('Unimplemented'); + }, + off() { + throw new Error('Unimplemented'); + }, + }; + }; +}; diff --git a/src/TreeToTS/functions/new/apiSubscription.ts b/src/TreeToTS/functions/apiSubscription/legacy.ts similarity index 100% rename from src/TreeToTS/functions/new/apiSubscription.ts rename to src/TreeToTS/functions/apiSubscription/legacy.ts diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index d46d690e..f4964fe4 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -1,6 +1,4 @@ -export default ` - -const handleFetchResponse = (response: Response): Promise => { +export default `const handleFetchResponse = (response: Response): Promise => { if (!response.ok) { return new Promise((_, reject) => { response @@ -49,48 +47,6 @@ export const apiFetch = }); }; - - - -export const apiSubscription = (options: chainOptions) => (query: string) => { - try { - const queryString = options[0] + '?query=' + encodeURIComponent(query); - const wsString = queryString.replace('http', 'ws'); - const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; - const webSocketOptions = options[1]?.websocket || [host]; - const ws = new WebSocket(...webSocketOptions); - return { - ws, - on: (e: (args: any) => void) => { - ws.onmessage = (event: any) => { - if (event.data) { - const parsed = JSON.parse(event.data); - const data = parsed.data; - return e(data); - } - }; - }, - off: (e: (args: any) => void) => { - ws.onclose = e; - }, - error: (e: (args: any) => void) => { - ws.onerror = e; - }, - open: (e: () => void) => { - ws.onopen = e; - }, - }; - } catch { - throw new Error('No websockets implemented'); - } -}; - - - - - - - export const InternalsBuildQuery = ({ ops, props, @@ -161,14 +117,6 @@ export const InternalsBuildQuery = ({ return ibb; }; - - - - - - - - export const Thunder = (fn: FetchFunction) => >( @@ -267,12 +215,6 @@ export const Gql = Chain(HOST, { export const ZeusScalars = ZeusSelect(); - - - - - - export const decodeScalarsInResponse = ({ response, scalars, @@ -333,10 +275,6 @@ export const traverseResponse = ({ return ibb; }; - - - - export type AllTypesPropsType = { [x: string]: | undefined @@ -421,10 +359,6 @@ export type ThunderGraphQLOptions = { scalars?: SCLR | ScalarCoders; }; - - - - const ExtractScalar = (mappedParts: string[], returns: ReturnTypesType): \`scalar.\${string}\` | undefined => { if (mappedParts.length === 0) { return; @@ -498,14 +432,8 @@ export const PrepareScalarPaths = ({ ops, returns }: { returns: ReturnTypesType; return ibb; }; - export const purifyGraphQLKey = (k: string) => k.replace(/\\([^)]*\\)/g, '').replace(/^[^:]*\\:/g, ''); - - - - - const mapPart = (p: string) => { const [isArg, isField] = p.split('<>'); if (isField) { @@ -662,9 +590,6 @@ export const InternalArgsBuilt = ({ return arb; }; - - - export const resolverFor = ( type: T, field: Z, @@ -674,10 +599,6 @@ export const resolverFor = Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, ) => fn as (args?: any, source?: any) => any; - - - - export type UnwrapPromise = T extends Promise ? R : T; export type ZeusState Promise> = NonNullable>>; export type ZeusHook< @@ -823,9 +744,6 @@ type OptionalKeys = { export type WithOptionalNullables = OptionalKeys> & WithNonNullableKeys; - - - export type Variable = { ' __zeus_name': Name; ' __zeus_type': T; @@ -847,5 +765,94 @@ export const GRAPHQL_TYPE_SEPARATOR = \`__$GRAPHQL__\`; export const $ = (name: Name, graphqlType: Type) => { return (START_VAR_NAME + name + GRAPHQL_TYPE_SEPARATOR + graphqlType) as unknown as Variable; +};`; + +export const subscriptionFunctions = { + 'graphql-ws': `import { createClient, type Sink } from 'graphql-ws'; // keep + +export const apiSubscription = (options: chainOptions) => { + const client = createClient({ + url: String(options[0]), + connectionParams: Object.fromEntries(new Headers(options[1]?.headers).entries()), + }); + + const ws = new Proxy( + { + close: () => client.dispose(), + } as WebSocket, + { + get(target, key) { + if (key === 'close') return target.close; + throw new Error(\`Unimplemented property '\${String(key)}', only 'close()' is available.\`); + }, + }, + ); + + return (query: string) => { + let onMessage: ((event: any) => void) | undefined; + let onError: Sink['error'] | undefined; + + client.subscribe( + { query }, + { + next({ data }) { + onMessage && onMessage(data); + }, + error(error) { + onError && onError(error); + }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + complete() {}, + }, + ); + + return { + ws, + on(listener: typeof onMessage) { + onMessage = listener; + }, + error(listener: typeof onError) { + onError = listener; + }, + open() { + throw new Error('Unimplemented'); + }, + off() { + throw new Error('Unimplemented'); + }, + }; + }; +};`, + legacy: `export const apiSubscription = (options: chainOptions) => (query: string) => { + try { + const queryString = options[0] + '?query=' + encodeURIComponent(query); + const wsString = queryString.replace('http', 'ws'); + const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; + const webSocketOptions = options[1]?.websocket || [host]; + const ws = new WebSocket(...webSocketOptions); + return { + ws, + on: (e: (args: any) => void) => { + ws.onmessage = (event: any) => { + if (event.data) { + const parsed = JSON.parse(event.data); + const data = parsed.data; + return e(data); + } + }; + }, + off: (e: (args: any) => void) => { + ws.onclose = e; + }, + error: (e: (args: any) => void) => { + ws.onerror = e; + }, + open: (e: () => void) => { + ws.onopen = e; + }, + }; + } catch { + throw new Error('No websockets implemented'); + } +};`, }; -`; diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index 9ba6b853..cca9a46e 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -2,16 +2,16 @@ import { resolveModelTypes } from '@/TreeToTS/templates/modelTypes'; import { resolveOperations } from '@/TreeToTS/templates/operations'; import { resolveInterfaces } from '@/TreeToTS/templates/returnedTypes/interfaces'; import { resolveUnions } from '@/TreeToTS/templates/returnedTypes/unions'; +import { generateScalars } from '@/TreeToTS/templates/scalars'; import { resolveValueTypes } from '@/TreeToTS/templates/valueTypes'; +import { resolveInputTypes } from '@/TreeToTS/templates/valueTypes/inputTypes'; +import { resolveVariableTypes } from '@/TreeToTS/templates/variableTypes'; import { ParserTree, TypeDefinition } from 'graphql-js-tree'; import { Environment } from '../Models'; +import { default as typescriptFunctions, subscriptionFunctions } from './functions/generated'; import { resolvePropTypeFromRoot } from './templates/returnedPropTypes'; import { resolveReturnFromRoot } from './templates/returnedReturns'; import { resolveTypes } from './templates/returnedTypes'; -import { default as typescriptFunctions } from './functions/generated'; -import { generateScalars } from '@/TreeToTS/templates/scalars'; -import { resolveVariableTypes } from '@/TreeToTS/templates/variableTypes'; -import { resolveInputTypes } from '@/TreeToTS/templates/valueTypes/inputTypes'; export interface OperationName { name: string; @@ -29,6 +29,15 @@ export interface OperationDetails { operations: string[]; } +export interface ResolveOptions { + tree: ParserTree; + env?: Environment; + host?: string; + headers?: Record; + esModule?: boolean; + subscriptions: 'legacy' | 'graphql-ws'; +} + const disableLintersComments = ['eslint-disable']; /** * Class Responsible for generating typescript and javascript code @@ -37,6 +46,7 @@ export class TreeToTS { static resolveBasisHeader(): string { return `${disableLintersComments.map((rule) => `/* ${rule} */\n`).join('')}\n`; } + static resolveBasisCode(tree: ParserTree): string { const propTypes = `export const AllTypesProps: Record = {\n${tree.nodes .map(resolvePropTypeFromRoot) @@ -56,6 +66,7 @@ export class TreeToTS { const opsString = resolveOperations(tree); return propTypes.concat('\n\n').concat(returnTypes).concat('\n\n').concat(opsString); } + static resolveBasisTypes(tree: ParserTree): string { const rootTypes = resolveTypes(tree.nodes); const valueTypes = resolveValueTypes(tree.nodes); @@ -81,22 +92,11 @@ export class TreeToTS { .concat('\n\n') .concat(variableTypes); } + /** * Generate typescript file */ - static resolveTreeSplit({ - tree, - env = 'browser', - host, - esModule, - headers, - }: { - tree: ParserTree; - env?: Environment; - host?: string; - headers?: Record; - esModule?: boolean; - }) { + static resolveTreeSplit({ tree, env = 'browser', host, esModule, headers, subscriptions }: ResolveOptions) { return { indexImports: `import { AllTypesProps, ReturnTypes, Ops } from './const${esModule ? '.js' : ''}';`.concat( env === 'node' @@ -110,24 +110,16 @@ import WebSocket from 'ws';` .concat(host ? `export const HOST = "${host}"` : '\n\nexport const HOST="Specify host"') .concat('\n') .concat(headers ? `export const HEADERS = ${JSON.stringify(headers)}` : '\n\nexport const HEADERS = {}') + .concat(subscriptionFunctions[subscriptions]) .concat('\n') .concat(typescriptFunctions) .concat('\n') .concat(TreeToTS.resolveBasisTypes(tree)), }; } - static resolveTree({ - tree, - env = 'browser', - host, - headers, - }: { - tree: ParserTree; - env?: Environment; - host?: string; - headers?: Record; - }) { - const t = TreeToTS.resolveTreeSplit({ tree, env, host, headers }); + + static resolveTree(options: ResolveOptions) { + const t = TreeToTS.resolveTreeSplit(options); return TreeToTS.resolveBasisHeader().concat(t.const).concat('\n').concat(t.index); } } diff --git a/tsconfig.build.json b/tsconfig.build.json index ae051d0c..e4c8d0b2 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -12,7 +12,7 @@ "strict": true, "outDir": "./lib", "sourceMap": true, - "lib": ["es6", "es7", "esnext", "dom"], + "lib": ["ESNext", "DOM", "DOM.Iterable"], "rootDir": "./src", "baseUrl": "./src/", "paths": { diff --git a/tsconfig.json b/tsconfig.json index 4af57074..ba9c4f9f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,7 @@ "strict": true, "noEmit": true, "outDir": "./lib", - "lib": ["es6", "es7", "esnext", "dom"], + "lib": ["ESNext", "DOM", "DOM.Iterable"], "rootDir": "./src", "baseUrl": "./src/", "typeRoots": ["./node_modules/@types", "./types"], diff --git a/yarn.lock b/yarn.lock index c2cb5130..4847653e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,29 +2,29 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": - "integrity" "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==" - "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" - "version" "7.14.5" - dependencies: - "@babel/highlight" "^7.14.5" - "@babel/code-frame@7.12.11": - "integrity" "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==" - "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" - "version" "7.12.11" + version "7.12.11" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: "@babel/highlight" "^7.10.4" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0": - "integrity" "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" - "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz" - "version" "7.15.0" + version "7.15.0" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.2.2", "@babel/core@^7.4.0-0", "@babel/core@^7.7.2", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": - "integrity" "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==" - "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz" - "version" "7.15.5" +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.2.2", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.15.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz" + integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg== dependencies: "@babel/code-frame" "^7.14.5" "@babel/generator" "^7.15.4" @@ -35,51 +35,51 @@ "@babel/template" "^7.15.4" "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" - "convert-source-map" "^1.7.0" - "debug" "^4.1.0" - "gensync" "^1.0.0-beta.2" - "json5" "^2.1.2" - "semver" "^6.3.0" - "source-map" "^0.5.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" "@babel/generator@^7.15.4", "@babel/generator@^7.7.2": - "integrity" "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==" - "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz" + integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== dependencies: "@babel/types" "^7.15.4" - "jsesc" "^2.5.1" - "source-map" "^0.5.0" + jsesc "^2.5.1" + source-map "^0.5.0" "@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4": - "integrity" "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==" - "resolved" "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz" + integrity sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA== dependencies: "@babel/types" "^7.15.4" "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": - "integrity" "sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==" - "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz" + integrity sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q== dependencies: "@babel/helper-explode-assignable-expression" "^7.15.4" "@babel/types" "^7.15.4" "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.15.4": - "integrity" "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==" - "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz" + integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ== dependencies: "@babel/compat-data" "^7.15.0" "@babel/helper-validator-option" "^7.14.5" - "browserslist" "^4.16.6" - "semver" "^6.3.0" + browserslist "^4.16.6" + semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4": - "integrity" "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==" - "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz" + integrity sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw== dependencies: "@babel/helper-annotate-as-pure" "^7.15.4" "@babel/helper-function-name" "^7.15.4" @@ -89,75 +89,75 @@ "@babel/helper-split-export-declaration" "^7.15.4" "@babel/helper-create-regexp-features-plugin@^7.14.5": - "integrity" "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==" - "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" - "regexpu-core" "^4.7.1" + regexpu-core "^4.7.1" "@babel/helper-define-polyfill-provider@^0.2.2": - "integrity" "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==" - "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz" - "version" "0.2.3" + version "0.2.3" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" "@babel/helper-plugin-utils" "^7.13.0" "@babel/traverse" "^7.13.0" - "debug" "^4.1.1" - "lodash.debounce" "^4.0.8" - "resolve" "^1.14.2" - "semver" "^6.1.2" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" "@babel/helper-explode-assignable-expression@^7.15.4": - "integrity" "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==" - "resolved" "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz" + integrity sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g== dependencies: "@babel/types" "^7.15.4" "@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4": - "integrity" "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==" - "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz" + integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw== dependencies: "@babel/helper-get-function-arity" "^7.15.4" "@babel/template" "^7.15.4" "@babel/types" "^7.15.4" "@babel/helper-get-function-arity@^7.15.4": - "integrity" "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==" - "resolved" "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz" + integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA== dependencies: "@babel/types" "^7.15.4" "@babel/helper-hoist-variables@^7.15.4": - "integrity" "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==" - "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz" + integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA== dependencies: "@babel/types" "^7.15.4" "@babel/helper-member-expression-to-functions@^7.15.4": - "integrity" "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==" - "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz" + integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA== dependencies: "@babel/types" "^7.15.4" "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4": - "integrity" "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==" - "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz" + integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA== dependencies: "@babel/types" "^7.15.4" "@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4": - "integrity" "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==" - "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz" - "version" "7.15.7" + version "7.15.7" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz" + integrity sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw== dependencies: "@babel/helper-module-imports" "^7.15.4" "@babel/helper-replace-supers" "^7.15.4" @@ -169,30 +169,30 @@ "@babel/types" "^7.15.6" "@babel/helper-optimise-call-expression@^7.15.4": - "integrity" "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==" - "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz" + integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw== dependencies: "@babel/types" "^7.15.4" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - "integrity" "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== "@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.15.4": - "integrity" "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==" - "resolved" "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz" + integrity sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ== dependencies: "@babel/helper-annotate-as-pure" "^7.15.4" "@babel/helper-wrap-function" "^7.15.4" "@babel/types" "^7.15.4" "@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4": - "integrity" "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==" - "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz" + integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw== dependencies: "@babel/helper-member-expression-to-functions" "^7.15.4" "@babel/helper-optimise-call-expression" "^7.15.4" @@ -200,40 +200,40 @@ "@babel/types" "^7.15.4" "@babel/helper-simple-access@^7.15.4": - "integrity" "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==" - "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz" + integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg== dependencies: "@babel/types" "^7.15.4" "@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4": - "integrity" "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==" - "resolved" "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz" + integrity sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A== dependencies: "@babel/types" "^7.15.4" "@babel/helper-split-export-declaration@^7.15.4": - "integrity" "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==" - "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz" + integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw== dependencies: "@babel/types" "^7.15.4" "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": - "integrity" "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" - "version" "7.15.7" + version "7.15.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== "@babel/helper-validator-option@^7.14.5": - "integrity" "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== "@babel/helper-wrap-function@^7.15.4": - "integrity" "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==" - "resolved" "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz" + integrity sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw== dependencies: "@babel/helper-function-name" "^7.15.4" "@babel/template" "^7.15.4" @@ -241,127 +241,127 @@ "@babel/types" "^7.15.4" "@babel/helpers@^7.15.4": - "integrity" "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==" - "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz" + integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ== dependencies: "@babel/template" "^7.15.4" "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": - "integrity" "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==" - "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== dependencies: "@babel/helper-validator-identifier" "^7.14.5" - "chalk" "^2.0.0" - "js-tokens" "^4.0.0" + chalk "^2.0.0" + js-tokens "^4.0.0" "@babel/node@^7.10.5": - "integrity" "sha512-UZue+j8p5aKTaVjvy5psYmqLHqmz+9cIboAFoa97S1xeZyUr0gT6KzXB8ZkfBIsP/u79biOdjGHVXBXnW3rVfw==" - "resolved" "https://registry.npmjs.org/@babel/node/-/node-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/node/-/node-7.15.4.tgz" + integrity sha512-UZue+j8p5aKTaVjvy5psYmqLHqmz+9cIboAFoa97S1xeZyUr0gT6KzXB8ZkfBIsP/u79biOdjGHVXBXnW3rVfw== dependencies: "@babel/register" "^7.15.3" - "commander" "^4.0.1" - "core-js" "^3.16.0" - "node-environment-flags" "^1.0.5" - "regenerator-runtime" "^0.13.4" - "v8flags" "^3.1.1" + commander "^4.0.1" + core-js "^3.16.0" + node-environment-flags "^1.0.5" + regenerator-runtime "^0.13.4" + v8flags "^3.1.1" "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5": - "integrity" "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==" - "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz" - "version" "7.15.7" + version "7.15.7" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz" + integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4": - "integrity" "sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==" - "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz" + integrity sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4" "@babel/plugin-proposal-optional-chaining" "^7.14.5" "@babel/plugin-proposal-async-generator-functions@^7.15.4": - "integrity" "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz" + integrity sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-remap-async-to-generator" "^7.15.4" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.14.5": - "integrity" "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== dependencies: "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-proposal-class-static-block@^7.15.4": - "integrity" "sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz" + integrity sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA== dependencies: "@babel/helper-create-class-features-plugin" "^7.15.4" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.14.5": - "integrity" "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-proposal-export-namespace-from@^7.14.5": - "integrity" "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-proposal-json-strings@^7.14.5": - "integrity" "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-proposal-logical-assignment-operators@^7.14.5": - "integrity" "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": - "integrity" "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-numeric-separator@^7.14.5": - "integrity" "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.15.6": - "integrity" "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz" - "version" "7.15.6" + version "7.15.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz" + integrity sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg== dependencies: "@babel/compat-data" "^7.15.0" "@babel/helper-compilation-targets" "^7.15.4" @@ -370,34 +370,34 @@ "@babel/plugin-transform-parameters" "^7.15.4" "@babel/plugin-proposal-optional-catch-binding@^7.14.5": - "integrity" "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-proposal-optional-chaining@^7.14.5": - "integrity" "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.14.5": - "integrity" "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== dependencies: "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-proposal-private-property-in-object@^7.15.4": - "integrity" "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz" + integrity sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA== dependencies: "@babel/helper-annotate-as-pure" "^7.15.4" "@babel/helper-create-class-features-plugin" "^7.15.4" @@ -405,166 +405,166 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - "integrity" "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==" - "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-async-generators@^7.8.4": - "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - "version" "7.8.4" + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-bigint@^7.8.3": - "integrity" "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - "version" "7.12.13" + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": - "integrity" "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": - "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": - "integrity" "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-meta@^7.8.3": - "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - "version" "7.10.4" + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": - "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - "version" "7.10.4" + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - "version" "7.10.4" + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": - "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": - "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": - "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - "version" "7.8.3" + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": - "integrity" "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - "integrity" "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz" + integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-arrow-functions@^7.14.5": - "integrity" "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-async-to-generator@^7.14.5": - "integrity" "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== dependencies: "@babel/helper-module-imports" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-remap-async-to-generator" "^7.14.5" "@babel/plugin-transform-block-scoped-functions@^7.14.5": - "integrity" "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-block-scoping@^7.15.3": - "integrity" "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz" - "version" "7.15.3" + version "7.15.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz" + integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-classes@^7.15.4": - "integrity" "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz" + integrity sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg== dependencies: "@babel/helper-annotate-as-pure" "^7.15.4" "@babel/helper-function-name" "^7.15.4" @@ -572,217 +572,217 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.15.4" "@babel/helper-split-export-declaration" "^7.15.4" - "globals" "^11.1.0" + globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.14.5": - "integrity" "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-destructuring@^7.14.7": - "integrity" "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz" - "version" "7.14.7" + version "7.14.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz" + integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - "integrity" "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-duplicate-keys@^7.14.5": - "integrity" "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-exponentiation-operator@^7.14.5": - "integrity" "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-for-of@^7.15.4": - "integrity" "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz" + integrity sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-function-name@^7.14.5": - "integrity" "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== dependencies: "@babel/helper-function-name" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-literals@^7.14.5": - "integrity" "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-member-expression-literals@^7.14.5": - "integrity" "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-modules-amd@^7.14.5": - "integrity" "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== dependencies: "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" - "babel-plugin-dynamic-import-node" "^2.3.3" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.15.4": - "integrity" "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz" + integrity sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA== dependencies: "@babel/helper-module-transforms" "^7.15.4" "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-simple-access" "^7.15.4" - "babel-plugin-dynamic-import-node" "^2.3.3" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.15.4": - "integrity" "sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz" + integrity sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw== dependencies: "@babel/helper-hoist-variables" "^7.15.4" "@babel/helper-module-transforms" "^7.15.4" "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-validator-identifier" "^7.14.9" - "babel-plugin-dynamic-import-node" "^2.3.3" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.14.5": - "integrity" "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== dependencies: "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": - "integrity" "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz" - "version" "7.14.9" + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz" + integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/plugin-transform-new-target@^7.14.5": - "integrity" "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-object-super@^7.14.5": - "integrity" "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" "@babel/plugin-transform-parameters@^7.15.4": - "integrity" "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz" + integrity sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-property-literals@^7.14.5": - "integrity" "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-regenerator@^7.14.5": - "integrity" "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== dependencies: - "regenerator-transform" "^0.14.2" + regenerator-transform "^0.14.2" "@babel/plugin-transform-reserved-words@^7.14.5": - "integrity" "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-shorthand-properties@^7.14.5": - "integrity" "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-spread@^7.14.6": - "integrity" "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz" - "version" "7.14.6" + version "7.14.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-transform-sticky-regex@^7.14.5": - "integrity" "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-template-literals@^7.14.5": - "integrity" "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-typeof-symbol@^7.14.5": - "integrity" "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-unicode-escapes@^7.14.5": - "integrity" "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-unicode-regex@^7.14.5": - "integrity" "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/preset-env@^7.11.5": - "integrity" "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==" - "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz" - "version" "7.15.6" + version "7.15.6" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz" + integrity sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw== dependencies: "@babel/compat-data" "^7.15.0" "@babel/helper-compilation-targets" "^7.15.4" @@ -852,54 +852,54 @@ "@babel/plugin-transform-unicode-regex" "^7.14.5" "@babel/preset-modules" "^0.1.4" "@babel/types" "^7.15.6" - "babel-plugin-polyfill-corejs2" "^0.2.2" - "babel-plugin-polyfill-corejs3" "^0.2.2" - "babel-plugin-polyfill-regenerator" "^0.2.2" - "core-js-compat" "^3.16.0" - "semver" "^6.3.0" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.16.0" + semver "^6.3.0" "@babel/preset-modules@^0.1.4": - "integrity" "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==" - "resolved" "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz" - "version" "0.1.4" + version "0.1.4" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" - "esutils" "^2.0.2" + esutils "^2.0.2" "@babel/register@^7.15.3": - "integrity" "sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw==" - "resolved" "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz" - "version" "7.15.3" + version "7.15.3" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz" + integrity sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw== dependencies: - "clone-deep" "^4.0.1" - "find-cache-dir" "^2.0.0" - "make-dir" "^2.1.0" - "pirates" "^4.0.0" - "source-map-support" "^0.5.16" + clone-deep "^4.0.1" + find-cache-dir "^2.0.0" + make-dir "^2.1.0" + pirates "^4.0.0" + source-map-support "^0.5.16" "@babel/runtime@^7.8.4": - "integrity" "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==" - "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz" + integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== dependencies: - "regenerator-runtime" "^0.13.4" + regenerator-runtime "^0.13.4" "@babel/template@^7.15.4", "@babel/template@^7.3.3": - "integrity" "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==" - "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz" + integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg== dependencies: "@babel/code-frame" "^7.14.5" "@babel/parser" "^7.15.4" "@babel/types" "^7.15.4" "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.2": - "integrity" "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==" - "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz" - "version" "7.15.4" + version "7.15.4" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz" + integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== dependencies: "@babel/code-frame" "^7.14.5" "@babel/generator" "^7.15.4" @@ -908,220 +908,220 @@ "@babel/helper-split-export-declaration" "^7.15.4" "@babel/parser" "^7.15.4" "@babel/types" "^7.15.4" - "debug" "^4.1.0" - "globals" "^11.1.0" + debug "^4.1.0" + globals "^11.1.0" "@babel/types@^7.0.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - "integrity" "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==" - "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz" - "version" "7.15.6" + version "7.15.6" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz" + integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== dependencies: "@babel/helper-validator-identifier" "^7.14.9" - "to-fast-properties" "^2.0.0" + to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": - "integrity" "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - "resolved" "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" - "version" "0.2.3" + version "0.2.3" + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@commitlint/cli@^8.3.5": - "integrity" "sha512-6+L0vbw55UEdht71pgWOE55SRgb+8OHcEwGDB234VlIBFGK9P2QOBU7MHiYJ5cjdjCQ0rReNrGjOHmJ99jwf0w==" - "resolved" "https://registry.npmjs.org/@commitlint/cli/-/cli-8.3.5.tgz" - "version" "8.3.5" + version "8.3.5" + resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-8.3.5.tgz" + integrity sha512-6+L0vbw55UEdht71pgWOE55SRgb+8OHcEwGDB234VlIBFGK9P2QOBU7MHiYJ5cjdjCQ0rReNrGjOHmJ99jwf0w== dependencies: "@commitlint/format" "^8.3.4" "@commitlint/lint" "^8.3.5" "@commitlint/load" "^8.3.5" "@commitlint/read" "^8.3.4" - "babel-polyfill" "6.26.0" - "chalk" "2.4.2" - "get-stdin" "7.0.0" - "lodash" "4.17.15" - "meow" "5.0.0" - "resolve-from" "5.0.0" - "resolve-global" "1.0.0" + babel-polyfill "6.26.0" + chalk "2.4.2" + get-stdin "7.0.0" + lodash "4.17.15" + meow "5.0.0" + resolve-from "5.0.0" + resolve-global "1.0.0" "@commitlint/config-conventional@^8.3.4": - "integrity" "sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g==" - "resolved" "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz" + integrity sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g== dependencies: - "conventional-changelog-conventionalcommits" "4.2.1" + conventional-changelog-conventionalcommits "4.2.1" "@commitlint/ensure@^8.3.4": - "integrity" "sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw==" - "resolved" "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.3.4.tgz" + integrity sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw== dependencies: - "lodash" "4.17.15" + lodash "4.17.15" "@commitlint/execute-rule@^8.3.4": - "integrity" "sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ==" - "resolved" "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz" + integrity sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ== "@commitlint/format@^8.3.4": - "integrity" "sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw==" - "resolved" "https://registry.npmjs.org/@commitlint/format/-/format-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/format/-/format-8.3.4.tgz" + integrity sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw== dependencies: - "chalk" "^2.0.1" + chalk "^2.0.1" "@commitlint/is-ignored@^8.3.5": - "integrity" "sha512-Zo+8a6gJLFDTqyNRx53wQi/XTiz8mncvmWf/4oRG+6WRcBfjSSHY7KPVj5Y6UaLy2EgZ0WQ2Tt6RdTDeQiQplA==" - "resolved" "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.3.5.tgz" - "version" "8.3.5" + version "8.3.5" + resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.3.5.tgz" + integrity sha512-Zo+8a6gJLFDTqyNRx53wQi/XTiz8mncvmWf/4oRG+6WRcBfjSSHY7KPVj5Y6UaLy2EgZ0WQ2Tt6RdTDeQiQplA== dependencies: - "semver" "6.3.0" + semver "6.3.0" "@commitlint/lint@^8.3.5": - "integrity" "sha512-02AkI0a6PU6rzqUvuDkSi6rDQ2hUgkq9GpmdJqfai5bDbxx2939mK4ZO+7apbIh4H6Pae7EpYi7ffxuJgm+3hQ==" - "resolved" "https://registry.npmjs.org/@commitlint/lint/-/lint-8.3.5.tgz" - "version" "8.3.5" + version "8.3.5" + resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-8.3.5.tgz" + integrity sha512-02AkI0a6PU6rzqUvuDkSi6rDQ2hUgkq9GpmdJqfai5bDbxx2939mK4ZO+7apbIh4H6Pae7EpYi7ffxuJgm+3hQ== dependencies: "@commitlint/is-ignored" "^8.3.5" "@commitlint/parse" "^8.3.4" "@commitlint/rules" "^8.3.4" - "babel-runtime" "^6.23.0" - "lodash" "4.17.15" + babel-runtime "^6.23.0" + lodash "4.17.15" -"@commitlint/load@^8.3.5", "@commitlint/load@>6.1.1": - "integrity" "sha512-poF7R1CtQvIXRmVIe63FjSQmN9KDqjRtU5A6hxqXBga87yB2VUJzic85TV6PcQc+wStk52cjrMI+g0zFx+Zxrw==" - "resolved" "https://registry.npmjs.org/@commitlint/load/-/load-8.3.5.tgz" - "version" "8.3.5" +"@commitlint/load@>6.1.1", "@commitlint/load@^8.3.5": + version "8.3.5" + resolved "https://registry.npmjs.org/@commitlint/load/-/load-8.3.5.tgz" + integrity sha512-poF7R1CtQvIXRmVIe63FjSQmN9KDqjRtU5A6hxqXBga87yB2VUJzic85TV6PcQc+wStk52cjrMI+g0zFx+Zxrw== dependencies: "@commitlint/execute-rule" "^8.3.4" "@commitlint/resolve-extends" "^8.3.5" - "babel-runtime" "^6.23.0" - "chalk" "2.4.2" - "cosmiconfig" "^5.2.0" - "lodash" "4.17.15" - "resolve-from" "^5.0.0" + babel-runtime "^6.23.0" + chalk "2.4.2" + cosmiconfig "^5.2.0" + lodash "4.17.15" + resolve-from "^5.0.0" "@commitlint/message@^8.3.4": - "integrity" "sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA==" - "resolved" "https://registry.npmjs.org/@commitlint/message/-/message-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/message/-/message-8.3.4.tgz" + integrity sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA== "@commitlint/parse@^8.3.4": - "integrity" "sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw==" - "resolved" "https://registry.npmjs.org/@commitlint/parse/-/parse-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-8.3.4.tgz" + integrity sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw== dependencies: - "conventional-changelog-angular" "^1.3.3" - "conventional-commits-parser" "^3.0.0" - "lodash" "^4.17.11" + conventional-changelog-angular "^1.3.3" + conventional-commits-parser "^3.0.0" + lodash "^4.17.11" "@commitlint/read@^8.3.4": - "integrity" "sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw==" - "resolved" "https://registry.npmjs.org/@commitlint/read/-/read-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/read/-/read-8.3.4.tgz" + integrity sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw== dependencies: "@commitlint/top-level" "^8.3.4" "@marionebl/sander" "^0.6.0" - "babel-runtime" "^6.23.0" - "git-raw-commits" "^2.0.0" + babel-runtime "^6.23.0" + git-raw-commits "^2.0.0" "@commitlint/resolve-extends@^8.3.5": - "integrity" "sha512-nHhFAK29qiXNe6oH6uG5wqBnCR+BQnxlBW/q5fjtxIaQALgfoNLHwLS9exzbIRFqwJckpR6yMCfgMbmbAOtklQ==" - "resolved" "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.5.tgz" - "version" "8.3.5" + version "8.3.5" + resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.5.tgz" + integrity sha512-nHhFAK29qiXNe6oH6uG5wqBnCR+BQnxlBW/q5fjtxIaQALgfoNLHwLS9exzbIRFqwJckpR6yMCfgMbmbAOtklQ== dependencies: - "import-fresh" "^3.0.0" - "lodash" "4.17.15" - "resolve-from" "^5.0.0" - "resolve-global" "^1.0.0" + import-fresh "^3.0.0" + lodash "4.17.15" + resolve-from "^5.0.0" + resolve-global "^1.0.0" "@commitlint/rules@^8.3.4": - "integrity" "sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg==" - "resolved" "https://registry.npmjs.org/@commitlint/rules/-/rules-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-8.3.4.tgz" + integrity sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg== dependencies: "@commitlint/ensure" "^8.3.4" "@commitlint/message" "^8.3.4" "@commitlint/to-lines" "^8.3.4" - "babel-runtime" "^6.23.0" + babel-runtime "^6.23.0" "@commitlint/to-lines@^8.3.4": - "integrity" "sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA==" - "resolved" "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.3.4.tgz" + integrity sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA== "@commitlint/top-level@^8.3.4": - "integrity" "sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg==" - "resolved" "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.3.4.tgz" - "version" "8.3.4" + version "8.3.4" + resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.3.4.tgz" + integrity sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg== dependencies: - "find-up" "^4.0.0" + find-up "^4.0.0" "@cspotcode/source-map-support@^0.8.0": - "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==" - "resolved" "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" - "version" "0.8.1" + version "0.8.1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@eslint/eslintrc@^0.4.3": - "integrity" "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==" - "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" - "version" "0.4.3" - dependencies: - "ajv" "^6.12.4" - "debug" "^4.1.1" - "espree" "^7.3.0" - "globals" "^13.9.0" - "ignore" "^4.0.6" - "import-fresh" "^3.2.1" - "js-yaml" "^3.13.1" - "minimatch" "^3.0.4" - "strip-json-comments" "^3.1.1" + version "0.4.3" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" "@humanwhocodes/config-array@^0.5.0": - "integrity" "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==" - "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" - "version" "0.5.0" + version "0.5.0" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== dependencies: "@humanwhocodes/object-schema" "^1.2.0" - "debug" "^4.1.1" - "minimatch" "^3.0.4" + debug "^4.1.1" + minimatch "^3.0.4" "@humanwhocodes/object-schema@^1.2.0": - "integrity" "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==" - "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz" - "version" "1.2.0" + version "1.2.0" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== "@istanbuljs/load-nyc-config@^1.0.0": - "integrity" "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==" - "resolved" "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - "version" "1.1.0" + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: - "camelcase" "^5.3.1" - "find-up" "^4.1.0" - "get-package-type" "^0.1.0" - "js-yaml" "^3.13.1" - "resolve-from" "^5.0.0" + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" "@istanbuljs/schema@^0.1.2": - "integrity" "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - "resolved" "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - "version" "0.1.3" + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== "@jest/console@^27.5.1": - "integrity" "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==" - "resolved" "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== dependencies: "@jest/types" "^27.5.1" "@types/node" "*" - "chalk" "^4.0.0" - "jest-message-util" "^27.5.1" - "jest-util" "^27.5.1" - "slash" "^3.0.0" + chalk "^4.0.0" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" "@jest/core@^27.5.1": - "integrity" "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==" - "resolved" "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== dependencies: "@jest/console" "^27.5.1" "@jest/reporters" "^27.5.1" @@ -1129,64 +1129,64 @@ "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - "ansi-escapes" "^4.2.1" - "chalk" "^4.0.0" - "emittery" "^0.8.1" - "exit" "^0.1.2" - "graceful-fs" "^4.2.9" - "jest-changed-files" "^27.5.1" - "jest-config" "^27.5.1" - "jest-haste-map" "^27.5.1" - "jest-message-util" "^27.5.1" - "jest-regex-util" "^27.5.1" - "jest-resolve" "^27.5.1" - "jest-resolve-dependencies" "^27.5.1" - "jest-runner" "^27.5.1" - "jest-runtime" "^27.5.1" - "jest-snapshot" "^27.5.1" - "jest-util" "^27.5.1" - "jest-validate" "^27.5.1" - "jest-watcher" "^27.5.1" - "micromatch" "^4.0.4" - "rimraf" "^3.0.0" - "slash" "^3.0.0" - "strip-ansi" "^6.0.0" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" + micromatch "^4.0.4" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" "@jest/environment@^27.5.1": - "integrity" "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==" - "resolved" "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== dependencies: "@jest/fake-timers" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - "jest-mock" "^27.5.1" + jest-mock "^27.5.1" "@jest/fake-timers@^27.5.1": - "integrity" "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==" - "resolved" "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== dependencies: "@jest/types" "^27.5.1" "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - "jest-message-util" "^27.5.1" - "jest-mock" "^27.5.1" - "jest-util" "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" "@jest/globals@^27.5.1": - "integrity" "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==" - "resolved" "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== dependencies: "@jest/environment" "^27.5.1" "@jest/types" "^27.5.1" - "expect" "^27.5.1" + expect "^27.5.1" "@jest/reporters@^27.5.1": - "integrity" "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==" - "resolved" "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^27.5.1" @@ -1194,178 +1194,178 @@ "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - "chalk" "^4.0.0" - "collect-v8-coverage" "^1.0.0" - "exit" "^0.1.2" - "glob" "^7.1.2" - "graceful-fs" "^4.2.9" - "istanbul-lib-coverage" "^3.0.0" - "istanbul-lib-instrument" "^5.1.0" - "istanbul-lib-report" "^3.0.0" - "istanbul-lib-source-maps" "^4.0.0" - "istanbul-reports" "^3.1.3" - "jest-haste-map" "^27.5.1" - "jest-resolve" "^27.5.1" - "jest-util" "^27.5.1" - "jest-worker" "^27.5.1" - "slash" "^3.0.0" - "source-map" "^0.6.0" - "string-length" "^4.0.1" - "terminal-link" "^2.0.0" - "v8-to-istanbul" "^8.1.0" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.1.0" "@jest/source-map@^27.5.1": - "integrity" "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==" - "resolved" "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== dependencies: - "callsites" "^3.0.0" - "graceful-fs" "^4.2.9" - "source-map" "^0.6.0" + callsites "^3.0.0" + graceful-fs "^4.2.9" + source-map "^0.6.0" "@jest/test-result@^27.5.1": - "integrity" "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==" - "resolved" "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== dependencies: "@jest/console" "^27.5.1" "@jest/types" "^27.5.1" "@types/istanbul-lib-coverage" "^2.0.0" - "collect-v8-coverage" "^1.0.0" + collect-v8-coverage "^1.0.0" "@jest/test-sequencer@^27.5.1": - "integrity" "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==" - "resolved" "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== dependencies: "@jest/test-result" "^27.5.1" - "graceful-fs" "^4.2.9" - "jest-haste-map" "^27.5.1" - "jest-runtime" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" "@jest/transform@^27.5.1": - "integrity" "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==" - "resolved" "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== dependencies: "@babel/core" "^7.1.0" "@jest/types" "^27.5.1" - "babel-plugin-istanbul" "^6.1.1" - "chalk" "^4.0.0" - "convert-source-map" "^1.4.0" - "fast-json-stable-stringify" "^2.0.0" - "graceful-fs" "^4.2.9" - "jest-haste-map" "^27.5.1" - "jest-regex-util" "^27.5.1" - "jest-util" "^27.5.1" - "micromatch" "^4.0.4" - "pirates" "^4.0.4" - "slash" "^3.0.0" - "source-map" "^0.6.1" - "write-file-atomic" "^3.0.0" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" "@jest/types@^27.5.1": - "integrity" "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==" - "resolved" "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" - "version" "27.5.1" + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^16.0.0" - "chalk" "^4.0.0" + chalk "^4.0.0" "@jridgewell/resolve-uri@^3.0.3": - "integrity" "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==" - "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz" - "version" "3.0.7" + version "3.0.7" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz" + integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== "@jridgewell/sourcemap-codec@^1.4.10": - "integrity" "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" - "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz" - "version" "1.4.13" + version "1.4.13" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz" + integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== "@jridgewell/trace-mapping@0.3.9": - "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==" - "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" - "version" "0.3.9" + version "0.3.9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@marionebl/sander@^0.6.0": - "integrity" "sha1-GViWWHTyS8Ub5Ih1/rUNZC/EH3s=" - "resolved" "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz" - "version" "0.6.1" + version "0.6.1" + resolved "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz" + integrity sha1-GViWWHTyS8Ub5Ih1/rUNZC/EH3s= dependencies: - "graceful-fs" "^4.1.3" - "mkdirp" "^0.5.1" - "rimraf" "^2.5.2" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" "@nodelib/fs.scandir@2.1.5": - "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" - "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - "version" "2.1.5" + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" - "run-parallel" "^1.1.9" + run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": - "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - "version" "2.0.5" +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" - "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - "version" "1.2.8" + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" - "fastq" "^1.6.0" + fastq "^1.6.0" "@sinonjs/commons@^1.7.0": - "integrity" "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==" - "resolved" "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" - "version" "1.8.3" + version "1.8.3" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== dependencies: - "type-detect" "4.0.8" + type-detect "4.0.8" "@sinonjs/fake-timers@^8.0.1": - "integrity" "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==" - "resolved" "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" - "version" "8.1.0" + version "8.1.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== dependencies: "@sinonjs/commons" "^1.7.0" "@tootallnate/once@1": - "integrity" "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - "resolved" "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" - "version" "1.1.2" + version "1.1.2" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@tsconfig/node10@^1.0.7": - "integrity" "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - "resolved" "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" - "version" "1.0.9" + version "1.0.9" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": - "integrity" "sha512-N+srakvPaYMGkwjNDx3ASx65Zl3QG8dJgVtIB+YMOkucU+zctlv/hdP5250VKdDHSDoW9PFZoCqbqNcAPjCjXA==" - "resolved" "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.10.tgz" - "version" "1.0.10" + version "1.0.10" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.10.tgz" + integrity sha512-N+srakvPaYMGkwjNDx3ASx65Zl3QG8dJgVtIB+YMOkucU+zctlv/hdP5250VKdDHSDoW9PFZoCqbqNcAPjCjXA== "@tsconfig/node14@^1.0.0": - "integrity" "sha512-YwrUA5ysDXHFYfL0Xed9x3sNS4P+aKlCOnnbqUa2E5HdQshHFleCJVrj1PlGTb4GgFUCDyte1v3JWLy2sz8Oqg==" - "resolved" "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.2.tgz" - "version" "1.0.2" + version "1.0.2" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.2.tgz" + integrity sha512-YwrUA5ysDXHFYfL0Xed9x3sNS4P+aKlCOnnbqUa2E5HdQshHFleCJVrj1PlGTb4GgFUCDyte1v3JWLy2sz8Oqg== "@tsconfig/node16@^1.0.2": - "integrity" "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - "resolved" "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" - "version" "1.0.3" + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - "integrity" "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==" - "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" - "version" "7.1.19" + version "7.1.19" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" + integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1374,462 +1374,463 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - "integrity" "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==" - "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz" - "version" "7.6.3" + version "7.6.3" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz" + integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - "integrity" "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==" - "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" - "version" "7.4.1" + version "7.4.1" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - "integrity" "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==" - "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz" - "version" "7.14.2" + version "7.14.2" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== dependencies: "@babel/types" "^7.3.0" "@types/graceful-fs@^4.1.2": - "integrity" "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==" - "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" - "version" "4.1.5" + version "4.1.5" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== dependencies: "@types/node" "*" "@types/graphql@^14.5.0": - "integrity" "sha512-MOkzsEp1Jk5bXuAsHsUi6BVv0zCO+7/2PTiZMXWDSsMXvNU6w/PLMQT2vHn8hy2i0JqojPz1Sz6rsFjHtsU0lA==" - "resolved" "https://registry.npmjs.org/@types/graphql/-/graphql-14.5.0.tgz" - "version" "14.5.0" + version "14.5.0" + resolved "https://registry.npmjs.org/@types/graphql/-/graphql-14.5.0.tgz" + integrity sha512-MOkzsEp1Jk5bXuAsHsUi6BVv0zCO+7/2PTiZMXWDSsMXvNU6w/PLMQT2vHn8hy2i0JqojPz1Sz6rsFjHtsU0lA== dependencies: - "graphql" "*" + graphql "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - "integrity" "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz" - "version" "2.0.3" + version "2.0.3" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== "@types/istanbul-lib-report@*": - "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - "version" "3.0.0" + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" - "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - "version" "3.0.1" + version "3.0.1" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^27.0.0", "@types/jest@^27.4.1": - "integrity" "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==" - "resolved" "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz" - "version" "27.4.1" +"@types/jest@^27.4.1": + version "27.4.1" + resolved "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz" + integrity sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw== dependencies: - "jest-matcher-utils" "^27.0.0" - "pretty-format" "^27.0.0" + jest-matcher-utils "^27.0.0" + pretty-format "^27.0.0" "@types/json-schema@^7.0.7": - "integrity" "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" - "version" "7.0.9" + version "7.0.9" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/minimist@^1.2.0": - "integrity" "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" - "resolved" "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz" - "version" "1.2.2" + version "1.2.2" + resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node-fetch@^2.3.7": - "integrity" "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==" - "resolved" "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz" - "version" "2.5.12" + version "2.5.12" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz" + integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== dependencies: "@types/node" "*" - "form-data" "^3.0.0" + form-data "^3.0.0" "@types/node@*", "@types/node@^13.9.0": - "integrity" "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz" - "version" "13.13.52" + version "13.13.52" + resolved "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz" + integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== "@types/normalize-package-data@^2.4.0": - "integrity" "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" - "resolved" "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" - "version" "2.4.1" + version "2.4.1" + resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== "@types/parse-json@^4.0.0": - "integrity" "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - "resolved" "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" - "version" "4.0.0" + version "4.0.0" + resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - "integrity" "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==" - "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz" - "version" "2.6.0" + version "2.6.0" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz" + integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== "@types/stack-utils@^2.0.0": - "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - "version" "2.0.1" + version "2.0.1" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/yargs-parser@*": - "integrity" "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" - "version" "20.2.1" + version "20.2.1" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== "@types/yargs@^15.0.11": - "integrity" "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==" - "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz" - "version" "15.0.14" + version "15.0.14" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== dependencies: "@types/yargs-parser" "*" "@types/yargs@^16.0.0": - "integrity" "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==" - "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" - "version" "16.0.4" + version "16.0.4" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== dependencies: "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^4.15.0": - "integrity" "sha512-+OWTuWRSbWI1KDK8iEyG/6uK2rTm3kpS38wuVifGUTDB6kjEuNrzBI1MUtxnkneuWG/23QehABe2zHHrj+4yuA==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.32.0.tgz" - "version" "4.32.0" + version "4.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.32.0.tgz" + integrity sha512-+OWTuWRSbWI1KDK8iEyG/6uK2rTm3kpS38wuVifGUTDB6kjEuNrzBI1MUtxnkneuWG/23QehABe2zHHrj+4yuA== dependencies: "@typescript-eslint/experimental-utils" "4.32.0" "@typescript-eslint/scope-manager" "4.32.0" - "debug" "^4.3.1" - "functional-red-black-tree" "^1.0.1" - "ignore" "^5.1.8" - "regexpp" "^3.1.0" - "semver" "^7.3.5" - "tsutils" "^3.21.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" "@typescript-eslint/experimental-utils@4.32.0": - "integrity" "sha512-WLoXcc+cQufxRYjTWr4kFt0DyEv6hDgSaFqYhIzQZ05cF+kXfqXdUh+//kgquPJVUBbL3oQGKQxwPbLxHRqm6A==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.32.0.tgz" - "version" "4.32.0" + version "4.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.32.0.tgz" + integrity sha512-WLoXcc+cQufxRYjTWr4kFt0DyEv6hDgSaFqYhIzQZ05cF+kXfqXdUh+//kgquPJVUBbL3oQGKQxwPbLxHRqm6A== dependencies: "@types/json-schema" "^7.0.7" "@typescript-eslint/scope-manager" "4.32.0" "@typescript-eslint/types" "4.32.0" "@typescript-eslint/typescript-estree" "4.32.0" - "eslint-scope" "^5.1.1" - "eslint-utils" "^3.0.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.0.0", "@typescript-eslint/parser@^4.15.0": - "integrity" "sha512-lhtYqQ2iEPV5JqV7K+uOVlPePjClj4dOw7K4/Z1F2yvjIUvyr13yJnDzkK6uon4BjHYuHy3EG0c2Z9jEhFk56w==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.32.0.tgz" - "version" "4.32.0" +"@typescript-eslint/parser@^4.15.0": + version "4.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.32.0.tgz" + integrity sha512-lhtYqQ2iEPV5JqV7K+uOVlPePjClj4dOw7K4/Z1F2yvjIUvyr13yJnDzkK6uon4BjHYuHy3EG0c2Z9jEhFk56w== dependencies: "@typescript-eslint/scope-manager" "4.32.0" "@typescript-eslint/types" "4.32.0" "@typescript-eslint/typescript-estree" "4.32.0" - "debug" "^4.3.1" + debug "^4.3.1" "@typescript-eslint/scope-manager@4.32.0": - "integrity" "sha512-DK+fMSHdM216C0OM/KR1lHXjP1CNtVIhJ54kQxfOE6x8UGFAjha8cXgDMBEIYS2XCYjjCtvTkjQYwL3uvGOo0w==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.32.0.tgz" - "version" "4.32.0" + version "4.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.32.0.tgz" + integrity sha512-DK+fMSHdM216C0OM/KR1lHXjP1CNtVIhJ54kQxfOE6x8UGFAjha8cXgDMBEIYS2XCYjjCtvTkjQYwL3uvGOo0w== dependencies: "@typescript-eslint/types" "4.32.0" "@typescript-eslint/visitor-keys" "4.32.0" "@typescript-eslint/types@4.32.0": - "integrity" "sha512-LE7Z7BAv0E2UvqzogssGf1x7GPpUalgG07nGCBYb1oK4mFsOiFC/VrSMKbZQzFJdN2JL5XYmsx7C7FX9p9ns0w==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.32.0.tgz" - "version" "4.32.0" + version "4.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.32.0.tgz" + integrity sha512-LE7Z7BAv0E2UvqzogssGf1x7GPpUalgG07nGCBYb1oK4mFsOiFC/VrSMKbZQzFJdN2JL5XYmsx7C7FX9p9ns0w== "@typescript-eslint/typescript-estree@4.32.0": - "integrity" "sha512-tRYCgJ3g1UjMw1cGG8Yn1KzOzNlQ6u1h9AmEtPhb5V5a1TmiHWcRyF/Ic+91M4f43QeChyYlVTcf3DvDTZR9vw==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.32.0.tgz" - "version" "4.32.0" + version "4.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.32.0.tgz" + integrity sha512-tRYCgJ3g1UjMw1cGG8Yn1KzOzNlQ6u1h9AmEtPhb5V5a1TmiHWcRyF/Ic+91M4f43QeChyYlVTcf3DvDTZR9vw== dependencies: "@typescript-eslint/types" "4.32.0" "@typescript-eslint/visitor-keys" "4.32.0" - "debug" "^4.3.1" - "globby" "^11.0.3" - "is-glob" "^4.0.1" - "semver" "^7.3.5" - "tsutils" "^3.21.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" "@typescript-eslint/visitor-keys@4.32.0": - "integrity" "sha512-e7NE0qz8W+atzv3Cy9qaQ7BTLwWsm084Z0c4nIO2l3Bp6u9WIgdqCgyPyV5oSPDMIW3b20H59OOCmVk3jw3Ptw==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.32.0.tgz" - "version" "4.32.0" + version "4.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.32.0.tgz" + integrity sha512-e7NE0qz8W+atzv3Cy9qaQ7BTLwWsm084Z0c4nIO2l3Bp6u9WIgdqCgyPyV5oSPDMIW3b20H59OOCmVk3jw3Ptw== dependencies: "@typescript-eslint/types" "4.32.0" - "eslint-visitor-keys" "^2.0.0" - -"abab@^2.0.3", "abab@^2.0.5": - "integrity" "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" - "resolved" "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" - "version" "2.0.6" - -"acorn-globals@^6.0.0": - "integrity" "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==" - "resolved" "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "acorn" "^7.1.1" - "acorn-walk" "^7.1.1" - -"acorn-jsx@^5.3.1": - "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" - "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - "version" "5.3.2" - -"acorn-walk@^7.1.1": - "integrity" "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" - "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" - "version" "7.2.0" - -"acorn-walk@^8.1.1": - "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - "version" "8.2.0" - -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.1.1", "acorn@^7.4.0": - "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - "version" "7.4.1" - -"acorn@^8.2.4": - "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - "version" "8.7.0" - -"acorn@^8.4.1": - "integrity" "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" - "version" "8.7.1" - -"agent-base@6": - "integrity" "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==" - "resolved" "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - "version" "6.0.2" - dependencies: - "debug" "4" - -"ajv@^6.10.0", "ajv@^6.12.4": - "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" - "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - "version" "6.12.6" - dependencies: - "fast-deep-equal" "^3.1.1" - "fast-json-stable-stringify" "^2.0.0" - "json-schema-traverse" "^0.4.1" - "uri-js" "^4.2.2" - -"ajv@^8.0.1": - "integrity" "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==" - "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz" - "version" "8.6.3" - dependencies: - "fast-deep-equal" "^3.1.1" - "json-schema-traverse" "^1.0.0" - "require-from-string" "^2.0.2" - "uri-js" "^4.2.2" - -"ansi-colors@^4.1.1": - "integrity" "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - "version" "4.1.1" - -"ansi-colors@3.2.3": - "integrity" "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" - "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz" - "version" "3.2.3" - -"ansi-escapes@^3.2.0": - "integrity" "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" - "version" "3.2.0" - -"ansi-escapes@^4.2.1": - "integrity" "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" - "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - "version" "4.3.2" - dependencies: - "type-fest" "^0.21.3" - -"ansi-regex@^3.0.0": - "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" - "version" "3.0.0" - -"ansi-regex@^4.1.0": - "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" - "version" "4.1.0" - -"ansi-regex@^5.0.1": - "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - "version" "5.0.1" - -"ansi-styles@^3.2.0", "ansi-styles@^3.2.1": - "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "color-convert" "^1.9.0" - -"ansi-styles@^4.0.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "color-convert" "^2.0.1" - -"ansi-styles@^4.1.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "color-convert" "^2.0.1" - -"ansi-styles@^5.0.0": - "integrity" "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - "version" "5.2.0" - -"anymatch@^3.0.3", "anymatch@~3.1.1": - "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" - "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - "version" "3.1.2" - dependencies: - "normalize-path" "^3.0.0" - "picomatch" "^2.0.4" - -"arg@^4.1.0": - "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - "version" "4.1.3" - -"argparse@^1.0.7": - "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" - "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - "version" "1.0.10" - dependencies: - "sprintf-js" "~1.0.2" - -"array-find-index@^1.0.1": - "integrity" "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - "resolved" "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" - "version" "1.0.2" - -"array-ify@^1.0.0": - "integrity" "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" - "resolved" "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" - "version" "1.0.0" - -"array-union@^2.1.0": - "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - "version" "2.1.0" - -"arrify@^1.0.1": - "integrity" "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - "resolved" "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" - "version" "1.0.1" - -"astral-regex@^2.0.0": - "integrity" "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" - "resolved" "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" - "version" "2.0.0" - -"asynckit@^0.4.0": - "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - "version" "0.4.0" - -"babel-jest@^27.5.1", "babel-jest@>=27.0.0 <28": - "integrity" "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==" - "resolved" "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz" - "version" "27.5.1" + eslint-visitor-keys "^2.0.0" + +JSONStream@^1.0.4: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.2.4: + version "8.7.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +acorn@^8.4.1: + version "8.7.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== + +agent-base@6: + version "6.0.2" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.6.3" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz" + integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-colors@3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^3.0.3, anymatch@~3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== dependencies: "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" "@types/babel__core" "^7.1.14" - "babel-plugin-istanbul" "^6.1.1" - "babel-preset-jest" "^27.5.1" - "chalk" "^4.0.0" - "graceful-fs" "^4.2.9" - "slash" "^3.0.0" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" -"babel-plugin-dynamic-import-node@^2.3.3": - "integrity" "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==" - "resolved" "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" - "version" "2.3.3" +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: - "object.assign" "^4.1.0" + object.assign "^4.1.0" -"babel-plugin-istanbul@^6.1.1": - "integrity" "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==" - "resolved" "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - "version" "6.1.1" +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" - "istanbul-lib-instrument" "^5.0.4" - "test-exclude" "^6.0.0" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" -"babel-plugin-jest-hoist@^27.5.1": - "integrity" "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==" - "resolved" "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz" - "version" "27.5.1" +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -"babel-plugin-polyfill-corejs2@^0.2.2": - "integrity" "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==" - "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz" - "version" "0.2.2" +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== dependencies: "@babel/compat-data" "^7.13.11" "@babel/helper-define-polyfill-provider" "^0.2.2" - "semver" "^6.1.1" + semver "^6.1.1" -"babel-plugin-polyfill-corejs3@^0.2.2": - "integrity" "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==" - "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz" - "version" "0.2.5" +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.5" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz" + integrity sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw== dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" - "core-js-compat" "^3.16.2" + core-js-compat "^3.16.2" -"babel-plugin-polyfill-regenerator@^0.2.2": - "integrity" "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==" - "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz" - "version" "0.2.2" +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" -"babel-polyfill@6.26.0": - "integrity" "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=" - "resolved" "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz" - "version" "6.26.0" +babel-polyfill@6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz" + integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= dependencies: - "babel-runtime" "^6.26.0" - "core-js" "^2.5.0" - "regenerator-runtime" "^0.10.5" + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" -"babel-preset-current-node-syntax@^1.0.0": - "integrity" "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==" - "resolved" "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - "version" "1.0.1" +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" @@ -1844,1982 +1845,1975 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -"babel-preset-jest@^27.5.1": - "integrity" "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==" - "resolved" "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz" - "version" "27.5.1" - dependencies: - "babel-plugin-jest-hoist" "^27.5.1" - "babel-preset-current-node-syntax" "^1.0.0" +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== + dependencies: + babel-plugin-jest-hoist "^27.5.1" + babel-preset-current-node-syntax "^1.0.0" -"babel-runtime@^6.23.0", "babel-runtime@^6.26.0": - "integrity" "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=" - "resolved" "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" - "version" "6.26.0" +babel-runtime@^6.23.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= dependencies: - "core-js" "^2.4.0" - "regenerator-runtime" "^0.11.0" - -"balanced-match@^1.0.0": - "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - "version" "1.0.2" - -"binary-extensions@^2.0.0": - "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - "version" "2.2.0" - -"brace-expansion@^1.1.7": - "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - "version" "1.1.11" - dependencies: - "balanced-match" "^1.0.0" - "concat-map" "0.0.1" - -"braces@^3.0.1", "braces@~3.0.2": - "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" - "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "fill-range" "^7.0.1" - -"browser-process-hrtime@^1.0.0": - "integrity" "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - "resolved" "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" - "version" "1.0.0" - -"browser-stdout@1.3.1": - "integrity" "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - "resolved" "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" - "version" "1.3.1" - -"browserslist@^4.16.6", "browserslist@^4.17.1": - "integrity" "sha512-jSDZyqJmkKMEMi7SZAgX5UltFdR5NAO43vY0AwTpu4X3sGH7GLLQ83KiUomgrnvZRCeW0yPPnKqnxPqQOER9zQ==" - "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.17.2.tgz" - "version" "4.17.2" - dependencies: - "caniuse-lite" "^1.0.30001261" - "electron-to-chromium" "^1.3.854" - "escalade" "^3.1.1" - "nanocolors" "^0.2.12" - "node-releases" "^1.1.76" - -"bs-logger@0.x": - "integrity" "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==" - "resolved" "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" - "version" "0.2.6" - dependencies: - "fast-json-stable-stringify" "2.x" - -"bser@2.1.1": - "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==" - "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "node-int64" "^0.4.0" - -"buffer-from@^1.0.0": - "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - "version" "1.1.2" - -"cachedir@2.2.0": - "integrity" "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==" - "resolved" "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz" - "version" "2.2.0" - -"call-bind@^1.0.0", "call-bind@^1.0.2": - "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" - "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "function-bind" "^1.1.1" - "get-intrinsic" "^1.0.2" - -"caller-callsite@^2.0.0": - "integrity" "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=" - "resolved" "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "callsites" "^2.0.0" - -"caller-path@^2.0.0": - "integrity" "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=" - "resolved" "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "caller-callsite" "^2.0.0" - -"callsites@^2.0.0": - "integrity" "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - "resolved" "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" - "version" "2.0.0" - -"callsites@^3.0.0": - "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - "version" "3.1.0" - -"camelcase-keys@^4.0.0": - "integrity" "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=" - "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz" - "version" "4.2.0" - dependencies: - "camelcase" "^4.1.0" - "map-obj" "^2.0.0" - "quick-lru" "^1.0.0" - -"camelcase-keys@^6.2.2": - "integrity" "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==" - "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" - "version" "6.2.2" - dependencies: - "camelcase" "^5.3.1" - "map-obj" "^4.0.0" - "quick-lru" "^4.0.1" - -"camelcase@^4.1.0": - "integrity" "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz" - "version" "4.1.0" - -"camelcase@^5.0.0", "camelcase@^5.3.1": - "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - "version" "5.3.1" - -"camelcase@^6.2.0": - "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" - "version" "6.3.0" - -"caniuse-lite@^1.0.30001261": - "integrity" "sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA==" - "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz" - "version" "1.0.30001261" - -"chalk@^2.0.0", "chalk@^2.0.1", "chalk@^2.4.1", "chalk@^2.4.2", "chalk@2.4.2": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" - -"chalk@^4.0.0": - "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"char-regex@^1.0.2": - "integrity" "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" - "resolved" "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" - "version" "1.0.2" - -"chardet@^0.7.0": - "integrity" "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - "resolved" "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" - "version" "0.7.0" - -"chokidar@3.3.0": - "integrity" "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==" - "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz" - "version" "3.3.0" - dependencies: - "anymatch" "~3.1.1" - "braces" "~3.0.2" - "glob-parent" "~5.1.0" - "is-binary-path" "~2.1.0" - "is-glob" "~4.0.1" - "normalize-path" "~3.0.0" - "readdirp" "~3.2.0" + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.16.6, browserslist@^4.17.1: + version "4.17.2" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.17.2.tgz" + integrity sha512-jSDZyqJmkKMEMi7SZAgX5UltFdR5NAO43vY0AwTpu4X3sGH7GLLQ83KiUomgrnvZRCeW0yPPnKqnxPqQOER9zQ== + dependencies: + caniuse-lite "^1.0.30001261" + electron-to-chromium "^1.3.854" + escalade "^3.1.1" + nanocolors "^0.2.12" + node-releases "^1.1.76" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +cachedir@2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz" + integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001261: + version "1.0.30001261" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz" + integrity sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA== + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + 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@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz" + integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.2.0" optionalDependencies: - "fsevents" "~2.1.1" - -"ci-info@^2.0.0": - "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - "version" "2.0.0" - -"ci-info@^3.2.0": - "integrity" "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" - "version" "3.3.0" - -"cjs-module-lexer@^1.0.0": - "integrity" "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" - "resolved" "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" - "version" "1.2.2" - -"cli-cursor@^2.1.0": - "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" - "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "restore-cursor" "^2.0.0" - -"cli-width@^2.0.0": - "integrity" "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" - "resolved" "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz" - "version" "2.2.1" - -"cliui@^5.0.0": - "integrity" "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==" - "resolved" "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "string-width" "^3.1.0" - "strip-ansi" "^5.2.0" - "wrap-ansi" "^5.1.0" - -"cliui@^7.0.2": - "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" - "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - "version" "7.0.4" - dependencies: - "string-width" "^4.2.0" - "strip-ansi" "^6.0.0" - "wrap-ansi" "^7.0.0" - -"clone-deep@^4.0.1": - "integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==" - "resolved" "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" - "version" "4.0.1" - dependencies: - "is-plain-object" "^2.0.4" - "kind-of" "^6.0.2" - "shallow-clone" "^3.0.0" - -"co@^4.6.0": - "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - "version" "4.6.0" - -"collect-v8-coverage@^1.0.0": - "integrity" "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" - "version" "1.0.1" - -"color-convert@^1.9.0": - "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - "version" "1.9.3" - dependencies: - "color-name" "1.1.3" - -"color-convert@^2.0.1": - "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "color-name" "~1.1.4" - -"color-name@~1.1.4": - "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - "version" "1.1.4" - -"color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"combined-stream@^1.0.8": - "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" - "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - "version" "1.0.8" - dependencies: - "delayed-stream" "~1.0.0" - -"commander@^4.0.1": - "integrity" "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - "resolved" "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" - "version" "4.1.1" - -"commitizen@^4.0.3": - "integrity" "sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==" - "resolved" "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz" - "version" "4.2.4" - dependencies: - "cachedir" "2.2.0" - "cz-conventional-changelog" "3.2.0" - "dedent" "0.7.0" - "detect-indent" "6.0.0" - "find-node-modules" "^2.1.2" - "find-root" "1.1.0" - "fs-extra" "8.1.0" - "glob" "7.1.4" - "inquirer" "6.5.2" - "is-utf8" "^0.2.1" - "lodash" "^4.17.20" - "minimist" "1.2.5" - "strip-bom" "4.0.0" - "strip-json-comments" "3.0.1" - -"commondir@^1.0.1": - "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - "version" "1.0.1" - -"compare-func@^1.3.1": - "integrity" "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==" - "resolved" "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz" - "version" "1.3.4" - dependencies: - "array-ify" "^1.0.0" - "dot-prop" "^3.0.0" - -"compare-versions@^3.6.0": - "integrity" "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" - "resolved" "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz" - "version" "3.6.0" - -"concat-map@0.0.1": - "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - "version" "0.0.1" - -"conventional-changelog-angular@^1.3.3": - "integrity" "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==" - "resolved" "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz" - "version" "1.6.6" - dependencies: - "compare-func" "^1.3.1" - "q" "^1.5.1" - -"conventional-changelog-conventionalcommits@4.2.1": - "integrity" "sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q==" - "resolved" "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz" - "version" "4.2.1" - dependencies: - "compare-func" "^1.3.1" - "lodash" "^4.2.1" - "q" "^1.5.1" - -"conventional-commit-types@^3.0.0": - "integrity" "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==" - "resolved" "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz" - "version" "3.0.0" - -"conventional-commits-parser@^3.0.0": - "integrity" "sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g==" - "resolved" "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz" - "version" "3.2.2" - dependencies: - "is-text-path" "^1.0.1" - "JSONStream" "^1.0.4" - "lodash" "^4.17.15" - "meow" "^8.0.0" - "split2" "^3.0.0" - "through2" "^4.0.0" - -"convert-source-map@^1.4.0", "convert-source-map@^1.6.0", "convert-source-map@^1.7.0": - "integrity" "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==" - "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" - "version" "1.8.0" - dependencies: - "safe-buffer" "~5.1.1" - -"core-js-compat@^3.16.0", "core-js-compat@^3.16.2": - "integrity" "sha512-XJMYx58zo4W0kLPmIingVZA10+7TuKrMLPt83+EzDmxFJQUMcTVVmQ+n5JP4r6Z14qSzhQBRi3NSWoeVyKKXUg==" - "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.1.tgz" - "version" "3.18.1" - dependencies: - "browserslist" "^4.17.1" - "semver" "7.0.0" - -"core-js@^2.4.0": - "integrity" "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" - "version" "2.6.12" - -"core-js@^2.5.0": - "integrity" "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" - "version" "2.6.12" - -"core-js@^3.16.0": - "integrity" "sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA==" - "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz" - "version" "3.18.1" - -"cosmiconfig@^5.2.0": - "integrity" "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==" - "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" - "version" "5.2.1" - dependencies: - "import-fresh" "^2.0.0" - "is-directory" "^0.3.1" - "js-yaml" "^3.13.1" - "parse-json" "^4.0.0" - -"cosmiconfig@^7.0.0": - "integrity" "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==" - "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" - "version" "7.0.1" + fsevents "~2.1.1" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" + integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commitizen@^4.0.3: + version "4.2.4" + resolved "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz" + integrity sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw== + dependencies: + cachedir "2.2.0" + cz-conventional-changelog "3.2.0" + dedent "0.7.0" + detect-indent "6.0.0" + find-node-modules "^2.1.2" + find-root "1.1.0" + fs-extra "8.1.0" + glob "7.1.4" + inquirer "6.5.2" + is-utf8 "^0.2.1" + lodash "^4.17.20" + minimist "1.2.5" + strip-bom "4.0.0" + strip-json-comments "3.0.1" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +compare-func@^1.3.1: + version "1.3.4" + resolved "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz" + integrity sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q== + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +conventional-changelog-angular@^1.3.3: + version "1.6.6" + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz" + integrity sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg== + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-conventionalcommits@4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz" + integrity sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q== + dependencies: + compare-func "^1.3.1" + lodash "^4.2.1" + q "^1.5.1" + +conventional-commit-types@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz" + integrity sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg== + +conventional-commits-parser@^3.0.0: + version "3.2.2" + resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz" + integrity sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +core-js-compat@^3.16.0, core-js-compat@^3.16.2: + version "3.18.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.1.tgz" + integrity sha512-XJMYx58zo4W0kLPmIingVZA10+7TuKrMLPt83+EzDmxFJQUMcTVVmQ+n5JP4r6Z14qSzhQBRi3NSWoeVyKKXUg== + dependencies: + browserslist "^4.17.1" + semver "7.0.0" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.12" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.16.0: + version "3.18.1" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz" + integrity sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA== + +cosmiconfig@^5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== dependencies: "@types/parse-json" "^4.0.0" - "import-fresh" "^3.2.1" - "parse-json" "^5.0.0" - "path-type" "^4.0.0" - "yaml" "^1.10.0" - -"create-require@^1.1.0": - "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - "version" "1.1.1" - -"cross-fetch@^3.0.4": - "integrity" "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==" - "resolved" "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz" - "version" "3.1.4" - dependencies: - "node-fetch" "2.6.1" - -"cross-spawn@^7.0.2", "cross-spawn@^7.0.3": - "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" - "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - "version" "7.0.3" - dependencies: - "path-key" "^3.1.0" - "shebang-command" "^2.0.0" - "which" "^2.0.1" - -"cssom@^0.4.4": - "integrity" "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - "resolved" "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" - "version" "0.4.4" - -"cssom@~0.3.6": - "integrity" "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - "resolved" "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" - "version" "0.3.8" - -"cssstyle@^2.3.0": - "integrity" "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==" - "resolved" "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" - "version" "2.3.0" - dependencies: - "cssom" "~0.3.6" - -"currently-unhandled@^0.4.1": - "integrity" "sha1-mI3zP+qxke95mmE2nddsF635V+o=" - "resolved" "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" - "version" "0.4.1" - dependencies: - "array-find-index" "^1.0.1" - -"cz-conventional-changelog@^3.1.0": - "integrity" "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==" - "resolved" "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz" - "version" "3.3.0" - dependencies: - "chalk" "^2.4.1" - "commitizen" "^4.0.3" - "conventional-commit-types" "^3.0.0" - "lodash.map" "^4.5.1" - "longest" "^2.0.1" - "word-wrap" "^1.0.3" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.0.4: + version "3.1.4" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz" + integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== + dependencies: + node-fetch "2.6.1" + +cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cz-conventional-changelog@3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz" + integrity sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" optionalDependencies: "@commitlint/load" ">6.1.1" -"cz-conventional-changelog@3.2.0": - "integrity" "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==" - "resolved" "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz" - "version" "3.2.0" - dependencies: - "chalk" "^2.4.1" - "commitizen" "^4.0.3" - "conventional-commit-types" "^3.0.0" - "lodash.map" "^4.5.1" - "longest" "^2.0.1" - "word-wrap" "^1.0.3" +cz-conventional-changelog@^3.1.0: + version "3.3.0" + resolved "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz" + integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" optionalDependencies: "@commitlint/load" ">6.1.1" -"dargs@^7.0.0": - "integrity" "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==" - "resolved" "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" - "version" "7.0.0" - -"data-urls@^2.0.0": - "integrity" "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==" - "resolved" "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "abab" "^2.0.3" - "whatwg-mimetype" "^2.3.0" - "whatwg-url" "^8.0.0" - -"debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.1", "debug@4": - "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" - "version" "4.3.2" - dependencies: - "ms" "2.1.2" - -"debug@3.2.6": - "integrity" "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==" - "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" - "version" "3.2.6" - dependencies: - "ms" "^2.1.1" - -"decamelize-keys@^1.0.0", "decamelize-keys@^1.1.0": - "integrity" "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=" - "resolved" "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" - "version" "1.1.0" - dependencies: - "decamelize" "^1.1.0" - "map-obj" "^1.0.0" - -"decamelize@^1.1.0", "decamelize@^1.2.0": - "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - "version" "1.2.0" - -"decimal.js@^10.2.1": - "integrity" "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - "resolved" "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" - "version" "10.3.1" - -"dedent@^0.7.0", "dedent@0.7.0": - "integrity" "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" - "version" "0.7.0" - -"deep-is@^0.1.3", "deep-is@~0.1.3": - "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - "version" "0.1.4" - -"deepmerge@^4.2.2": - "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" - "version" "4.2.2" - -"define-properties@^1.1.2", "define-properties@^1.1.3": - "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" - "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" - "version" "1.1.3" - dependencies: - "object-keys" "^1.0.12" - -"delayed-stream@~1.0.0": - "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - "version" "1.0.0" - -"detect-file@^1.0.0": - "integrity" "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - "resolved" "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" - "version" "1.0.0" - -"detect-indent@6.0.0": - "integrity" "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" - "resolved" "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz" - "version" "6.0.0" - -"detect-newline@^3.0.0": - "integrity" "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" - "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - "version" "3.1.0" - -"diff-sequences@^27.5.1": - "integrity" "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" - "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" - "version" "27.5.1" - -"diff@^4.0.1": - "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - "version" "4.0.2" - -"diff@3.5.0": - "integrity" "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - "resolved" "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" - "version" "3.5.0" - -"dir-glob@^3.0.1": - "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" - "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "path-type" "^4.0.0" - -"doctrine@^3.0.0": - "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==" - "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "esutils" "^2.0.2" - -"domexception@^2.0.1": - "integrity" "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==" - "resolved" "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "webidl-conversions" "^5.0.0" - -"dot-prop@^3.0.0": - "integrity" "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=" - "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "is-obj" "^1.0.0" - -"electron-to-chromium@^1.3.854": - "integrity" "sha512-00/IIC1mFPkq32MhUJyLdcTp7+wsKK2G3Sb65GSas9FKJQGYkDcZ4GwJkkxf5YyM3ETvl6n+toV8OmtXl4IA/g==" - "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.854.tgz" - "version" "1.3.854" - -"emittery@^0.8.1": - "integrity" "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" - "resolved" "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" - "version" "0.8.1" - -"emoji-regex@^7.0.1": - "integrity" "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - "version" "7.0.3" - -"emoji-regex@^8.0.0": - "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - "version" "8.0.0" - -"enquirer@^2.3.5": - "integrity" "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==" - "resolved" "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" - "version" "2.3.6" - dependencies: - "ansi-colors" "^4.1.1" - -"error-ex@^1.3.1": - "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" - "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - "version" "1.3.2" - dependencies: - "is-arrayish" "^0.2.1" - -"es-abstract@^1.18.0-next.2": - "integrity" "sha512-uFG1gyVX91tZIiDWNmPsL8XNpiCk/6tkB7MZphoSJflS4w+KgWyQ2gjCVDnsPxFAo9WjRXG3eqONNYdfbJjAtw==" - "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.7.tgz" - "version" "1.18.7" - dependencies: - "call-bind" "^1.0.2" - "es-to-primitive" "^1.2.1" - "function-bind" "^1.1.1" - "get-intrinsic" "^1.1.1" - "get-symbol-description" "^1.0.0" - "has" "^1.0.3" - "has-symbols" "^1.0.2" - "internal-slot" "^1.0.3" - "is-callable" "^1.2.4" - "is-negative-zero" "^2.0.1" - "is-regex" "^1.1.4" - "is-string" "^1.0.7" - "object-inspect" "^1.11.0" - "object-keys" "^1.1.1" - "object.assign" "^4.1.2" - "string.prototype.trimend" "^1.0.4" - "string.prototype.trimstart" "^1.0.4" - "unbox-primitive" "^1.0.1" - -"es-to-primitive@^1.2.1": - "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" - "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - "version" "1.2.1" - dependencies: - "is-callable" "^1.1.4" - "is-date-object" "^1.0.1" - "is-symbol" "^1.0.2" - -"escalade@^3.1.1": - "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - "version" "3.1.1" - -"escape-string-regexp@^1.0.5", "escape-string-regexp@1.0.5": - "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - "version" "1.0.5" - -"escape-string-regexp@^2.0.0": - "integrity" "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - "version" "2.0.0" - -"escape-string-regexp@^4.0.0": - "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - "version" "4.0.0" - -"escodegen@^2.0.0": - "integrity" "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==" - "resolved" "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "esprima" "^4.0.1" - "estraverse" "^5.2.0" - "esutils" "^2.0.2" - "optionator" "^0.8.1" +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@3.2.6: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.2" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +dedent@0.7.0, dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-indent@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz" + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + +diff@3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz" + integrity sha1-G3CK8JSknJoOfbyteQq6U52sEXc= + dependencies: + is-obj "^1.0.0" + +electron-to-chromium@^1.3.854: + version "1.3.854" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.854.tgz" + integrity sha512-00/IIC1mFPkq32MhUJyLdcTp7+wsKK2G3Sb65GSas9FKJQGYkDcZ4GwJkkxf5YyM3ETvl6n+toV8OmtXl4IA/g== + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.18.0-next.2: + version "1.18.7" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.7.tgz" + integrity sha512-uFG1gyVX91tZIiDWNmPsL8XNpiCk/6tkB7MZphoSJflS4w+KgWyQ2gjCVDnsPxFAo9WjRXG3eqONNYdfbJjAtw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.1" + is-regex "^1.1.4" + is-string "^1.0.7" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" optionalDependencies: - "source-map" "~0.6.1" + source-map "~0.6.1" -"eslint-config-prettier@^7.2.0": - "integrity" "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==" - "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz" - "version" "7.2.0" +eslint-config-prettier@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz" + integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== -"eslint-plugin-prettier@^3.3.1": - "integrity" "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==" - "resolved" "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz" - "version" "3.4.1" +eslint-plugin-prettier@^3.3.1: + version "3.4.1" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz" + integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== dependencies: - "prettier-linter-helpers" "^1.0.0" + prettier-linter-helpers "^1.0.0" -"eslint-scope@^5.1.1": - "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" - "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - "version" "5.1.1" +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - "esrecurse" "^4.3.0" - "estraverse" "^4.1.1" + esrecurse "^4.3.0" + estraverse "^4.1.1" -"eslint-utils@^2.1.0": - "integrity" "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==" - "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" - "version" "2.1.0" +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: - "eslint-visitor-keys" "^1.1.0" + eslint-visitor-keys "^1.1.0" -"eslint-utils@^3.0.0": - "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==" - "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" - "version" "3.0.0" +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== dependencies: - "eslint-visitor-keys" "^2.0.0" - -"eslint-visitor-keys@^1.1.0": - "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - "version" "1.3.0" + eslint-visitor-keys "^2.0.0" -"eslint-visitor-keys@^1.3.0": - "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - "version" "1.3.0" +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -"eslint-visitor-keys@^2.0.0": - "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - "version" "2.1.0" +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -"eslint@*", "eslint@^5.0.0 || ^6.0.0 || ^7.0.0", "eslint@^7.19.0", "eslint@>=5", "eslint@>=5.0.0", "eslint@>=7.0.0": - "integrity" "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==" - "resolved" "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" - "version" "7.32.0" +eslint@^7.19.0: + version "7.32.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.3" "@humanwhocodes/config-array" "^0.5.0" - "ajv" "^6.10.0" - "chalk" "^4.0.0" - "cross-spawn" "^7.0.2" - "debug" "^4.0.1" - "doctrine" "^3.0.0" - "enquirer" "^2.3.5" - "escape-string-regexp" "^4.0.0" - "eslint-scope" "^5.1.1" - "eslint-utils" "^2.1.0" - "eslint-visitor-keys" "^2.0.0" - "espree" "^7.3.1" - "esquery" "^1.4.0" - "esutils" "^2.0.2" - "fast-deep-equal" "^3.1.3" - "file-entry-cache" "^6.0.1" - "functional-red-black-tree" "^1.0.1" - "glob-parent" "^5.1.2" - "globals" "^13.6.0" - "ignore" "^4.0.6" - "import-fresh" "^3.0.0" - "imurmurhash" "^0.1.4" - "is-glob" "^4.0.0" - "js-yaml" "^3.13.1" - "json-stable-stringify-without-jsonify" "^1.0.1" - "levn" "^0.4.1" - "lodash.merge" "^4.6.2" - "minimatch" "^3.0.4" - "natural-compare" "^1.4.0" - "optionator" "^0.9.1" - "progress" "^2.0.0" - "regexpp" "^3.1.0" - "semver" "^7.2.1" - "strip-ansi" "^6.0.0" - "strip-json-comments" "^3.1.0" - "table" "^6.0.9" - "text-table" "^0.2.0" - "v8-compile-cache" "^2.0.3" - -"espree@^7.3.0", "espree@^7.3.1": - "integrity" "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==" - "resolved" "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" - "version" "7.3.1" - dependencies: - "acorn" "^7.4.0" - "acorn-jsx" "^5.3.1" - "eslint-visitor-keys" "^1.3.0" - -"esprima@^4.0.0", "esprima@^4.0.1": - "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - "version" "4.0.1" - -"esquery@^1.4.0": - "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==" - "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "estraverse" "^5.1.0" - -"esrecurse@^4.3.0": - "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" - "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "estraverse" "^5.2.0" - -"estraverse@^4.1.1": - "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - "version" "4.3.0" - -"estraverse@^5.1.0": - "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" - "version" "5.2.0" - -"estraverse@^5.2.0": - "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" - "version" "5.2.0" - -"esutils@^2.0.2": - "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - "version" "2.0.3" - -"execa@^5.0.0": - "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" - "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - "version" "5.1.1" - dependencies: - "cross-spawn" "^7.0.3" - "get-stream" "^6.0.0" - "human-signals" "^2.1.0" - "is-stream" "^2.0.0" - "merge-stream" "^2.0.0" - "npm-run-path" "^4.0.1" - "onetime" "^5.1.2" - "signal-exit" "^3.0.3" - "strip-final-newline" "^2.0.0" - -"exit@^0.1.2": - "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - "version" "0.1.2" - -"expand-tilde@^2.0.0", "expand-tilde@^2.0.2": - "integrity" "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=" - "resolved" "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "homedir-polyfill" "^1.0.1" - -"expect@^27.5.1": - "integrity" "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==" - "resolved" "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz" - "version" "27.5.1" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== dependencies: "@jest/types" "^27.5.1" - "jest-get-type" "^27.5.1" - "jest-matcher-utils" "^27.5.1" - "jest-message-util" "^27.5.1" - -"external-editor@^3.0.3": - "integrity" "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==" - "resolved" "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "chardet" "^0.7.0" - "iconv-lite" "^0.4.24" - "tmp" "^0.0.33" - -"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3": - "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - "version" "3.1.3" - -"fast-diff@^1.1.2": - "integrity" "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" - "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" - "version" "1.2.0" - -"fast-glob@^3.1.1": - "integrity" "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==" - "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz" - "version" "3.2.7" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.1.1: + version "3.2.7" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - "glob-parent" "^5.1.2" - "merge2" "^1.3.0" - "micromatch" "^4.0.4" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" -"fast-json-stable-stringify@^2.0.0", "fast-json-stable-stringify@2.x": - "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - "version" "2.1.0" +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -"fast-levenshtein@^2.0.6", "fast-levenshtein@~2.0.6": - "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - "version" "2.0.6" +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -"fastq@^1.6.0": - "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" - "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" - "version" "1.13.0" +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: - "reusify" "^1.0.4" + reusify "^1.0.4" -"fb-watchman@^2.0.0": - "integrity" "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==" - "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" - "version" "2.0.1" +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== dependencies: - "bser" "2.1.1" + bser "2.1.1" -"figures@^2.0.0": - "integrity" "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=" - "resolved" "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" - "version" "2.0.0" +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: - "escape-string-regexp" "^1.0.5" + escape-string-regexp "^1.0.5" -"file-entry-cache@^6.0.1": - "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==" - "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - "version" "6.0.1" +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - "flat-cache" "^3.0.4" + flat-cache "^3.0.4" -"fill-range@^7.0.1": - "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" - "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - "version" "7.0.1" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: - "to-regex-range" "^5.0.1" + to-regex-range "^5.0.1" -"find-cache-dir@^2.0.0": - "integrity" "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==" - "resolved" "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" - "version" "2.1.0" +find-cache-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: - "commondir" "^1.0.1" - "make-dir" "^2.0.0" - "pkg-dir" "^3.0.0" + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" -"find-node-modules@^2.1.2": - "integrity" "sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug==" - "resolved" "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz" - "version" "2.1.2" +find-node-modules@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz" + integrity sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug== dependencies: - "findup-sync" "^4.0.0" - "merge" "^2.1.0" + findup-sync "^4.0.0" + merge "^2.1.0" -"find-root@1.1.0": - "integrity" "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - "resolved" "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" - "version" "1.1.0" +find-root@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== -"find-up@^2.0.0": - "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "locate-path" "^2.0.0" - -"find-up@^3.0.0", "find-up@3.0.0": - "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "locate-path" "^3.0.0" - -"find-up@^4.0.0", "find-up@^4.1.0": - "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "locate-path" "^5.0.0" - "path-exists" "^4.0.0" - -"find-up@^5.0.0": - "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "locate-path" "^6.0.0" - "path-exists" "^4.0.0" - -"find-versions@^4.0.0": - "integrity" "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==" - "resolved" "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "semver-regex" "^3.1.2" - -"findup-sync@^4.0.0": - "integrity" "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==" - "resolved" "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "detect-file" "^1.0.0" - "is-glob" "^4.0.0" - "micromatch" "^4.0.2" - "resolve-dir" "^1.0.1" - -"flat-cache@^3.0.4": - "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==" - "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "flatted" "^3.1.0" - "rimraf" "^3.0.2" - -"flat@^4.1.0": - "integrity" "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==" - "resolved" "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz" - "version" "4.1.1" - dependencies: - "is-buffer" "~2.0.3" - -"flatted@^3.1.0": - "integrity" "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==" - "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz" - "version" "3.2.2" - -"form-data@^3.0.0": - "integrity" "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==" - "resolved" "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "asynckit" "^0.4.0" - "combined-stream" "^1.0.8" - "mime-types" "^2.1.12" - -"fs-extra@8.1.0": - "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" - "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" - "version" "8.1.0" - dependencies: - "graceful-fs" "^4.2.0" - "jsonfile" "^4.0.0" - "universalify" "^0.1.0" - -"fs.realpath@^1.0.0": - "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - "version" "1.0.0" - -"function-bind@^1.1.1": - "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - "version" "1.1.1" - -"functional-red-black-tree@^1.0.1": - "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" - "version" "1.0.1" - -"gensync@^1.0.0-beta.2": - "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - "version" "1.0.0-beta.2" - -"get-caller-file@^2.0.1", "get-caller-file@^2.0.5": - "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - "version" "2.0.5" - -"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1": - "integrity" "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" - "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - "version" "1.1.1" - dependencies: - "function-bind" "^1.1.1" - "has" "^1.0.3" - "has-symbols" "^1.0.1" - -"get-package-type@^0.1.0": - "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - "resolved" "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - "version" "0.1.0" - -"get-stdin@7.0.0": - "integrity" "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==" - "resolved" "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz" - "version" "7.0.0" - -"get-stream@^6.0.0": - "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - "version" "6.0.1" - -"get-symbol-description@^1.0.0": - "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" - "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "call-bind" "^1.0.2" - "get-intrinsic" "^1.1.1" - -"git-raw-commits@^2.0.0": - "integrity" "sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==" - "resolved" "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz" - "version" "2.0.10" - dependencies: - "dargs" "^7.0.0" - "lodash" "^4.17.15" - "meow" "^8.0.0" - "split2" "^3.0.0" - "through2" "^4.0.0" - -"glob-parent@^5.1.2", "glob-parent@~5.1.0": - "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "is-glob" "^4.0.1" - -"glob@^7.1.1", "glob@^7.1.2", "glob@^7.1.3", "glob@^7.1.4", "glob@7.1.4": - "integrity" "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz" - "version" "7.1.4" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.0.4" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"glob@7.1.3": - "integrity" "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" - "version" "7.1.3" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.0.4" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"global-dirs@^0.1.1": - "integrity" "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=" - "resolved" "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" - "version" "0.1.1" - dependencies: - "ini" "^1.3.4" - -"global-modules@^1.0.0": - "integrity" "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==" - "resolved" "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "global-prefix" "^1.0.1" - "is-windows" "^1.0.1" - "resolve-dir" "^1.0.0" - -"global-prefix@^1.0.1": - "integrity" "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=" - "resolved" "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "expand-tilde" "^2.0.2" - "homedir-polyfill" "^1.0.1" - "ini" "^1.3.4" - "is-windows" "^1.0.1" - "which" "^1.2.14" - -"globals@^11.1.0": - "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - "version" "11.12.0" - -"globals@^13.6.0": - "integrity" "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==" - "resolved" "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz" - "version" "13.11.0" - dependencies: - "type-fest" "^0.20.2" - -"globals@^13.9.0": - "integrity" "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==" - "resolved" "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz" - "version" "13.11.0" - dependencies: - "type-fest" "^0.20.2" - -"globby@^11.0.3": - "integrity" "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==" - "resolved" "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz" - "version" "11.0.4" - dependencies: - "array-union" "^2.1.0" - "dir-glob" "^3.0.1" - "fast-glob" "^3.1.1" - "ignore" "^5.1.4" - "merge2" "^1.3.0" - "slash" "^3.0.0" - -"graceful-fs@^4.1.2", "graceful-fs@^4.1.3", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.9": - "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - "version" "4.2.10" - -"graphql-js-tree@^0.1.1": - "integrity" "sha512-mPEqogLPmsoUzCi0WVddPFHBdCAQikwaYPe8kn6/+ft81ziei5qutP+cpquvFU5eBVHCFzx0PH5Khc9kutOkeQ==" - "resolved" "https://registry.npmjs.org/graphql-js-tree/-/graphql-js-tree-0.1.1.tgz" - "version" "0.1.1" - dependencies: - "graphql" "^15.4.0" - -"graphql@*", "graphql@^16.5.0": - "integrity" "sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA==" - "resolved" "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz" - "version" "16.5.0" - -"graphql@^15.4.0": - "integrity" "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" - "resolved" "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" - "version" "15.8.0" - -"growl@1.10.5": - "integrity" "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" - "resolved" "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" - "version" "1.10.5" - -"hard-rejection@^2.1.0": - "integrity" "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - "resolved" "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" - "version" "2.1.0" - -"has-bigints@^1.0.1": - "integrity" "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" - "version" "1.0.1" - -"has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - "version" "3.0.0" - -"has-flag@^4.0.0": - "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - "version" "4.0.0" - -"has-symbols@^1.0.0", "has-symbols@^1.0.1", "has-symbols@^1.0.2": - "integrity" "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" - "version" "1.0.2" - -"has-tostringtag@^1.0.0": - "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" - "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "has-symbols" "^1.0.2" - -"has@^1.0.3": - "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" - "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "function-bind" "^1.1.1" - -"he@1.2.0": - "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - "version" "1.2.0" - -"homedir-polyfill@^1.0.1": - "integrity" "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==" - "resolved" "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "parse-passwd" "^1.0.0" - -"hosted-git-info@^2.1.4": - "integrity" "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" - "version" "2.8.9" - -"hosted-git-info@^4.0.1": - "integrity" "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==" - "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz" - "version" "4.0.2" - dependencies: - "lru-cache" "^6.0.0" - -"html-encoding-sniffer@^2.0.1": - "integrity" "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==" - "resolved" "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "whatwg-encoding" "^1.0.5" - -"html-escaper@^2.0.0": - "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - "resolved" "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - "version" "2.0.2" - -"http-proxy-agent@^4.0.1": - "integrity" "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==" - "resolved" "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" - "version" "4.0.1" +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-versions@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz" + integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== + dependencies: + semver-regex "^3.1.2" + +findup-sync@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz" + integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^4.0.2" + resolve-dir "^1.0.1" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flat@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz" + integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== + dependencies: + is-buffer "~2.0.3" + +flatted@^3.1.0: + version "3.2.2" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs-extra@8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +fsevents@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stdin@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +git-raw-commits@^2.0.0: + version "2.0.10" + resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz" + integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== + dependencies: + dargs "^7.0.0" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.1.3: + version "7.1.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.4, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.4" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== + dependencies: + type-fest "^0.20.2" + +globby@^11.0.3: + version "11.0.4" + resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graphql-js-tree@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/graphql-js-tree/-/graphql-js-tree-0.1.1.tgz" + integrity sha512-mPEqogLPmsoUzCi0WVddPFHBdCAQikwaYPe8kn6/+ft81ziei5qutP+cpquvFU5eBVHCFzx0PH5Khc9kutOkeQ== + dependencies: + graphql "^15.4.0" + +graphql-ws@^5.8.2: + version "5.8.2" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.8.2.tgz#800184b1addb20b3010dc06cb70877703a5fff20" + integrity sha512-hYo8kTGzxePFJtMGC7Y4cbypwifMphIJJ7n4TDcVUAfviRwQBnmZAbfZlC+XFwWDUaR7raEDQPxWctpccmE0JQ== + +graphql@*, graphql@^15.4.0: + version "15.6.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-15.6.0.tgz" + integrity sha512-WJR872Zlc9hckiEPhXgyUftXH48jp2EjO5tgBBOyNMRJZ9fviL2mJBD6CAysk6N5S0r9BTs09Qk39nnJBkvOXQ== + +graphql@^16.5.0: + version "16.5.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz" + integrity sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz" + integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + dependencies: + lru-cache "^6.0.0" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: "@tootallnate/once" "1" - "agent-base" "6" - "debug" "4" - -"https-proxy-agent@^5.0.0": - "integrity" "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==" - "resolved" "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "agent-base" "6" - "debug" "4" - -"human-signals@^2.1.0": - "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - "version" "2.1.0" - -"husky@^4.2.3": - "integrity" "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==" - "resolved" "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz" - "version" "4.3.8" - dependencies: - "chalk" "^4.0.0" - "ci-info" "^2.0.0" - "compare-versions" "^3.6.0" - "cosmiconfig" "^7.0.0" - "find-versions" "^4.0.0" - "opencollective-postinstall" "^2.0.2" - "pkg-dir" "^5.0.0" - "please-upgrade-node" "^3.2.0" - "slash" "^3.0.0" - "which-pm-runs" "^1.0.0" - -"iconv-lite@^0.4.24", "iconv-lite@0.4.24": - "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" - "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - "version" "0.4.24" - dependencies: - "safer-buffer" ">= 2.1.2 < 3" - -"ignore@^4.0.6": - "integrity" "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - "resolved" "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" - "version" "4.0.6" - -"ignore@^5.1.4", "ignore@^5.1.8": - "integrity" "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" - "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" - "version" "5.1.8" - -"import-fresh@^2.0.0": - "integrity" "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=" - "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "caller-path" "^2.0.0" - "resolve-from" "^3.0.0" - -"import-fresh@^3.0.0", "import-fresh@^3.2.1": - "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" - "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - "version" "3.3.0" - dependencies: - "parent-module" "^1.0.0" - "resolve-from" "^4.0.0" - -"import-local@^3.0.2": - "integrity" "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==" - "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "pkg-dir" "^4.2.0" - "resolve-cwd" "^3.0.0" - -"imurmurhash@^0.1.4": - "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - "version" "0.1.4" - -"indent-string@^3.0.0": - "integrity" "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" - "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz" - "version" "3.2.0" - -"indent-string@^4.0.0": - "integrity" "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - "version" "4.0.0" - -"inflight@^1.0.4": - "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" - "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "once" "^1.3.0" - "wrappy" "1" - -"inherits@^2.0.3", "inherits@2": - "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - "version" "2.0.4" - -"ini@^1.3.4": - "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - "version" "1.3.8" - -"inquirer@6.5.2": - "integrity" "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==" - "resolved" "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz" - "version" "6.5.2" - dependencies: - "ansi-escapes" "^3.2.0" - "chalk" "^2.4.2" - "cli-cursor" "^2.1.0" - "cli-width" "^2.0.0" - "external-editor" "^3.0.3" - "figures" "^2.0.0" - "lodash" "^4.17.12" - "mute-stream" "0.0.7" - "run-async" "^2.2.0" - "rxjs" "^6.4.0" - "string-width" "^2.1.0" - "strip-ansi" "^5.1.0" - "through" "^2.3.6" - -"internal-slot@^1.0.3": - "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==" - "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "get-intrinsic" "^1.1.0" - "has" "^1.0.3" - "side-channel" "^1.0.4" - -"is-arrayish@^0.2.1": - "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - "version" "0.2.1" - -"is-bigint@^1.0.1": - "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" - "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "has-bigints" "^1.0.1" - -"is-binary-path@~2.1.0": - "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" - "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "binary-extensions" "^2.0.0" - -"is-boolean-object@^1.1.0": - "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" - "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - "version" "1.1.2" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" - -"is-buffer@~2.0.3": - "integrity" "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" - "version" "2.0.5" - -"is-callable@^1.1.4", "is-callable@^1.2.4": - "integrity" "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" - "version" "1.2.4" - -"is-core-module@^2.2.0", "is-core-module@^2.5.0": - "integrity" "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==" - "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz" - "version" "2.7.0" - dependencies: - "has" "^1.0.3" - -"is-date-object@^1.0.1": - "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" - "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-directory@^0.3.1": - "integrity" "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - "resolved" "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" - "version" "0.3.1" - -"is-extglob@^2.1.1": - "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - "version" "2.1.1" - -"is-fullwidth-code-point@^2.0.0": - "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - "version" "2.0.0" - -"is-fullwidth-code-point@^3.0.0": - "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - "version" "3.0.0" - -"is-generator-fn@^2.0.0": - "integrity" "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - "version" "2.1.0" - -"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@~4.0.1": - "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" - "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - "version" "4.0.3" - dependencies: - "is-extglob" "^2.1.1" - -"is-negative-zero@^2.0.1": - "integrity" "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" - "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" - "version" "2.0.1" - -"is-number-object@^1.0.4": - "integrity" "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==" - "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-number@^7.0.0": - "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - "version" "7.0.0" - -"is-obj@^1.0.0": - "integrity" "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" - "version" "1.0.1" - -"is-plain-obj@^1.1.0": - "integrity" "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - "version" "1.1.0" - -"is-plain-object@^2.0.4": - "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" - "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - "version" "2.0.4" - dependencies: - "isobject" "^3.0.1" - -"is-potential-custom-element-name@^1.0.1": - "integrity" "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - "resolved" "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" - "version" "1.0.1" - -"is-regex@^1.1.4": - "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" - "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - "version" "1.1.4" - dependencies: - "call-bind" "^1.0.2" - "has-tostringtag" "^1.0.0" - -"is-stream@^2.0.0": - "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - "version" "2.0.1" - -"is-string@^1.0.5", "is-string@^1.0.7": - "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" - "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - "version" "1.0.7" - dependencies: - "has-tostringtag" "^1.0.0" - -"is-symbol@^1.0.2", "is-symbol@^1.0.3": - "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" - "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "has-symbols" "^1.0.2" - -"is-text-path@^1.0.1": - "integrity" "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=" - "resolved" "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "text-extensions" "^1.0.0" - -"is-typedarray@^1.0.0": - "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - "version" "1.0.0" - -"is-utf8@^0.2.1": - "integrity" "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - "resolved" "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" - "version" "0.2.1" - -"is-windows@^1.0.1": - "integrity" "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - "resolved" "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" - "version" "1.0.2" - -"isexe@^2.0.0": - "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - "version" "2.0.0" - -"isobject@^3.0.1": - "integrity" "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - "version" "3.0.1" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +husky@^4.2.3: + version "4.3.8" + resolved "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz" + integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== + dependencies: + chalk "^4.0.0" + ci-info "^2.0.0" + compare-versions "^3.6.0" + cosmiconfig "^7.0.0" + find-versions "^4.0.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^5.0.0" + please-upgrade-node "^3.2.0" + slash "^3.0.0" + which-pm-runs "^1.0.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4, ignore@^5.1.8: + version "5.1.8" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@6.5.2: + version "6.5.2" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@~2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-core-module@^2.2.0, is-core-module@^2.5.0: + version "2.7.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz" + integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= + dependencies: + text-extensions "^1.0.0" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -"istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0": - "integrity" "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" - "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - "version" "3.2.0" - -"istanbul-lib-instrument@^5.0.4", "istanbul-lib-instrument@^5.1.0": - "integrity" "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==" - "resolved" "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz" - "version" "5.1.0" +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" "@istanbuljs/schema" "^0.1.2" - "istanbul-lib-coverage" "^3.2.0" - "semver" "^6.3.0" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" -"istanbul-lib-report@^3.0.0": - "integrity" "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==" - "resolved" "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - "version" "3.0.0" +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== dependencies: - "istanbul-lib-coverage" "^3.0.0" - "make-dir" "^3.0.0" - "supports-color" "^7.1.0" + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" -"istanbul-lib-source-maps@^4.0.0": - "integrity" "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==" - "resolved" "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz" - "version" "4.0.0" +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== dependencies: - "debug" "^4.1.1" - "istanbul-lib-coverage" "^3.0.0" - "source-map" "^0.6.1" + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" -"istanbul-reports@^3.1.3": - "integrity" "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==" - "resolved" "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz" - "version" "3.1.4" +istanbul-reports@^3.1.3: + version "3.1.4" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz" + integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== dependencies: - "html-escaper" "^2.0.0" - "istanbul-lib-report" "^3.0.0" + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" -"jest-changed-files@^27.5.1": - "integrity" "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==" - "resolved" "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz" - "version" "27.5.1" +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== dependencies: "@jest/types" "^27.5.1" - "execa" "^5.0.0" - "throat" "^6.0.1" + execa "^5.0.0" + throat "^6.0.1" -"jest-circus@^27.5.1": - "integrity" "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==" - "resolved" "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz" - "version" "27.5.1" +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== dependencies: "@jest/environment" "^27.5.1" "@jest/test-result" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - "chalk" "^4.0.0" - "co" "^4.6.0" - "dedent" "^0.7.0" - "expect" "^27.5.1" - "is-generator-fn" "^2.0.0" - "jest-each" "^27.5.1" - "jest-matcher-utils" "^27.5.1" - "jest-message-util" "^27.5.1" - "jest-runtime" "^27.5.1" - "jest-snapshot" "^27.5.1" - "jest-util" "^27.5.1" - "pretty-format" "^27.5.1" - "slash" "^3.0.0" - "stack-utils" "^2.0.3" - "throat" "^6.0.1" - -"jest-cli@^27.5.1": - "integrity" "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==" - "resolved" "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz" - "version" "27.5.1" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== dependencies: "@jest/core" "^27.5.1" "@jest/test-result" "^27.5.1" "@jest/types" "^27.5.1" - "chalk" "^4.0.0" - "exit" "^0.1.2" - "graceful-fs" "^4.2.9" - "import-local" "^3.0.2" - "jest-config" "^27.5.1" - "jest-util" "^27.5.1" - "jest-validate" "^27.5.1" - "prompts" "^2.0.1" - "yargs" "^16.2.0" - -"jest-config@^27.5.1": - "integrity" "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==" - "resolved" "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz" - "version" "27.5.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + prompts "^2.0.1" + yargs "^16.2.0" + +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== dependencies: "@babel/core" "^7.8.0" "@jest/test-sequencer" "^27.5.1" "@jest/types" "^27.5.1" - "babel-jest" "^27.5.1" - "chalk" "^4.0.0" - "ci-info" "^3.2.0" - "deepmerge" "^4.2.2" - "glob" "^7.1.1" - "graceful-fs" "^4.2.9" - "jest-circus" "^27.5.1" - "jest-environment-jsdom" "^27.5.1" - "jest-environment-node" "^27.5.1" - "jest-get-type" "^27.5.1" - "jest-jasmine2" "^27.5.1" - "jest-regex-util" "^27.5.1" - "jest-resolve" "^27.5.1" - "jest-runner" "^27.5.1" - "jest-util" "^27.5.1" - "jest-validate" "^27.5.1" - "micromatch" "^4.0.4" - "parse-json" "^5.2.0" - "pretty-format" "^27.5.1" - "slash" "^3.0.0" - "strip-json-comments" "^3.1.1" - -"jest-diff@^27.5.1": - "integrity" "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==" - "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz" - "version" "27.5.1" - dependencies: - "chalk" "^4.0.0" - "diff-sequences" "^27.5.1" - "jest-get-type" "^27.5.1" - "pretty-format" "^27.5.1" - -"jest-docblock@^27.5.1": - "integrity" "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==" - "resolved" "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz" - "version" "27.5.1" - dependencies: - "detect-newline" "^3.0.0" - -"jest-each@^27.5.1": - "integrity" "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==" - "resolved" "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz" - "version" "27.5.1" + babel-jest "^27.5.1" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^27.5.1" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== dependencies: "@jest/types" "^27.5.1" - "chalk" "^4.0.0" - "jest-get-type" "^27.5.1" - "jest-util" "^27.5.1" - "pretty-format" "^27.5.1" + chalk "^4.0.0" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" -"jest-environment-jsdom@^27.5.1": - "integrity" "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==" - "resolved" "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz" - "version" "27.5.1" +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== dependencies: "@jest/environment" "^27.5.1" "@jest/fake-timers" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - "jest-mock" "^27.5.1" - "jest-util" "^27.5.1" - "jsdom" "^16.6.0" + jest-mock "^27.5.1" + jest-util "^27.5.1" + jsdom "^16.6.0" -"jest-environment-node@^27.5.1": - "integrity" "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==" - "resolved" "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz" - "version" "27.5.1" +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== dependencies: "@jest/environment" "^27.5.1" "@jest/fake-timers" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - "jest-mock" "^27.5.1" - "jest-util" "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" -"jest-get-type@^27.5.1": - "integrity" "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" - "version" "27.5.1" +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -"jest-haste-map@^27.5.1": - "integrity" "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==" - "resolved" "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz" - "version" "27.5.1" +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== dependencies: "@jest/types" "^27.5.1" "@types/graceful-fs" "^4.1.2" "@types/node" "*" - "anymatch" "^3.0.3" - "fb-watchman" "^2.0.0" - "graceful-fs" "^4.2.9" - "jest-regex-util" "^27.5.1" - "jest-serializer" "^27.5.1" - "jest-util" "^27.5.1" - "jest-worker" "^27.5.1" - "micromatch" "^4.0.4" - "walker" "^1.0.7" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" optionalDependencies: - "fsevents" "^2.3.2" + fsevents "^2.3.2" -"jest-jasmine2@^27.5.1": - "integrity" "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==" - "resolved" "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz" - "version" "27.5.1" +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== dependencies: "@jest/environment" "^27.5.1" "@jest/source-map" "^27.5.1" "@jest/test-result" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - "chalk" "^4.0.0" - "co" "^4.6.0" - "expect" "^27.5.1" - "is-generator-fn" "^2.0.0" - "jest-each" "^27.5.1" - "jest-matcher-utils" "^27.5.1" - "jest-message-util" "^27.5.1" - "jest-runtime" "^27.5.1" - "jest-snapshot" "^27.5.1" - "jest-util" "^27.5.1" - "pretty-format" "^27.5.1" - "throat" "^6.0.1" - -"jest-leak-detector@^27.5.1": - "integrity" "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==" - "resolved" "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz" - "version" "27.5.1" - dependencies: - "jest-get-type" "^27.5.1" - "pretty-format" "^27.5.1" - -"jest-matcher-utils@^27.0.0", "jest-matcher-utils@^27.5.1": - "integrity" "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==" - "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz" - "version" "27.5.1" - dependencies: - "chalk" "^4.0.0" - "jest-diff" "^27.5.1" - "jest-get-type" "^27.5.1" - "pretty-format" "^27.5.1" - -"jest-message-util@^27.5.1": - "integrity" "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==" - "resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz" - "version" "27.5.1" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + throat "^6.0.1" + +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== + dependencies: + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== dependencies: "@babel/code-frame" "^7.12.13" "@jest/types" "^27.5.1" "@types/stack-utils" "^2.0.0" - "chalk" "^4.0.0" - "graceful-fs" "^4.2.9" - "micromatch" "^4.0.4" - "pretty-format" "^27.5.1" - "slash" "^3.0.0" - "stack-utils" "^2.0.3" - -"jest-mock@^27.5.1": - "integrity" "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==" - "resolved" "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz" - "version" "27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== dependencies: "@jest/types" "^27.5.1" "@types/node" "*" -"jest-pnp-resolver@^1.2.2": - "integrity" "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" - "resolved" "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" - "version" "1.2.2" +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -"jest-regex-util@^27.5.1": - "integrity" "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" - "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz" - "version" "27.5.1" +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== -"jest-resolve-dependencies@^27.5.1": - "integrity" "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==" - "resolved" "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz" - "version" "27.5.1" +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== dependencies: "@jest/types" "^27.5.1" - "jest-regex-util" "^27.5.1" - "jest-snapshot" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" -"jest-resolve@*", "jest-resolve@^27.5.1": - "integrity" "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==" - "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz" - "version" "27.5.1" +jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== dependencies: "@jest/types" "^27.5.1" - "chalk" "^4.0.0" - "graceful-fs" "^4.2.9" - "jest-haste-map" "^27.5.1" - "jest-pnp-resolver" "^1.2.2" - "jest-util" "^27.5.1" - "jest-validate" "^27.5.1" - "resolve" "^1.20.0" - "resolve.exports" "^1.1.0" - "slash" "^3.0.0" - -"jest-runner@^27.5.1": - "integrity" "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==" - "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz" - "version" "27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-pnp-resolver "^1.2.2" + jest-util "^27.5.1" + jest-validate "^27.5.1" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== dependencies: "@jest/console" "^27.5.1" "@jest/environment" "^27.5.1" @@ -3827,26 +3821,26 @@ "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - "chalk" "^4.0.0" - "emittery" "^0.8.1" - "graceful-fs" "^4.2.9" - "jest-docblock" "^27.5.1" - "jest-environment-jsdom" "^27.5.1" - "jest-environment-node" "^27.5.1" - "jest-haste-map" "^27.5.1" - "jest-leak-detector" "^27.5.1" - "jest-message-util" "^27.5.1" - "jest-resolve" "^27.5.1" - "jest-runtime" "^27.5.1" - "jest-util" "^27.5.1" - "jest-worker" "^27.5.1" - "source-map-support" "^0.5.6" - "throat" "^6.0.1" - -"jest-runtime@^27.5.1": - "integrity" "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==" - "resolved" "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz" - "version" "27.5.1" + chalk "^4.0.0" + emittery "^0.8.1" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== dependencies: "@jest/environment" "^27.5.1" "@jest/fake-timers" "^27.5.1" @@ -3855,34 +3849,34 @@ "@jest/test-result" "^27.5.1" "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" - "chalk" "^4.0.0" - "cjs-module-lexer" "^1.0.0" - "collect-v8-coverage" "^1.0.0" - "execa" "^5.0.0" - "glob" "^7.1.3" - "graceful-fs" "^4.2.9" - "jest-haste-map" "^27.5.1" - "jest-message-util" "^27.5.1" - "jest-mock" "^27.5.1" - "jest-regex-util" "^27.5.1" - "jest-resolve" "^27.5.1" - "jest-snapshot" "^27.5.1" - "jest-util" "^27.5.1" - "slash" "^3.0.0" - "strip-bom" "^4.0.0" - -"jest-serializer@^27.5.1": - "integrity" "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==" - "resolved" "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz" - "version" "27.5.1" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== dependencies: "@types/node" "*" - "graceful-fs" "^4.2.9" + graceful-fs "^4.2.9" -"jest-snapshot@^27.5.1": - "integrity" "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==" - "resolved" "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz" - "version" "27.5.1" +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" @@ -3893,2232 +3887,2093 @@ "@jest/types" "^27.5.1" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" - "babel-preset-current-node-syntax" "^1.0.0" - "chalk" "^4.0.0" - "expect" "^27.5.1" - "graceful-fs" "^4.2.9" - "jest-diff" "^27.5.1" - "jest-get-type" "^27.5.1" - "jest-haste-map" "^27.5.1" - "jest-matcher-utils" "^27.5.1" - "jest-message-util" "^27.5.1" - "jest-util" "^27.5.1" - "natural-compare" "^1.4.0" - "pretty-format" "^27.5.1" - "semver" "^7.3.2" - -"jest-util@^27.0.0", "jest-util@^27.5.1": - "integrity" "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==" - "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz" - "version" "27.5.1" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + natural-compare "^1.4.0" + pretty-format "^27.5.1" + semver "^7.3.2" + +jest-util@^27.0.0, jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== dependencies: "@jest/types" "^27.5.1" "@types/node" "*" - "chalk" "^4.0.0" - "ci-info" "^3.2.0" - "graceful-fs" "^4.2.9" - "picomatch" "^2.2.3" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" -"jest-validate@^27.5.1": - "integrity" "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==" - "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz" - "version" "27.5.1" +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== dependencies: "@jest/types" "^27.5.1" - "camelcase" "^6.2.0" - "chalk" "^4.0.0" - "jest-get-type" "^27.5.1" - "leven" "^3.1.0" - "pretty-format" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" -"jest-watcher@^27.5.1": - "integrity" "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==" - "resolved" "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz" - "version" "27.5.1" +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== dependencies: "@jest/test-result" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - "ansi-escapes" "^4.2.1" - "chalk" "^4.0.0" - "jest-util" "^27.5.1" - "string-length" "^4.0.1" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.5.1" + string-length "^4.0.1" -"jest-worker@^27.5.1": - "integrity" "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==" - "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" - "version" "27.5.1" +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" - "merge-stream" "^2.0.0" - "supports-color" "^8.0.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" -"jest@^27.0.0", "jest@^27.5.1": - "integrity" "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==" - "resolved" "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz" - "version" "27.5.1" +jest@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== dependencies: "@jest/core" "^27.5.1" - "import-local" "^3.0.2" - "jest-cli" "^27.5.1" - -"js-tokens@^4.0.0": - "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - "version" "4.0.0" - -"js-yaml@^3.13.1": - "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - "version" "3.14.1" - dependencies: - "argparse" "^1.0.7" - "esprima" "^4.0.0" - -"js-yaml@3.13.1": - "integrity" "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" - "version" "3.13.1" - dependencies: - "argparse" "^1.0.7" - "esprima" "^4.0.0" - -"jsdom@^16.6.0": - "integrity" "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==" - "resolved" "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" - "version" "16.7.0" - dependencies: - "abab" "^2.0.5" - "acorn" "^8.2.4" - "acorn-globals" "^6.0.0" - "cssom" "^0.4.4" - "cssstyle" "^2.3.0" - "data-urls" "^2.0.0" - "decimal.js" "^10.2.1" - "domexception" "^2.0.1" - "escodegen" "^2.0.0" - "form-data" "^3.0.0" - "html-encoding-sniffer" "^2.0.1" - "http-proxy-agent" "^4.0.1" - "https-proxy-agent" "^5.0.0" - "is-potential-custom-element-name" "^1.0.1" - "nwsapi" "^2.2.0" - "parse5" "6.0.1" - "saxes" "^5.0.1" - "symbol-tree" "^3.2.4" - "tough-cookie" "^4.0.0" - "w3c-hr-time" "^1.0.2" - "w3c-xmlserializer" "^2.0.0" - "webidl-conversions" "^6.1.0" - "whatwg-encoding" "^1.0.5" - "whatwg-mimetype" "^2.3.0" - "whatwg-url" "^8.5.0" - "ws" "^7.4.6" - "xml-name-validator" "^3.0.0" - -"jsesc@^2.5.1": - "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - "version" "2.5.2" - -"jsesc@~0.5.0": - "integrity" "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - "version" "0.5.0" - -"json-parse-better-errors@^1.0.1": - "integrity" "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - "resolved" "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - "version" "1.0.2" - -"json-parse-even-better-errors@^2.3.0": - "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - "version" "2.3.1" - -"json-schema-traverse@^0.4.1": - "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - "version" "0.4.1" - -"json-schema-traverse@^1.0.0": - "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - "version" "1.0.0" - -"json-schema@^0.3.0": - "integrity" "sha512-TYfxx36xfl52Rf1LU9HyWSLGPdYLL+SQ8/E/0yVyKG8wCCDaSrhPap0vEdlsZWRaS6tnKKLPGiEJGiREVC8kxQ==" - "resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.3.0.tgz" - "version" "0.3.0" - -"json-stable-stringify-without-jsonify@^1.0.1": - "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - "version" "1.0.1" - -"json5@^2.1.2", "json5@2.x": - "integrity" "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" - "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "minimist" "^1.2.5" - -"jsonfile@^4.0.0": - "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" - "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - "version" "4.0.0" + import-local "^3.0.2" + jest-cli "^27.5.1" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@3.13.1: + version "3.13.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.3.0.tgz" + integrity sha512-TYfxx36xfl52Rf1LU9HyWSLGPdYLL+SQ8/E/0yVyKG8wCCDaSrhPap0vEdlsZWRaS6tnKKLPGiEJGiREVC8kxQ== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json5@2.x, json5@^2.1.2: + version "2.2.0" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: - "graceful-fs" "^4.1.6" - -"jsonparse@^1.2.0": - "integrity" "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - "resolved" "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" - "version" "1.3.1" - -"JSONStream@^1.0.4": - "integrity" "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==" - "resolved" "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - "version" "1.3.5" - dependencies: - "jsonparse" "^1.2.0" - "through" ">=2.2.7 <3" - -"kind-of@^6.0.2", "kind-of@^6.0.3": - "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - "version" "6.0.3" - -"kleur@^3.0.3": - "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - "version" "3.0.3" - -"leven@^3.1.0": - "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - "version" "3.1.0" - -"levn@^0.4.1": - "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==" - "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - "version" "0.4.1" - dependencies: - "prelude-ls" "^1.2.1" - "type-check" "~0.4.0" - -"levn@~0.3.0": - "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" - "resolved" "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - "version" "0.3.0" - dependencies: - "prelude-ls" "~1.1.2" - "type-check" "~0.3.2" - -"lines-and-columns@^1.1.6": - "integrity" "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" - "version" "1.1.6" - -"load-json-file@^4.0.0": - "integrity" "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=" - "resolved" "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "graceful-fs" "^4.1.2" - "parse-json" "^4.0.0" - "pify" "^3.0.0" - "strip-bom" "^3.0.0" - -"locate-path@^2.0.0": - "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "p-locate" "^2.0.0" - "path-exists" "^3.0.0" - -"locate-path@^3.0.0": - "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "p-locate" "^3.0.0" - "path-exists" "^3.0.0" - -"locate-path@^5.0.0": - "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "p-locate" "^4.1.0" - -"locate-path@^6.0.0": - "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "p-locate" "^5.0.0" - -"lodash.clonedeep@^4.5.0": - "integrity" "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - "resolved" "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" - "version" "4.5.0" - -"lodash.debounce@^4.0.8": - "integrity" "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - "version" "4.0.8" - -"lodash.map@^4.5.1": - "integrity" "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" - "resolved" "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz" - "version" "4.6.0" - -"lodash.memoize@4.x": - "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - "version" "4.1.2" - -"lodash.merge@^4.6.2": - "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - "version" "4.6.2" - -"lodash.truncate@^4.4.2": - "integrity" "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" - "resolved" "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" - "version" "4.4.2" - -"lodash@^4.17.11", "lodash@^4.17.12", "lodash@^4.17.15", "lodash@^4.2.1", "lodash@^4.7.0", "lodash@4.17.15": - "integrity" "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz" - "version" "4.17.15" - -"lodash@^4.17.20": - "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - "version" "4.17.21" - -"log-symbols@3.0.0": - "integrity" "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==" - "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "chalk" "^2.4.2" - -"longest@^2.0.1": - "integrity" "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=" - "resolved" "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz" - "version" "2.0.1" - -"loud-rejection@^1.0.0": - "integrity" "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" - "resolved" "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" - "version" "1.6.0" - dependencies: - "currently-unhandled" "^0.4.1" - "signal-exit" "^3.0.0" - -"lru-cache@^6.0.0": - "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" - "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "yallist" "^4.0.0" - -"make-dir@^2.0.0", "make-dir@^2.1.0": - "integrity" "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==" - "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "pify" "^4.0.1" - "semver" "^5.6.0" - -"make-dir@^3.0.0": - "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" - "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "semver" "^6.0.0" - -"make-error@^1.1.1", "make-error@1.x": - "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - "version" "1.3.6" - -"makeerror@1.0.x": - "integrity" "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=" - "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" - "version" "1.0.11" - dependencies: - "tmpl" "1.0.x" - -"map-obj@^1.0.0": - "integrity" "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" - "version" "1.0.1" - -"map-obj@^2.0.0": - "integrity" "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=" - "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz" - "version" "2.0.0" - -"map-obj@^4.0.0": - "integrity" "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" - "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" - "version" "4.3.0" - -"meow@^8.0.0": - "integrity" "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==" - "resolved" "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz" - "version" "8.1.2" + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.map@^4.5.1: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.2.1, lodash@^4.7.0: + version "4.17.15" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lodash@^4.17.20: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +longest@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz" + integrity sha1-eB4YMpaqlPbU2RbcM10NF676I/g= + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +meow@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + yargs-parser "^10.0.0" + +meow@^8.0.0: + version "8.1.2" + resolved "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== dependencies: "@types/minimist" "^1.2.0" - "camelcase-keys" "^6.2.2" - "decamelize-keys" "^1.1.0" - "hard-rejection" "^2.1.0" - "minimist-options" "4.1.0" - "normalize-package-data" "^3.0.0" - "read-pkg-up" "^7.0.1" - "redent" "^3.0.0" - "trim-newlines" "^3.0.0" - "type-fest" "^0.18.0" - "yargs-parser" "^20.2.3" - -"meow@5.0.0": - "integrity" "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==" - "resolved" "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "camelcase-keys" "^4.0.0" - "decamelize-keys" "^1.0.0" - "loud-rejection" "^1.0.0" - "minimist-options" "^3.0.1" - "normalize-package-data" "^2.3.4" - "read-pkg-up" "^3.0.0" - "redent" "^2.0.0" - "trim-newlines" "^2.0.0" - "yargs-parser" "^10.0.0" - -"merge-stream@^2.0.0": - "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - "version" "2.0.0" - -"merge@^2.1.0": - "integrity" "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" - "resolved" "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz" - "version" "2.1.1" - -"merge2@^1.3.0": - "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - "version" "1.4.1" - -"micromatch@^4.0.2", "micromatch@^4.0.4": - "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==" - "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" - "version" "4.0.4" - dependencies: - "braces" "^3.0.1" - "picomatch" "^2.2.3" - -"mime-db@1.49.0": - "integrity" "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" - "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz" - "version" "1.49.0" - -"mime-types@^2.1.12": - "integrity" "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==" - "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz" - "version" "2.1.32" - dependencies: - "mime-db" "1.49.0" - -"mimic-fn@^1.0.0": - "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" - "version" "1.2.0" - -"mimic-fn@^2.1.0": - "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - "version" "2.1.0" - -"min-indent@^1.0.0": - "integrity" "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" - "resolved" "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" - "version" "1.0.1" - -"minimatch@^3.0.4", "minimatch@3.0.4": - "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "brace-expansion" "^1.1.7" - -"minimist-options@^3.0.1": - "integrity" "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==" - "resolved" "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "arrify" "^1.0.1" - "is-plain-obj" "^1.1.0" - -"minimist-options@4.1.0": - "integrity" "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==" - "resolved" "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "arrify" "^1.0.1" - "is-plain-obj" "^1.1.0" - "kind-of" "^6.0.3" - -"minimist@^1.2.5", "minimist@1.2.5": - "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - "version" "1.2.5" - -"mkdirp@^0.5.1", "mkdirp@0.5.5": - "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - "version" "0.5.5" - dependencies: - "minimist" "^1.2.5" - -"mocha@^7.1.0": - "integrity" "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==" - "resolved" "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "ansi-colors" "3.2.3" - "browser-stdout" "1.3.1" - "chokidar" "3.3.0" - "debug" "3.2.6" - "diff" "3.5.0" - "escape-string-regexp" "1.0.5" - "find-up" "3.0.0" - "glob" "7.1.3" - "growl" "1.10.5" - "he" "1.2.0" - "js-yaml" "3.13.1" - "log-symbols" "3.0.0" - "minimatch" "3.0.4" - "mkdirp" "0.5.5" - "ms" "2.1.1" - "node-environment-flags" "1.0.6" - "object.assign" "4.1.0" - "strip-json-comments" "2.0.1" - "supports-color" "6.0.0" - "which" "1.3.1" - "wide-align" "1.1.3" - "yargs" "13.3.2" - "yargs-parser" "13.1.2" - "yargs-unparser" "1.6.0" - -"ms@^2.1.1", "ms@2.1.1": - "integrity" "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - "version" "2.1.1" - -"ms@2.1.2": - "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - "version" "2.1.2" - -"mute-stream@0.0.7": - "integrity" "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - "resolved" "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" - "version" "0.0.7" - -"nanocolors@^0.2.12": - "integrity" "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==" - "resolved" "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz" - "version" "0.2.12" - -"natural-compare@^1.4.0": - "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - "version" "1.4.0" - -"node-environment-flags@^1.0.5", "node-environment-flags@1.0.6": - "integrity" "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==" - "resolved" "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "object.getownpropertydescriptors" "^2.0.3" - "semver" "^5.7.0" - -"node-fetch@2.6.1": - "integrity" "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" - "version" "2.6.1" - -"node-int64@^0.4.0": - "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - "version" "0.4.0" - -"node-releases@^1.1.76": - "integrity" "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==" - "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz" - "version" "1.1.76" - -"normalize-package-data@^2.3.2", "normalize-package-data@^2.3.4": - "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" - "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - "version" "2.5.0" - dependencies: - "hosted-git-info" "^2.1.4" - "resolve" "^1.10.0" - "semver" "2 || 3 || 4 || 5" - "validate-npm-package-license" "^3.0.1" - -"normalize-package-data@^2.5.0": - "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" - "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - "version" "2.5.0" - dependencies: - "hosted-git-info" "^2.1.4" - "resolve" "^1.10.0" - "semver" "2 || 3 || 4 || 5" - "validate-npm-package-license" "^3.0.1" - -"normalize-package-data@^3.0.0": - "integrity" "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==" - "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" - "version" "3.0.3" - dependencies: - "hosted-git-info" "^4.0.1" - "is-core-module" "^2.5.0" - "semver" "^7.3.4" - "validate-npm-package-license" "^3.0.1" - -"normalize-path@^3.0.0", "normalize-path@~3.0.0": - "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - "version" "3.0.0" - -"npm-run-path@^4.0.1": - "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" - "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - "version" "4.0.1" - dependencies: - "path-key" "^3.0.0" - -"nwsapi@^2.2.0": - "integrity" "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - "resolved" "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" - "version" "2.2.0" - -"object-inspect@^1.11.0", "object-inspect@^1.9.0": - "integrity" "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" - "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" - "version" "1.11.0" - -"object-keys@^1.0.11", "object-keys@^1.0.12", "object-keys@^1.1.1": - "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - "version" "1.1.1" - -"object.assign@^4.1.0", "object.assign@^4.1.2": - "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" - "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "call-bind" "^1.0.0" - "define-properties" "^1.1.3" - "has-symbols" "^1.0.1" - "object-keys" "^1.1.1" - -"object.assign@4.1.0": - "integrity" "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==" - "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "define-properties" "^1.1.2" - "function-bind" "^1.1.1" - "has-symbols" "^1.0.0" - "object-keys" "^1.0.11" - -"object.getownpropertydescriptors@^2.0.3": - "integrity" "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==" - "resolved" "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz" - "version" "2.1.2" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - "es-abstract" "^1.18.0-next.2" - -"once@^1.3.0": - "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" - "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "wrappy" "1" - -"onetime@^2.0.0": - "integrity" "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" - "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "mimic-fn" "^1.0.0" - -"onetime@^5.1.2": - "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" - "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "mimic-fn" "^2.1.0" - -"opencollective-postinstall@^2.0.2": - "integrity" "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" - "resolved" "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" - "version" "2.0.3" - -"optionator@^0.8.1": - "integrity" "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==" - "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" - "version" "0.8.3" - dependencies: - "deep-is" "~0.1.3" - "fast-levenshtein" "~2.0.6" - "levn" "~0.3.0" - "prelude-ls" "~1.1.2" - "type-check" "~0.3.2" - "word-wrap" "~1.2.3" - -"optionator@^0.9.1": - "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==" - "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" - "version" "0.9.1" - dependencies: - "deep-is" "^0.1.3" - "fast-levenshtein" "^2.0.6" - "levn" "^0.4.1" - "prelude-ls" "^1.2.1" - "type-check" "^0.4.0" - "word-wrap" "^1.2.3" - -"os-tmpdir@~1.0.2": - "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - "version" "1.0.2" - -"p-limit@^1.1.0": - "integrity" "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" - "version" "1.3.0" - dependencies: - "p-try" "^1.0.0" - -"p-limit@^2.0.0", "p-limit@^2.2.0": - "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - "version" "2.3.0" - dependencies: - "p-try" "^2.0.0" - -"p-limit@^3.0.2": - "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "yocto-queue" "^0.1.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +merge@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz" + integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== + +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mime-db@1.49.0: + version "1.49.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== + +mime-types@^2.1.12: + version "2.1.32" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== + dependencies: + mime-db "1.49.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +minimist@1.2.5, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@0.5.5, mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mocha@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz" + integrity sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ== + dependencies: + ansi-colors "3.2.3" + browser-stdout "1.3.1" + chokidar "3.3.0" + debug "3.2.6" + diff "3.5.0" + escape-string-regexp "1.0.5" + find-up "3.0.0" + glob "7.1.3" + growl "1.10.5" + he "1.2.0" + js-yaml "3.13.1" + log-symbols "3.0.0" + minimatch "3.0.4" + mkdirp "0.5.5" + ms "2.1.1" + node-environment-flags "1.0.6" + object.assign "4.1.0" + strip-json-comments "2.0.1" + supports-color "6.0.0" + which "1.3.1" + wide-align "1.1.3" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "1.6.0" + +ms@2.1.1, ms@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +nanocolors@^0.2.12: + version "0.2.12" + resolved "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz" + integrity sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +node-environment-flags@1.0.6, node-environment-flags@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz" + integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== + dependencies: + object.getownpropertydescriptors "^2.0.3" + semver "^5.7.0" + +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-releases@^1.1.76: + version "1.1.76" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz" + integrity sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA== + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.2" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" -"p-locate@^2.0.0": - "integrity" "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" - "version" "2.0.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: - "p-limit" "^1.1.0" - -"p-locate@^3.0.0": - "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - "version" "3.0.0" + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: - "p-limit" "^2.0.0" + p-limit "^2.0.0" -"p-locate@^4.1.0": - "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - "version" "4.1.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: - "p-limit" "^2.2.0" + p-limit "^2.2.0" -"p-locate@^5.0.0": - "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - "version" "5.0.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: - "p-limit" "^3.0.2" + p-limit "^3.0.2" -"p-try@^1.0.0": - "integrity" "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - "resolved" "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" - "version" "1.0.0" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= -"p-try@^2.0.0": - "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - "version" "2.2.0" +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -"parent-module@^1.0.0": - "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" - "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - "version" "1.0.1" +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: - "callsites" "^3.0.0" + callsites "^3.0.0" -"parse-json@^4.0.0": - "integrity" "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=" - "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - "version" "4.0.0" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: - "error-ex" "^1.3.1" - "json-parse-better-errors" "^1.0.1" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" -"parse-json@^5.0.0": - "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" - "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - "version" "5.2.0" +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" - "error-ex" "^1.3.1" - "json-parse-even-better-errors" "^2.3.0" - "lines-and-columns" "^1.1.6" - -"parse-json@^5.2.0": - "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" - "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - "version" "5.2.0" - dependencies: - "@babel/code-frame" "^7.0.0" - "error-ex" "^1.3.1" - "json-parse-even-better-errors" "^2.3.0" - "lines-and-columns" "^1.1.6" - -"parse-passwd@^1.0.0": - "integrity" "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - "resolved" "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" - "version" "1.0.0" - -"parse5@6.0.1": - "integrity" "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - "resolved" "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" - "version" "6.0.1" - -"path-exists@^3.0.0": - "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - "version" "3.0.0" - -"path-exists@^4.0.0": - "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - "version" "4.0.0" - -"path-is-absolute@^1.0.0": - "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - "version" "1.0.1" - -"path-key@^3.0.0", "path-key@^3.1.0": - "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - "version" "3.1.1" - -"path-parse@^1.0.6": - "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - "version" "1.0.7" - -"path-type@^3.0.0": - "integrity" "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==" - "resolved" "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "pify" "^3.0.0" - -"path-type@^4.0.0": - "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - "version" "4.0.0" - -"picomatch@^2.0.4", "picomatch@^2.2.3": - "integrity" "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" - "version" "2.3.0" - -"pify@^3.0.0": - "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - "version" "3.0.0" - -"pify@^4.0.1": - "integrity" "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - "resolved" "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - "version" "4.0.1" - -"pirates@^4.0.0", "pirates@^4.0.4": - "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" - "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" - "version" "4.0.5" - -"pkg-dir@^3.0.0": - "integrity" "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==" - "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "find-up" "^3.0.0" - -"pkg-dir@^4.2.0": - "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" - "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - "version" "4.2.0" - dependencies: - "find-up" "^4.0.0" - -"pkg-dir@^5.0.0": - "integrity" "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==" - "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "find-up" "^5.0.0" - -"please-upgrade-node@^3.2.0": - "integrity" "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==" - "resolved" "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" - "version" "3.2.0" - dependencies: - "semver-compare" "^1.0.0" - -"prelude-ls@^1.2.1": - "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" - "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - "version" "1.2.1" - -"prelude-ls@~1.1.2": - "integrity" "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - "version" "1.1.2" - -"prettier-linter-helpers@^1.0.0": - "integrity" "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==" - "resolved" "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "fast-diff" "^1.1.2" - -"prettier@^2.0.2", "prettier@>=1.13.0": - "integrity" "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==" - "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz" - "version" "2.4.1" - -"pretty-format@^27.0.0", "pretty-format@^27.5.1": - "integrity" "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==" - "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" - "version" "27.5.1" - dependencies: - "ansi-regex" "^5.0.1" - "ansi-styles" "^5.0.0" - "react-is" "^17.0.1" - -"progress@^2.0.0": - "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" - "version" "2.0.3" - -"prompts@^2.0.1": - "integrity" "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==" - "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz" - "version" "2.4.1" - dependencies: - "kleur" "^3.0.3" - "sisteransi" "^1.0.5" - -"psl@^1.1.33": - "integrity" "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - "resolved" "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - "version" "1.8.0" - -"punycode@^2.1.0", "punycode@^2.1.1": - "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - "version" "2.1.1" - -"q@^1.5.1": - "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - "resolved" "https://registry.npmjs.org/q/-/q-1.5.1.tgz" - "version" "1.5.1" - -"queue-microtask@^1.2.2": - "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - "version" "1.2.3" - -"quick-lru@^1.0.0": - "integrity" "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=" - "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz" - "version" "1.1.0" - -"quick-lru@^4.0.1": - "integrity" "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" - "version" "4.0.1" - -"react-is@^17.0.1": - "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - "version" "17.0.2" - -"read-pkg-up@^3.0.0": - "integrity" "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=" - "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "find-up" "^2.0.0" - "read-pkg" "^3.0.0" - -"read-pkg-up@^7.0.1": - "integrity" "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==" - "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "find-up" "^4.1.0" - "read-pkg" "^5.2.0" - "type-fest" "^0.8.1" - -"read-pkg@^3.0.0": - "integrity" "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=" - "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "load-json-file" "^4.0.0" - "normalize-package-data" "^2.3.2" - "path-type" "^3.0.0" - -"read-pkg@^5.2.0": - "integrity" "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==" - "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" - "version" "5.2.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.0.4, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pirates@^4.0.0, pirates@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.0.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" + integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== + +pretty-format@^27.0.0, pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prompts@^2.0.1: + version "2.4.1" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +psl@^1.1.33: + version "1.8.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: "@types/normalize-package-data" "^2.4.0" - "normalize-package-data" "^2.5.0" - "parse-json" "^5.0.0" - "type-fest" "^0.6.0" - -"readable-stream@^3.0.0", "readable-stream@3": - "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - "version" "3.6.0" - dependencies: - "inherits" "^2.0.3" - "string_decoder" "^1.1.1" - "util-deprecate" "^1.0.1" - -"readdirp@~3.2.0": - "integrity" "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==" - "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz" - "version" "3.2.0" - dependencies: - "picomatch" "^2.0.4" - -"redent@^2.0.0": - "integrity" "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=" - "resolved" "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "indent-string" "^3.0.0" - "strip-indent" "^2.0.0" - -"redent@^3.0.0": - "integrity" "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==" - "resolved" "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "indent-string" "^4.0.0" - "strip-indent" "^3.0.0" - -"regenerate-unicode-properties@^9.0.0": - "integrity" "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==" - "resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz" - "version" "9.0.0" - dependencies: - "regenerate" "^1.4.2" - -"regenerate@^1.4.2": - "integrity" "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - "resolved" "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" - "version" "1.4.2" - -"regenerator-runtime@^0.10.5": - "integrity" "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz" - "version" "0.10.5" - -"regenerator-runtime@^0.11.0": - "integrity" "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" - "version" "0.11.1" - -"regenerator-runtime@^0.13.4": - "integrity" "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" - "version" "0.13.9" - -"regenerator-transform@^0.14.2": - "integrity" "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==" - "resolved" "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" - "version" "0.14.5" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@3, readable-stream@^3.0.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz" + integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== + dependencies: + picomatch "^2.0.4" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regenerate-unicode-properties@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz" + integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: "@babel/runtime" "^7.8.4" -"regexpp@^3.1.0": - "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - "resolved" "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" - "version" "3.2.0" - -"regexpu-core@^4.7.1": - "integrity" "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==" - "resolved" "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz" - "version" "4.8.0" - dependencies: - "regenerate" "^1.4.2" - "regenerate-unicode-properties" "^9.0.0" - "regjsgen" "^0.5.2" - "regjsparser" "^0.7.0" - "unicode-match-property-ecmascript" "^2.0.0" - "unicode-match-property-value-ecmascript" "^2.0.0" - -"regjsgen@^0.5.2": - "integrity" "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" - "resolved" "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" - "version" "0.5.2" - -"regjsparser@^0.7.0": - "integrity" "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==" - "resolved" "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz" - "version" "0.7.0" - dependencies: - "jsesc" "~0.5.0" - -"require-directory@^2.1.1": - "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - "version" "2.1.1" - -"require-from-string@^2.0.2": - "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - "version" "2.0.2" - -"require-main-filename@^2.0.0": - "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" - "version" "2.0.0" - -"resolve-cwd@^3.0.0": - "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" - "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "resolve-from" "^5.0.0" - -"resolve-dir@^1.0.0", "resolve-dir@^1.0.1": - "integrity" "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=" - "resolved" "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "expand-tilde" "^2.0.0" - "global-modules" "^1.0.0" - -"resolve-from@^3.0.0": - "integrity" "sha1-six699nWiBvItuZTM17rywoYh0g=" - "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" - "version" "3.0.0" - -"resolve-from@^4.0.0": - "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - "version" "4.0.0" - -"resolve-from@^5.0.0", "resolve-from@5.0.0": - "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - "version" "5.0.0" - -"resolve-global@^1.0.0", "resolve-global@1.0.0": - "integrity" "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==" - "resolved" "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "global-dirs" "^0.1.1" - -"resolve.exports@^1.1.0": - "integrity" "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" - "resolved" "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" - "version" "1.1.0" - -"resolve@^1.10.0", "resolve@^1.14.2", "resolve@^1.20.0", "resolve@>=1.9.0": - "integrity" "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==" - "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" - "version" "1.20.0" - dependencies: - "is-core-module" "^2.2.0" - "path-parse" "^1.0.6" - -"restore-cursor@^2.0.0": - "integrity" "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" - "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "onetime" "^2.0.0" - "signal-exit" "^3.0.2" - -"reusify@^1.0.4": - "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - "version" "1.0.4" - -"rimraf@^2.5.2": - "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" - "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - "version" "2.7.1" - dependencies: - "glob" "^7.1.3" - -"rimraf@^3.0.0": - "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" - "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "glob" "^7.1.3" +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^4.7.1: + version "4.8.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz" + integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^9.0.0" + regjsgen "^0.5.2" + regjsparser "^0.7.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + +regjsgen@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz" + integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== + dependencies: + jsesc "~0.5.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" + +resolve.exports@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + +resolve@>=1.9.0, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: + version "1.20.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.5.2: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" -"rimraf@^3.0.2": - "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" - "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "glob" "^7.1.3" +run-async@^2.2.0: + version "2.4.1" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== -"run-async@^2.2.0": - "integrity" "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" - "resolved" "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" - "version" "2.4.1" +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" -"run-parallel@^1.1.9": - "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" - "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - "version" "1.2.0" +rxjs@^6.4.0: + version "6.6.7" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: - "queue-microtask" "^1.2.2" + tslib "^1.9.0" -"rxjs@^6.4.0": - "integrity" "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==" - "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" - "version" "6.6.7" - dependencies: - "tslib" "^1.9.0" - -"safe-buffer@~5.1.1": - "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - "version" "5.1.2" +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safe-buffer@~5.2.0": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== "safer-buffer@>= 2.1.2 < 3": - "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - "version" "2.1.2" - -"saxes@^5.0.1": - "integrity" "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==" - "resolved" "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "xmlchars" "^2.2.0" + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-regex@^3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.3.tgz" + integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ== + +"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@6.3.0, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.x, semver@^7.2.1, semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.2: + version "7.3.7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +source-map-support@^0.5.16, source-map-support@^0.5.6: + version "0.5.20" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" + integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.10" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== + +split2@^3.0.0: + version "3.2.2" + resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" -"semver-compare@^1.0.0": - "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" - "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" - "version" "1.0.0" - -"semver-regex@^3.1.2": - "integrity" "sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==" - "resolved" "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.3.tgz" - "version" "3.1.3" - -"semver@^5.6.0": - "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - "version" "5.7.1" - -"semver@^5.7.0": - "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - "version" "5.7.1" - -"semver@^6.0.0", "semver@^6.1.1", "semver@^6.1.2", "semver@^6.3.0", "semver@6.3.0": - "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - "version" "6.3.0" - -"semver@^7.2.1": - "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - "version" "7.3.5" - dependencies: - "lru-cache" "^6.0.0" - -"semver@^7.3.2": - "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" - "version" "7.3.7" - dependencies: - "lru-cache" "^6.0.0" - -"semver@^7.3.4": - "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - "version" "7.3.5" - dependencies: - "lru-cache" "^6.0.0" - -"semver@^7.3.5": - "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - "version" "7.3.5" - dependencies: - "lru-cache" "^6.0.0" - -"semver@2 || 3 || 4 || 5": - "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - "version" "5.7.1" - -"semver@7.0.0": - "integrity" "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" - "version" "7.0.0" - -"semver@7.x": - "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - "version" "7.3.5" - dependencies: - "lru-cache" "^6.0.0" - -"set-blocking@^2.0.0": - "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - "version" "2.0.0" - -"shallow-clone@^3.0.0": - "integrity" "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==" - "resolved" "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "kind-of" "^6.0.2" - -"shebang-command@^2.0.0": - "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" - "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "shebang-regex" "^3.0.0" - -"shebang-regex@^3.0.0": - "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - "version" "3.0.0" - -"side-channel@^1.0.4": - "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" - "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "call-bind" "^1.0.0" - "get-intrinsic" "^1.0.2" - "object-inspect" "^1.9.0" - -"signal-exit@^3.0.0", "signal-exit@^3.0.2", "signal-exit@^3.0.3": - "integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - "version" "3.0.7" - -"sisteransi@^1.0.5": - "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - "version" "1.0.5" - -"slash@^3.0.0": - "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - "version" "3.0.0" - -"slice-ansi@^4.0.0": - "integrity" "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==" - "resolved" "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "ansi-styles" "^4.0.0" - "astral-regex" "^2.0.0" - "is-fullwidth-code-point" "^3.0.0" - -"source-map-support@^0.5.16", "source-map-support@^0.5.6": - "integrity" "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==" - "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" - "version" "0.5.20" - dependencies: - "buffer-from" "^1.0.0" - "source-map" "^0.6.0" - -"source-map@^0.5.0": - "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - "version" "0.5.7" - -"source-map@^0.6.0": - "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - "version" "0.6.1" - -"source-map@^0.6.1": - "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - "version" "0.6.1" - -"source-map@^0.7.3": - "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - "version" "0.7.3" - -"source-map@~0.6.1": - "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - "version" "0.6.1" - -"spdx-correct@^3.0.0": - "integrity" "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==" - "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" - "version" "3.1.1" - dependencies: - "spdx-expression-parse" "^3.0.0" - "spdx-license-ids" "^3.0.0" - -"spdx-exceptions@^2.1.0": - "integrity" "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - "resolved" "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - "version" "2.3.0" - -"spdx-expression-parse@^3.0.0": - "integrity" "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==" - "resolved" "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "spdx-exceptions" "^2.1.0" - "spdx-license-ids" "^3.0.0" - -"spdx-license-ids@^3.0.0": - "integrity" "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" - "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz" - "version" "3.0.10" - -"split2@^3.0.0": - "integrity" "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==" - "resolved" "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" - "version" "3.2.2" - dependencies: - "readable-stream" "^3.0.0" - -"sprintf-js@~1.0.2": - "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - "version" "1.0.3" - -"stack-utils@^2.0.3": - "integrity" "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==" - "resolved" "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" - "version" "2.0.5" - dependencies: - "escape-string-regexp" "^2.0.0" - -"string_decoder@^1.1.1": - "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" - "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - "version" "1.3.0" - dependencies: - "safe-buffer" "~5.2.0" - -"string-length@^4.0.1": - "integrity" "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==" - "resolved" "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" - "version" "4.0.2" - dependencies: - "char-regex" "^1.0.2" - "strip-ansi" "^6.0.0" - -"string-width@^1.0.2 || 2", "string-width@^2.1.0": - "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "is-fullwidth-code-point" "^2.0.0" - "strip-ansi" "^4.0.0" - -"string-width@^3.0.0", "string-width@^3.1.0": - "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "emoji-regex" "^7.0.1" - "is-fullwidth-code-point" "^2.0.0" - "strip-ansi" "^5.1.0" - -"string-width@^4.1.0": - "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - "version" "4.2.3" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.1" - -"string-width@^4.2.0": - "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - "version" "4.2.3" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.1" - -"string-width@^4.2.3": - "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - "version" "4.2.3" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.1" - -"string.prototype.trimend@^1.0.4": - "integrity" "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==" - "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" - "version" "1.0.4" - dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - -"string.prototype.trimstart@^1.0.4": - "integrity" "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==" - "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" - "version" "1.0.4" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" - -"strip-ansi@^4.0.0": - "integrity" "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "ansi-regex" "^3.0.0" - -"strip-ansi@^5.0.0", "strip-ansi@^5.1.0", "strip-ansi@^5.2.0": - "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - "version" "5.2.0" + safe-buffer "~5.2.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: - "ansi-regex" "^4.1.0" - -"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": - "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "ansi-regex" "^5.0.1" + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@4.0.0, strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" -"strip-bom@^3.0.0": - "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - "version" "3.0.0" - -"strip-bom@^4.0.0", "strip-bom@4.0.0": - "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" - "version" "4.0.0" - -"strip-final-newline@^2.0.0": - "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - "version" "2.0.0" - -"strip-indent@^2.0.0": - "integrity" "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" - "resolved" "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz" - "version" "2.0.0" - -"strip-indent@^3.0.0": - "integrity" "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==" - "resolved" "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "min-indent" "^1.0.0" - -"strip-json-comments@^3.1.0": - "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - "version" "3.1.1" - -"strip-json-comments@^3.1.1": - "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - "version" "3.1.1" - -"strip-json-comments@2.0.1": - "integrity" "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - "version" "2.0.1" - -"strip-json-comments@3.0.1": - "integrity" "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==" - "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz" - "version" "3.0.1" - -"supports-color@^5.3.0": - "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - "version" "5.5.0" - dependencies: - "has-flag" "^3.0.0" +strip-json-comments@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strip-json-comments@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -"supports-color@^7.0.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" +supports-color@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== dependencies: - "has-flag" "^4.0.0" - -"supports-color@^7.1.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" + has-flag "^3.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: - "has-flag" "^4.0.0" + has-flag "^3.0.0" -"supports-color@^8.0.0": - "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - "version" "8.1.1" - dependencies: - "has-flag" "^4.0.0" +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" -"supports-color@6.0.0": - "integrity" "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "has-flag" "^3.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" -"supports-hyperlinks@^2.0.0": - "integrity" "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==" - "resolved" "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "has-flag" "^4.0.0" - "supports-color" "^7.0.0" +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" -"symbol-tree@^3.2.4": - "integrity" "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - "resolved" "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" - "version" "3.2.4" - -"table@^6.0.9": - "integrity" "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==" - "resolved" "https://registry.npmjs.org/table/-/table-6.7.2.tgz" - "version" "6.7.2" - dependencies: - "ajv" "^8.0.1" - "lodash.clonedeep" "^4.5.0" - "lodash.truncate" "^4.4.2" - "slice-ansi" "^4.0.0" - "string-width" "^4.2.3" - "strip-ansi" "^6.0.1" - -"terminal-link@^2.0.0": - "integrity" "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==" - "resolved" "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "ansi-escapes" "^4.2.1" - "supports-hyperlinks" "^2.0.0" +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -"test-exclude@^6.0.0": - "integrity" "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==" - "resolved" "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - "version" "6.0.0" +table@^6.0.9: + version "6.7.2" + resolved "https://registry.npmjs.org/table/-/table-6.7.2.tgz" + integrity sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: "@istanbuljs/schema" "^0.1.2" - "glob" "^7.1.4" - "minimatch" "^3.0.4" - -"text-extensions@^1.0.0": - "integrity" "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==" - "resolved" "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz" - "version" "1.9.0" - -"text-table@^0.2.0": - "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - "version" "0.2.0" - -"throat@^6.0.1": - "integrity" "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - "resolved" "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" - "version" "6.0.1" - -"through@^2.3.6", "through@>=2.2.7 <3": - "integrity" "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - "resolved" "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - "version" "2.3.8" - -"through2@^4.0.0": - "integrity" "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==" - "resolved" "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" - "version" "4.0.2" - dependencies: - "readable-stream" "3" - -"tmp@^0.0.33": - "integrity" "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==" - "resolved" "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - "version" "0.0.33" - dependencies: - "os-tmpdir" "~1.0.2" - -"tmpl@1.0.x": - "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - "version" "1.0.5" - -"to-fast-properties@^2.0.0": - "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - "version" "2.0.0" - -"to-regex-range@^5.0.1": - "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" - "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "is-number" "^7.0.0" - -"tough-cookie@^4.0.0": - "integrity" "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==" - "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "psl" "^1.1.33" - "punycode" "^2.1.1" - "universalify" "^0.1.2" - -"tr46@^2.1.0": - "integrity" "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==" - "resolved" "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "punycode" "^2.1.1" - -"trim-newlines@^2.0.0": - "integrity" "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=" - "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz" - "version" "2.0.0" - -"trim-newlines@^3.0.0": - "integrity" "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==" - "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" - "version" "3.0.1" - -"ts-jest@^27.1.4": - "integrity" "sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==" - "resolved" "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.4.tgz" - "version" "27.1.4" - dependencies: - "bs-logger" "0.x" - "fast-json-stable-stringify" "2.x" - "jest-util" "^27.0.0" - "json5" "2.x" - "lodash.memoize" "4.x" - "make-error" "1.x" - "semver" "7.x" - "yargs-parser" "20.x" - -"ts-node@^10.8.1", "ts-node@>=8.0.2", "ts-node@>=9.0.0": - "integrity" "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==" - "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz" - "version" "10.8.1" + glob "^7.1.4" + minimatch "^3.0.4" + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== + +through2@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +"through@>=2.2.7 <3", through@^2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.5" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +ts-jest@^27.1.4: + version "27.1.4" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.4.tgz" + integrity sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^27.0.0" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-node@^10.8.1: + version "10.8.1" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz" + integrity sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@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" - "v8-compile-cache-lib" "^3.0.1" - "yn" "3.1.1" - -"ts-toolbelt@^6.3.6": - "integrity" "sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==" - "resolved" "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz" - "version" "6.15.5" - -"tslib@^1.8.1", "tslib@^1.9.0": - "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - "version" "1.14.1" - -"tslint-config-prettier@^1.18.0": - "integrity" "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==" - "resolved" "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz" - "version" "1.18.0" - -"tsutils@^3.21.0": - "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" - "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - "version" "3.21.0" - dependencies: - "tslib" "^1.8.1" - -"ttypescript@^1.5.12": - "integrity" "sha512-1ojRyJvpnmgN9kIHmUnQPlEV1gq+VVsxVYjk/NfvMlHSmYxjK5hEvOOU2MQASrbekTUiUM7pR/nXeCc8bzvMOQ==" - "resolved" "https://registry.npmjs.org/ttypescript/-/ttypescript-1.5.12.tgz" - "version" "1.5.12" - dependencies: - "resolve" ">=1.9.0" - -"type-check@^0.4.0", "type-check@~0.4.0": - "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" - "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - "version" "0.4.0" - dependencies: - "prelude-ls" "^1.2.1" - -"type-check@~0.3.2": - "integrity" "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=" - "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - "version" "0.3.2" - dependencies: - "prelude-ls" "~1.1.2" - -"type-detect@4.0.8": - "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - "version" "4.0.8" - -"type-fest@^0.18.0": - "integrity" "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" - "version" "0.18.1" - -"type-fest@^0.20.2": - "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - "version" "0.20.2" - -"type-fest@^0.21.3": - "integrity" "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - "version" "0.21.3" - -"type-fest@^0.6.0": - "integrity" "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" - "version" "0.6.0" - -"type-fest@^0.8.1": - "integrity" "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" - "version" "0.8.1" - -"typedarray-to-buffer@^3.1.5": - "integrity" "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==" - "resolved" "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - "version" "3.1.5" - dependencies: - "is-typedarray" "^1.0.0" - -"typescript-transform-paths@^2.0.0": - "integrity" "sha512-i+/sgp3rw1ZronMCm2TKGBy1dlvN88Kd8CCb+HWnOE8+Hv0uIVnbC8xM5AD2t1JBCWabEhuH9p3n8DOVi0+R6g==" - "resolved" "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-2.2.4.tgz" - "version" "2.2.4" - dependencies: - "minimatch" "^3.0.4" - -"typescript@^4.7.3", "typescript@>=2.7", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=3.2.2", "typescript@>=3.6.5", "typescript@>=3.8 <5.0": - "integrity" "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==" - "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz" - "version" "4.7.3" - -"unbox-primitive@^1.0.1": - "integrity" "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==" - "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "function-bind" "^1.1.1" - "has-bigints" "^1.0.1" - "has-symbols" "^1.0.2" - "which-boxed-primitive" "^1.0.2" - -"unicode-canonical-property-names-ecmascript@^2.0.0": - "integrity" "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" - "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" - "version" "2.0.0" - -"unicode-match-property-ecmascript@^2.0.0": - "integrity" "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==" - "resolved" "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "unicode-canonical-property-names-ecmascript" "^2.0.0" - "unicode-property-aliases-ecmascript" "^2.0.0" - -"unicode-match-property-value-ecmascript@^2.0.0": - "integrity" "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" - "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" - "version" "2.0.0" - -"unicode-property-aliases-ecmascript@^2.0.0": - "integrity" "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" - "resolved" "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" - "version" "2.0.0" - -"universalify@^0.1.0", "universalify@^0.1.2": - "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - "version" "0.1.2" - -"uri-js@^4.2.2": - "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" - "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - "version" "4.4.1" - dependencies: - "punycode" "^2.1.0" - -"util-deprecate@^1.0.1": - "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - "version" "1.0.2" - -"v8-compile-cache-lib@^3.0.1": - "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - "resolved" "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" - "version" "3.0.1" - -"v8-compile-cache@^2.0.3": - "integrity" "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - "resolved" "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" - "version" "2.3.0" - -"v8-to-istanbul@^8.1.0": - "integrity" "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==" - "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz" - "version" "8.1.1" + 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" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +ts-toolbelt@^6.3.6: + version "6.15.5" + resolved "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz" + integrity sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A== + +tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslint-config-prettier@^1.18.0: + version "1.18.0" + resolved "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz" + integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +ttypescript@^1.5.12: + version "1.5.12" + resolved "https://registry.npmjs.org/ttypescript/-/ttypescript-1.5.12.tgz" + integrity sha512-1ojRyJvpnmgN9kIHmUnQPlEV1gq+VVsxVYjk/NfvMlHSmYxjK5hEvOOU2MQASrbekTUiUM7pR/nXeCc8bzvMOQ== + dependencies: + resolve ">=1.9.0" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript-transform-paths@^2.0.0: + version "2.2.4" + resolved "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-2.2.4.tgz" + integrity sha512-i+/sgp3rw1ZronMCm2TKGBy1dlvN88Kd8CCb+HWnOE8+Hv0uIVnbC8xM5AD2t1JBCWabEhuH9p3n8DOVi0+R6g== + dependencies: + minimatch "^3.0.4" + +typescript@^4.7.3: + version "4.7.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz" + integrity sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA== + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + +universalify@^0.1.0, universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" - "convert-source-map" "^1.6.0" - "source-map" "^0.7.3" + convert-source-map "^1.6.0" + source-map "^0.7.3" -"v8flags@^3.1.1": - "integrity" "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==" - "resolved" "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" - "version" "3.2.0" - dependencies: - "homedir-polyfill" "^1.0.1" +v8flags@^3.1.1: + version "3.2.0" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== + dependencies: + homedir-polyfill "^1.0.1" -"validate-npm-package-license@^3.0.1": - "integrity" "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==" - "resolved" "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - "version" "3.0.4" +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: - "spdx-correct" "^3.0.0" - "spdx-expression-parse" "^3.0.0" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" -"w3c-hr-time@^1.0.2": - "integrity" "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==" - "resolved" "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" - "version" "1.0.2" +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: - "browser-process-hrtime" "^1.0.0" - -"w3c-xmlserializer@^2.0.0": - "integrity" "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==" - "resolved" "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "xml-name-validator" "^3.0.0" - -"walker@^1.0.7": - "integrity" "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=" - "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" - "version" "1.0.7" - dependencies: - "makeerror" "1.0.x" - -"webidl-conversions@^5.0.0": - "integrity" "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" - "version" "5.0.0" - -"webidl-conversions@^6.1.0": - "integrity" "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" - "version" "6.1.0" - -"whatwg-encoding@^1.0.5": - "integrity" "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==" - "resolved" "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" - "version" "1.0.5" - dependencies: - "iconv-lite" "0.4.24" - -"whatwg-mimetype@^2.3.0": - "integrity" "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - "resolved" "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" - "version" "2.3.0" - -"whatwg-url@^8.0.0", "whatwg-url@^8.5.0": - "integrity" "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==" - "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" - "version" "8.7.0" - dependencies: - "lodash" "^4.7.0" - "tr46" "^2.1.0" - "webidl-conversions" "^6.1.0" - -"which-boxed-primitive@^1.0.2": - "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" - "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "is-bigint" "^1.0.1" - "is-boolean-object" "^1.1.0" - "is-number-object" "^1.0.4" - "is-string" "^1.0.5" - "is-symbol" "^1.0.3" - -"which-module@^2.0.0": - "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" - "version" "2.0.0" - -"which-pm-runs@^1.0.0": - "integrity" "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" - "resolved" "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz" - "version" "1.0.0" - -"which@^1.2.14": - "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" - "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - "version" "1.3.1" - dependencies: - "isexe" "^2.0.0" - -"which@^2.0.1": - "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" - "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "isexe" "^2.0.0" - -"which@1.3.1": - "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" - "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - "version" "1.3.1" - dependencies: - "isexe" "^2.0.0" - -"wide-align@1.1.3": - "integrity" "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==" - "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" - "version" "1.1.3" - dependencies: - "string-width" "^1.0.2 || 2" - -"word-wrap@^1.0.3", "word-wrap@^1.2.3", "word-wrap@~1.2.3": - "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - "version" "1.2.3" - -"wrap-ansi@^5.1.0": - "integrity" "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==" - "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" - "version" "5.1.0" - dependencies: - "ansi-styles" "^3.2.0" - "string-width" "^3.0.0" - "strip-ansi" "^5.0.0" - -"wrap-ansi@^7.0.0": - "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" - "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - "version" "7.0.0" - dependencies: - "ansi-styles" "^4.0.0" - "string-width" "^4.1.0" - "strip-ansi" "^6.0.0" - -"wrappy@1": - "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - "version" "1.0.2" - -"write-file-atomic@^3.0.0": - "integrity" "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==" - "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - "version" "3.0.3" - dependencies: - "imurmurhash" "^0.1.4" - "is-typedarray" "^1.0.0" - "signal-exit" "^3.0.2" - "typedarray-to-buffer" "^3.1.5" - -"ws@^7.4.6": - "integrity" "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==" - "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" - "version" "7.5.7" - -"xml-name-validator@^3.0.0": - "integrity" "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - "resolved" "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" - "version" "3.0.0" - -"xmlchars@^2.2.0": - "integrity" "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - "resolved" "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" - "version" "2.2.0" - -"y18n@^4.0.0": - "integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" - "version" "4.0.3" - -"y18n@^5.0.5": - "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - "version" "5.0.8" - -"yallist@^4.0.0": - "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - "version" "4.0.0" - -"yaml@^1.10.0": - "integrity" "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" - "version" "1.10.2" - -"yargs-parser@^10.0.0": - "integrity" "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz" - "version" "10.1.0" - dependencies: - "camelcase" "^4.1.0" - -"yargs-parser@^13.1.2", "yargs-parser@13.1.2": - "integrity" "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" - "version" "13.1.2" - dependencies: - "camelcase" "^5.0.0" - "decamelize" "^1.2.0" - -"yargs-parser@^20.2.2": - "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - "version" "20.2.9" - -"yargs-parser@^20.2.3": - "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - "version" "20.2.9" - -"yargs-parser@20.x": - "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - "version" "20.2.9" - -"yargs-unparser@1.6.0": - "integrity" "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==" - "resolved" "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" - "version" "1.6.0" - dependencies: - "flat" "^4.1.0" - "lodash" "^4.17.15" - "yargs" "^13.3.0" - -"yargs@^13.3.0": - "integrity" "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==" - "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" - "version" "13.3.2" - dependencies: - "cliui" "^5.0.0" - "find-up" "^3.0.0" - "get-caller-file" "^2.0.1" - "require-directory" "^2.1.1" - "require-main-filename" "^2.0.0" - "set-blocking" "^2.0.0" - "string-width" "^3.0.0" - "which-module" "^2.0.0" - "y18n" "^4.0.0" - "yargs-parser" "^13.1.2" - -"yargs@^16.1.1", "yargs@^16.2.0": - "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" - "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - "version" "16.2.0" - dependencies: - "cliui" "^7.0.2" - "escalade" "^3.1.1" - "get-caller-file" "^2.0.5" - "require-directory" "^2.1.1" - "string-width" "^4.2.0" - "y18n" "^5.0.5" - "yargs-parser" "^20.2.2" - -"yargs@13.3.2": - "integrity" "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==" - "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" - "version" "13.3.2" - dependencies: - "cliui" "^5.0.0" - "find-up" "^3.0.0" - "get-caller-file" "^2.0.1" - "require-directory" "^2.1.1" - "require-main-filename" "^2.0.0" - "set-blocking" "^2.0.0" - "string-width" "^3.0.0" - "which-module" "^2.0.0" - "y18n" "^4.0.0" - "yargs-parser" "^13.1.2" - -"yn@3.1.1": - "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - "version" "3.1.1" - -"yocto-queue@^0.1.0": - "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - "version" "0.1.0" + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@1.3.1, which@^1.2.14: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +word-wrap@^1.0.3, word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.4.6: + version "7.5.7" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^10.0.0: + version "10.1.0" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + +yargs-unparser@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" + integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== + dependencies: + flat "^4.1.0" + lodash "^4.17.15" + yargs "^13.3.0" + +yargs@13.3.2, yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^16.1.1, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From b3ed9d537460c4f78387cc02630f82718b195078 Mon Sep 17 00:00:00 2001 From: Gautier Date: Mon, 27 Jun 2022 14:28:22 +0200 Subject: [PATCH 61/74] Added documentation --- doc/.purplehaze/Layout/index.js | 2 +- doc/.purplehaze/ssg/markdown.js | 82 +- doc/.purplehaze/ssg/routes.js | 8 +- doc/src/markdown/basics/getting-started.md | 2 + doc/src/markdown/basics/subscriptions.md | 65 + doc/src/purplehaze.d.ts | 113 +- doc/src/ssg/markdown.ts | 82 +- doc/src/ssg/routes.ts | 8 +- doc/src/tw.css | 124 +- doc/yarn.lock | 2473 +++++++++++++++++ package.json | 8 + .../functions/apiSubscription/graphql-ws.ts | 14 +- 12 files changed, 2803 insertions(+), 178 deletions(-) create mode 100644 doc/src/markdown/basics/subscriptions.md create mode 100644 doc/yarn.lock diff --git a/doc/.purplehaze/Layout/index.js b/doc/.purplehaze/Layout/index.js index 34a02295..ac254235 100644 --- a/doc/.purplehaze/Layout/index.js +++ b/doc/.purplehaze/Layout/index.js @@ -26,7 +26,7 @@ var Layout = ({children, routes, activeRoute, prefix = ""}) => { className: "text-gray-400 block ml-2 text-md mt-1" }, "Autocomplete client for GraphQL"), /* @__PURE__ */ React.createElement("span", { className: "ml-auto mr-2 text-gray-500" - }, "5.0.x"), /* @__PURE__ */ React.createElement("a", { + }, "5.1.x"), /* @__PURE__ */ React.createElement("a", { href: "https://github.com/graphql-editor/graphql-zeus", className: "text-purple-500", title: "Github repository" diff --git a/doc/.purplehaze/ssg/markdown.js b/doc/.purplehaze/ssg/markdown.js index 8496e11e..a27362a1 100644 --- a/doc/.purplehaze/ssg/markdown.js +++ b/doc/.purplehaze/ssg/markdown.js @@ -1,7 +1,7 @@ // src/ssg/markdown.ts var htmlContent = { "markdown/plugins/typedDocumentNode.md": { - "content": "\n## Usage with Typed Document Node\n\nZeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query\nrepresentation understood by most GraphQL clients (including Apollo, urql etc) by adding the\n`--typedDocumentNode` or `--td` flag to the CLI.\n\n### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders\n\n```sh\n$ zeus https://yourschema.com/graphql ./ --typedDocumentNode\n# typedDocumentNode.ts file with typed document node builders is now in the output destination\n```\n\n### TypedDocumentNode + Apollo Client useQuery examples\n\nThe following example demonstrates usage with Apollo. Other clients should work similarly.\n\n```tsx\nimport { ZeusTD } from './zeus/typedDocumentNode';\nimport { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus';\nimport { useQuery } from '@apollo/client';\n\nconst variables = useZeusVariables({ cardId: 'String!' })({\n cardId: 'blabla',\n});\nconst { $ } = variables;\n\nconst myQuery = ZeusTD(\n 'query',\n {\n drawCard: {\n id: true,\n Attack: true,\n Defense: true,\n },\n cardById: [{ cardId: $('cardId') }, { id: true }],\n },\n { variables },\n);\n\nconst Main = () => {\n const { data } = useQuery(myQuery, {\n variables: variables.values,\n });\n // data response is typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node\n", + "content": "\n## Usage with Typed Document Node\n\nZeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query\nrepresentation understood by most GraphQL clients (including Apollo, urql etc) by adding the\n`--typedDocumentNode` or `--td` flag to the CLI.\n\n### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders\n\n```sh\n$ zeus https://yourschema.com/graphql ./ --typedDocumentNode\n# typedDocumentNode.ts file with typed document node builders is now in the output destination\n```\n\n### TypedDocumentNode + Apollo Client useQuery examples\n\nThe following example demonstrates usage with Apollo. Other clients should work similarly.\n\n```tsx\nimport { typedGql } from './zeus/typedDocumentNode';\nimport { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus';\nimport { useQuery } from '@apollo/client';\n\nconst variables = useZeusVariables({ cardId: 'String!' })({\n cardId: 'blabla',\n});\nconst { $ } = variables;\n\nconst myQuery = typedGql('query')(\n {\n drawCard: {\n id: true,\n Attack: true,\n Defense: true,\n },\n cardById: [{ cardId: $('cardId') }, { id: true }],\n },\n { variables },\n);\n\nconst Main = () => {\n const { data } = useQuery(myQuery, {\n // use those values or provide other values than default\n variables: variables.values,\n });\n // data response is typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node\n", "data": { "link": "plugins/typedDocumentNode", "title": "TypedDocumentNode", @@ -10,11 +10,13 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/index.md": { - "content": "\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n\u26A1\uFE0F Types mapped from your schema
    \n\u26A1\uFE0F Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
    \n\u26A1\uFE0F Works with Subscriptions
    \n\u26A1\uFE0F Infer complex response types
    \n\u26A1\uFE0F Create reusable selection sets (like fragments) for use across multiple queries
    \n\u26A1\uFE0F Supports GraphQL Unions, Interfaces, Aliases and Variables
    \n\u26A1\uFE0F Handles **massive** schemas
    \n\u26A1\uFE0F Supports Browsers, Node.js and React Native in Javascript and Typescript
    \n\u26A1\uFE0F Schema downloader
    \n\u26A1\uFE0F JSON schema generation
    \n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star \u2B50\uFE0F \u{1F60A}\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT \u{1F54A}\n", + "markdown/plugins/stucco.md": { + "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", "data": { - "link": "", - "title": "" + "link": "plugins/stucco", + "title": "Stucco", + "order": 3, + "category": "Plugins" }, "excerpt": "" }, @@ -28,16 +30,6 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/plugins/stucco.md": { - "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", - "data": { - "link": "plugins/stucco", - "title": "Stucco", - "order": 3, - "category": "Plugins" - }, - "excerpt": "" - }, "markdown/plugins/apollo.md": { "content": "\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. \u{1F680}\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./ --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
    {data.drawCard.name}
    ;\n};\n```\n", "data": { @@ -48,6 +40,14 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/index.md": { + "content": "\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n\u26A1\uFE0F Types mapped from your schema
    \n\u26A1\uFE0F Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
    \n\u26A1\uFE0F Works with Subscriptions
    \n\u26A1\uFE0F Infer complex response types
    \n\u26A1\uFE0F Create reusable selection sets (like fragments) for use across multiple queries
    \n\u26A1\uFE0F Supports GraphQL Unions, Interfaces, Aliases and Variables
    \n\u26A1\uFE0F Handles **massive** schemas
    \n\u26A1\uFE0F Supports Browsers, Node.js and React Native in Javascript and Typescript
    \n\u26A1\uFE0F Schema downloader
    \n\u26A1\uFE0F JSON schema generation
    \n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star \u2B50\uFE0F \u{1F60A}\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT \u{1F54A}\n", + "data": { + "link": "", + "title": "" + }, + "excerpt": "" + }, "markdown/graphql/variables.md": { "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by using `useZeusVariables` function. It forces you to be type-safe also\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", "data": { @@ -58,12 +58,12 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/graphql/gql.md": { - "content": "\n## Generate GraphQL Gql Strings\n\nUse the `Zeus` function to generate a gql string\n\n```js\nimport { Zeus } from './zeus';\n\nconst stringGql = Zeus('query', {\n listCards: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n\n// stringGql value:\n// query{listCards{name skills Attack}}\n```\n", + "markdown/graphql/scalars.md": { + "content": "\n## Scalars\n\nIn Zeus you can encode and decode scalars\n\n### Decode\n\nDecode function is called every time scalar returns from backend before passing the result from Chain,Subscription functions\n\n```gql\nscalar JSON\nscalar Datetime\ntype Card{\n info: JSON!\n createdAt: Datetime\n}\ntype Query:{\n drawCard: Card!\n}\n```\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst data = await chain('query', {\n scalars: {\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n },\n})({\n drawCard: {\n info: true,\n },\n});\n```\n\nSo the `data.drawCard.info` will be of type `Date` as provided by decoder `ReturnType`\n\n### Encode Scalars\n\nYou can also encode scalars before sending them to backend\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query', {\n scalars: {\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n },\n})({\n drawCard: {\n info: true,\n },\n});\n```\n\nEncoders require value to be encoded to string and don't work with variables yet.\n\n## Place decoders and encoders in one place for reuse\n\n```ts\nimport { Chain, ZeusScalars } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst scalars = ZeusScalars({\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n});\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query', {\n scalars,\n})({\n drawCard: {\n info: true,\n },\n});\n```\n", "data": { - "link": "graphql/gql", - "title": "Gql string", - "order": 4, + "link": "graphql/scalars", + "title": "Scalars", + "order": 6, "category": "GraphQL" }, "excerpt": "" @@ -78,6 +78,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/graphql/gql.md": { + "content": "\n## Generate GraphQL Gql Strings\n\nUse the `Zeus` function to generate a gql string\n\n```js\nimport { Zeus } from './zeus';\n\nconst stringGql = Zeus('query', {\n listCards: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n\n// stringGql value:\n// query{listCards{name skills Attack}}\n```\n", + "data": { + "link": "graphql/gql", + "title": "Gql string", + "order": 4, + "category": "GraphQL" + }, + "excerpt": "" + }, "markdown/graphql/directives.md": { "content": "\n## GraphQL Directives\n\nZeus supports using directives on fields.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: true)`,\n },\n});\n```\n\nSo you need to put full string instead of `true`.\n\n### Use on object field\n\nUse directive on `drawCard`\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n __directives: `@skip(if:true)`,\n name: true,\n skills: true,\n },\n});\n```\n\n### Use on function\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n attack:[\n {\n cardId:['2312321']\n },\n {\n __directives: `@skip(if:true)`,\n name: true,\n skills: true,\n }\n ]\n }\n});\n```\n\n### Use it with variables\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst variables = useZeusVariables({\n isDefense: 'Boolean!'\n})({\n isDefense:true\n});\nconst { $ } = variables;\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: ${$('isDefense')})`,\n },\n {\n variables\n }\n});\n```\n", "data": { @@ -128,6 +138,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/basics/subscriptions.md": { + "content": "\n## Subscriptions\n\nZeus supports [GraphQL subscriptions](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) out-of-the-box and is compatible with many popular GraphQL servers.\n\nTwo standards are supported:\n\n- **graphql-ws**: the modern WebSocket-based transport, implemented by [the graphql-ws package](https://www.npmjs.com/package/graphql-ws). It is the standard [used by Apollo](https://www.apollographql.com/docs/react/data/subscriptions/#choosing-a-subscription-library).\n- **legacy** (default): a transport based on raw WebSockets.\n\n### Generating the client\n\nTo use [graphql-ws](https://www.npmjs.com/package/graphql-ws) as your subscription transport you'll need to do the following:\n\n```sh\n# Generate the client\nzeus schema.gql ./ --subscriptions graphql-ws\n# Add graphql-ws to your project's dependencies\nnpm install graphql-ws\n```\n\nIf you want to use **legacy**, use `--subscriptions legacy` instead.\n\nNo matter what implementation you chose, usage is the same:\n\n```ts\n// Create a new Subscription with some authentication headers\nconst sub = Subscription('wss://localhost:4000/graphql', {\n get headers() {\n return { Authorization: `Bearer ${getToken()}` };\n },\n});\n\n// Subscribe to new messages\nsub('subscription')({\n message: {\n body: true,\n },\n}).on(({ message }) => {\n console.log(message.body);\n});\n```\n\nIf you need to unsubscribe from a subscription (e.g. you are developing as Single Page App), you can do as follows:\n\n```ts\n// Subscribe to new messages\nconst onMessage = sub('subscription')({\n message: {\n body: true,\n },\n});\nonMessage.on(({ message }) => {\n console.log(message.body);\n});\n\n// Close the underlying connection\nonMessage.ws.close();\n```\n", + "data": { + "link": "subscriptions", + "title": "Subscriptions", + "order": 8, + "category": "Basics" + }, + "excerpt": "" + }, "markdown/basics/spec.md": { "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n", "data": { @@ -148,8 +168,18 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/basics/javascript.md": { + "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", + "data": { + "link": "javascript", + "title": "Javascript", + "order": 6, + "category": "Basics" + }, + "excerpt": "" + }, "markdown/basics/getting-started.md": { - "content": "\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n cardById: [\n {\n cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n },\n {\n name: true,\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n name\n description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n deck: {\n id: true,\n },\n}).on((response) => {\n console.log(response.deck);\n});\n```\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./ --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n", + "content": "\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n cardById: [\n {\n cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n },\n {\n name: true,\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n name\n description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n deck: {\n id: true,\n },\n}).on((response) => {\n console.log(response.deck);\n});\n```\n\n[Read more about subscriptions](./subscriptions)\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./ --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n", "data": { "link": "getting-started", "title": "Getting Started", @@ -168,16 +198,6 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/basics/javascript.md": { - "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", - "data": { - "link": "javascript", - "title": "Javascript", - "order": 6, - "category": "Basics" - }, - "excerpt": "" - }, "markdown/basics/custom.-fetch.md": { "content": "\n## Perform Queries with Thunder - An Abstracted Fetch Function\n\nWith Zeus `Thunder` you have total control of fetch function but will not lose the result type. \u26A1\uFE0F\n\n```js\nimport { Thunder } from './zeus';\n\n// Create thunder fetch client with endpoint, options and response handlers\nconst thunder = Thunder(async (query) => {\n const response = await fetch('https://faker.graphqleditor.com/a-team/olympus/graphql', {\n body: JSON.stringify({ query }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n return new Promise((resolve, reject) => {\n response\n .text()\n .then((text) => {\n try {\n reject(JSON.parse(text));\n } catch (err) {\n reject(text);\n }\n })\n .catch(reject);\n });\n }\n\n const json = await response.json();\n\n return json.data;\n});\n\n// Call thunder client with type-safe arguments, fields and get type-safe result type\nconst listCardsAndDraw = await thunder('query')({\n cardById: [\n {\n cardId: 'sdsd',\n },\n {\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['s', 'sd'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n```\n", "data": { diff --git a/doc/.purplehaze/ssg/routes.js b/doc/.purplehaze/ssg/routes.js index b9fffa52..9be938f5 100644 --- a/doc/.purplehaze/ssg/routes.js +++ b/doc/.purplehaze/ssg/routes.js @@ -2,16 +2,18 @@ var routes = { "page/plugins/typedDocumentNode": "/page/plugins/typedDocumentNode", "page/plugins/stucco": "/page/plugins/stucco", - "page/plugins/apollo": "/page/plugins/apollo", "page/plugins/react-query": "/page/plugins/react-query", + "page/plugins/apollo": "/page/plugins/apollo", "page/graphql/variables": "/page/graphql/variables", - "page/graphql/gql": "/page/graphql/gql", + "page/graphql/scalars": "/page/graphql/scalars", "page/graphql/interfaces-and-unions": "/page/graphql/interfaces-and-unions", + "page/graphql/gql": "/page/graphql/gql", "page/graphql/directives": "/page/graphql/directives", "page/graphql/aliases": "/page/graphql/aliases", "page/state": "/page/state", - "page/library": "/page/library", "page/forms": "/page/forms", + "page/library": "/page/library", + "page/subscriptions": "/page/subscriptions", "page/spec": "/page/spec", "page/selector": "/page/selector", "page/javascript": "/page/javascript", diff --git a/doc/src/markdown/basics/getting-started.md b/doc/src/markdown/basics/getting-started.md index 757e15f0..80a97cae 100644 --- a/doc/src/markdown/basics/getting-started.md +++ b/doc/src/markdown/basics/getting-started.md @@ -114,6 +114,8 @@ sub('subscription')({ }); ``` +[Read more about subscriptions](./subscriptions) + ## Usage with NodeJS Generates clients for use with Node.js diff --git a/doc/src/markdown/basics/subscriptions.md b/doc/src/markdown/basics/subscriptions.md new file mode 100644 index 00000000..6935ab38 --- /dev/null +++ b/doc/src/markdown/basics/subscriptions.md @@ -0,0 +1,65 @@ +--- +link: subscriptions +title: Subscriptions +order: 8 +category: Basics +--- + +## Subscriptions + +Zeus supports [GraphQL subscriptions](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) out-of-the-box and is compatible with many popular GraphQL servers. + +Two standards are supported: + +- **graphql-ws**: the modern WebSocket-based transport, implemented by [the graphql-ws package](https://www.npmjs.com/package/graphql-ws). It is the standard [used by Apollo](https://www.apollographql.com/docs/react/data/subscriptions/#choosing-a-subscription-library). +- **legacy** (default): a transport based on raw WebSockets. + +### Generating the client + +To use [graphql-ws](https://www.npmjs.com/package/graphql-ws) as your subscription transport you'll need to do the following: + +```sh +# Generate the client +zeus schema.gql ./ --subscriptions graphql-ws +# Add graphql-ws to your project's dependencies +npm install graphql-ws +``` + +If you want to use **legacy**, use `--subscriptions legacy` instead. + +No matter what implementation you chose, usage is the same: + +```ts +// Create a new Subscription with some authentication headers +const sub = Subscription('wss://localhost:4000/graphql', { + get headers() { + return { Authorization: `Bearer ${getToken()}` }; + }, +}); + +// Subscribe to new messages +sub('subscription')({ + message: { + body: true, + }, +}).on(({ message }) => { + console.log(message.body); +}); +``` + +If you need to unsubscribe from a subscription (e.g. you are developing as Single Page App), you can do as follows: + +```ts +// Subscribe to new messages +const onMessage = sub('subscription')({ + message: { + body: true, + }, +}); +onMessage.on(({ message }) => { + console.log(message.body); +}); + +// Close the underlying connection +onMessage.ws.close(); +``` diff --git a/doc/src/purplehaze.d.ts b/doc/src/purplehaze.d.ts index 2dec7c5a..03ad53a2 100644 --- a/doc/src/purplehaze.d.ts +++ b/doc/src/purplehaze.d.ts @@ -1,90 +1,47 @@ -declare const ssg: {"envs": {"SHELL": string; -"LSCOLORS": string; -"SESSION_MANAGER": string; -"COLORTERM": string; -"XDG_CONFIG_DIRS": string; +declare const ssg: {"envs": {"PYENV_VIRTUALENV_INIT": string; +"USER": string; +"GIT_ASKPASS": string; +"SHLVL": string; +"HOME": string; "LESS": string; -"XDG_SESSION_PATH": string; -"NVM_INC": string; -"XDG_MENU_PREFIX": string; +"OLDPWD": string; "TERM_PROGRAM_VERSION": string; -"APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL": string; -"HISTSIZE": string; -"NODE": string; -"LC_ADDRESS": string; -"LC_NAME": string; -"SSH_AUTH_SOCK": string; +"VSCODE_IPC_HOOK_CLI": string; +"LSCOLORS": string; +"PYENV_SHELL": string; +"ZSH": string; +"PAGER": string; +"VSCODE_GIT_ASKPASS_MAIN": string; +"YARN_WRAP_OUTPUT": string; +"VSCODE_GIT_ASKPASS_NODE": string; +"COLORTERM": string; +"WSL_DISTRO_NAME": string; "COLOR": string; -"DESKTOP_SESSION": string; -"LC_MONETARY": string; -"SSH_AGENT_PID": string; -"BAMF_DESKTOP_FILE_HINT": string; -"NO_AT_BRIDGE": string; -"EDITOR": string; -"GTK_MODULES": string; -"XDG_SEAT": string; -"PWD": string; -"GSETTINGS_SCHEMA_DIR": string; +"VOLTA_HOME": string; +"_VOLTA_TOOL_RECURSION": string; +"FORCE_COLOR": string; "LOGNAME": string; -"XDG_SESSION_DESKTOP": string; -"QT_QPA_PLATFORMTHEME": string; -"XDG_SESSION_TYPE": string; -"PANEL_GDK_CORE_DEVICE_EVENTS": string; +"NAME": string; +"WSL_INTEROP": string; "_": string; -"XAUTHORITY": string; -"VSCODE_GIT_ASKPASS_NODE": string; -"XDG_GREETER_DATA_DIR": string; -"MOTD_SHOWN": string; -"GDM_LANG": string; -"GTK2_RC_FILES": string; -"HOME": string; -"LANG": string; -"LC_PAPER": string; -"LS_COLORS": string; -"XDG_CURRENT_DESKTOP": string; -"FORCE_COLOR": string; -"DISABLE_WAYLAND": string; -"GIT_ASKPASS": string; -"XDG_SEAT_PATH": string; -"SAVEHIST": string; -"INIT_CWD": string; -"CHROME_DESKTOP": string; -"NVM_DIR": string; -"VSCODE_GIT_ASKPASS_EXTRA_ARGS": string; -"GEM_HOME": string; -"XDG_SESSION_CLASS": string; "TERM": string; -"LC_IDENTIFICATION": string; -"ZSH": string; -"USER": string; -"VSCODE_GIT_IPC_HANDLE": string; -"DISPLAY": string; -"SHLVL": string; -"NVM_CD_FLAGS": string; -"PAGER": string; -"LC_TELEPHONE": string; -"ANDROID_SDK_ROOT": string; -"LC_MEASUREMENT": string; -"XDG_VTNR": string; -"XDG_SESSION_ID": string; -"XDG_RUNTIME_DIR": string; -"LC_TIME": string; -"VSCODE_GIT_ASKPASS_MAIN": string; -"QT_AUTO_SCREEN_SCALE_FACTOR": string; -"GTK3_MODULES": string; -"XDG_DATA_DIRS": string; -"GDK_BACKEND": string; -"BROWSER": string; "PATH": string; -"GDMSESSION": string; -"ORIGINAL_XDG_CURRENT_DESKTOP": string; -"DBUS_SESSION_BUS_ADDRESS": string; -"NVM_BIN": string; -"MAIL": string; -"LC_NUMERIC": string; -"OLDPWD": string; +"NODE": string; +"DENO_INSTALL": string; +"LANG": string; +"LS_COLORS": string; "TERM_PROGRAM": string; +"VSCODE_GIT_IPC_HANDLE": string; +"SHELL": string; +"VSCODE_GIT_ASKPASS_EXTRA_ARGS": string; +"GPG_TTY": string; +"PWD": string; +"VIRTUAL_ENV_DISABLE_PROMPT": string; +"HOSTTYPE": string; +"INIT_CWD": string; +"WSLENV": string; +"EDITOR": string; "PATH_PREFIX": string}; "config": {"out": string; "in": string; diff --git a/doc/src/ssg/markdown.ts b/doc/src/ssg/markdown.ts index 7e71df49..f704f01d 100644 --- a/doc/src/ssg/markdown.ts +++ b/doc/src/ssg/markdown.ts @@ -1,6 +1,6 @@ export const htmlContent = { "markdown/plugins/typedDocumentNode.md": { - "content": "\n## Usage with Typed Document Node\n\nZeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query\nrepresentation understood by most GraphQL clients (including Apollo, urql etc) by adding the\n`--typedDocumentNode` or `--td` flag to the CLI.\n\n### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders\n\n```sh\n$ zeus https://yourschema.com/graphql ./ --typedDocumentNode\n# typedDocumentNode.ts file with typed document node builders is now in the output destination\n```\n\n### TypedDocumentNode + Apollo Client useQuery examples\n\nThe following example demonstrates usage with Apollo. Other clients should work similarly.\n\n```tsx\nimport { ZeusTD } from './zeus/typedDocumentNode';\nimport { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus';\nimport { useQuery } from '@apollo/client';\n\nconst variables = useZeusVariables({ cardId: 'String!' })({\n cardId: 'blabla',\n});\nconst { $ } = variables;\n\nconst myQuery = ZeusTD(\n 'query',\n {\n drawCard: {\n id: true,\n Attack: true,\n Defense: true,\n },\n cardById: [{ cardId: $('cardId') }, { id: true }],\n },\n { variables },\n);\n\nconst Main = () => {\n const { data } = useQuery(myQuery, {\n variables: variables.values,\n });\n // data response is typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node\n", + "content": "\n## Usage with Typed Document Node\n\nZeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query\nrepresentation understood by most GraphQL clients (including Apollo, urql etc) by adding the\n`--typedDocumentNode` or `--td` flag to the CLI.\n\n### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders\n\n```sh\n$ zeus https://yourschema.com/graphql ./ --typedDocumentNode\n# typedDocumentNode.ts file with typed document node builders is now in the output destination\n```\n\n### TypedDocumentNode + Apollo Client useQuery examples\n\nThe following example demonstrates usage with Apollo. Other clients should work similarly.\n\n```tsx\nimport { typedGql } from './zeus/typedDocumentNode';\nimport { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus';\nimport { useQuery } from '@apollo/client';\n\nconst variables = useZeusVariables({ cardId: 'String!' })({\n cardId: 'blabla',\n});\nconst { $ } = variables;\n\nconst myQuery = typedGql('query')(\n {\n drawCard: {\n id: true,\n Attack: true,\n Defense: true,\n },\n cardById: [{ cardId: $('cardId') }, { id: true }],\n },\n { variables },\n);\n\nconst Main = () => {\n const { data } = useQuery(myQuery, {\n // use those values or provide other values than default\n variables: variables.values,\n });\n // data response is typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node\n", "data": { "link": "plugins/typedDocumentNode", "title": "TypedDocumentNode", @@ -9,11 +9,13 @@ export const htmlContent = { }, "excerpt": "" }, - "markdown/index.md": { - "content": "\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n⚡️ Types mapped from your schema
    \n⚡️ Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
    \n⚡️ Works with Subscriptions
    \n⚡️ Infer complex response types
    \n⚡️ Create reusable selection sets (like fragments) for use across multiple queries
    \n⚡️ Supports GraphQL Unions, Interfaces, Aliases and Variables
    \n⚡️ Handles **massive** schemas
    \n⚡️ Supports Browsers, Node.js and React Native in Javascript and Typescript
    \n⚡️ Schema downloader
    \n⚡️ JSON schema generation
    \n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star ⭐️ 😊\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT 🕊\n", + "markdown/plugins/stucco.md": { + "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", "data": { - "link": "", - "title": "" + "link": "plugins/stucco", + "title": "Stucco", + "order": 3, + "category": "Plugins" }, "excerpt": "" }, @@ -27,16 +29,6 @@ export const htmlContent = { }, "excerpt": "" }, - "markdown/plugins/stucco.md": { - "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", - "data": { - "link": "plugins/stucco", - "title": "Stucco", - "order": 3, - "category": "Plugins" - }, - "excerpt": "" - }, "markdown/plugins/apollo.md": { "content": "\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. 🚀\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./ --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
    {data.drawCard.name}
    ;\n};\n```\n", "data": { @@ -47,6 +39,14 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/index.md": { + "content": "\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n⚡️ Types mapped from your schema
    \n⚡️ Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
    \n⚡️ Works with Subscriptions
    \n⚡️ Infer complex response types
    \n⚡️ Create reusable selection sets (like fragments) for use across multiple queries
    \n⚡️ Supports GraphQL Unions, Interfaces, Aliases and Variables
    \n⚡️ Handles **massive** schemas
    \n⚡️ Supports Browsers, Node.js and React Native in Javascript and Typescript
    \n⚡️ Schema downloader
    \n⚡️ JSON schema generation
    \n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star ⭐️ 😊\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT 🕊\n", + "data": { + "link": "", + "title": "" + }, + "excerpt": "" + }, "markdown/graphql/variables.md": { "content": "\n## GraphQL Variables\n\nIt's simple to perform queries with variables by using `useZeusVariables` function. It forces you to be type-safe also\n\n```ts\nimport { Gql, useZeusVariables } from './zeus';\nconst variables = useZeusVariables({ Attack: 'Int!', Defense: 'Int!' })({\n card: {\n Attack: 2,\n Defense: 3,\n description: 'Lord of the mountains',\n name: 'Golrog',\n },\n});\nconst { $ } = variables;\n\nconst addCardResult = await Gql('mutation')(\n {\n addCard: [\n {\n card: $('card'),\n },\n {\n id: true,\n description: true,\n name: true,\n Attack: true,\n skills: true,\n Children: true,\n Defense: true,\n cardImage: {\n bucket: true,\n region: true,\n key: true,\n },\n },\n ],\n },\n {\n variables,\n },\n);\n```\n\nNote: The mutation function created by the Zeus versions of React Hooks like the Apollo Client version of `useTypedMutation` can be supplied with variable values at invocation eg:\n\n```typescript\nconst [addCard, { data, loading, error }] = useTypedMutation({ ...myMutation });\n\nawait addCard({\n variables: variables.values,\n});\n```\n", "data": { @@ -57,12 +57,12 @@ export const htmlContent = { }, "excerpt": "" }, - "markdown/graphql/gql.md": { - "content": "\n## Generate GraphQL Gql Strings\n\nUse the `Zeus` function to generate a gql string\n\n```js\nimport { Zeus } from './zeus';\n\nconst stringGql = Zeus('query', {\n listCards: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n\n// stringGql value:\n// query{listCards{name skills Attack}}\n```\n", + "markdown/graphql/scalars.md": { + "content": "\n## Scalars\n\nIn Zeus you can encode and decode scalars\n\n### Decode\n\nDecode function is called every time scalar returns from backend before passing the result from Chain,Subscription functions\n\n```gql\nscalar JSON\nscalar Datetime\ntype Card{\n info: JSON!\n createdAt: Datetime\n}\ntype Query:{\n drawCard: Card!\n}\n```\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst data = await chain('query', {\n scalars: {\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n },\n})({\n drawCard: {\n info: true,\n },\n});\n```\n\nSo the `data.drawCard.info` will be of type `Date` as provided by decoder `ReturnType`\n\n### Encode Scalars\n\nYou can also encode scalars before sending them to backend\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query', {\n scalars: {\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n },\n})({\n drawCard: {\n info: true,\n },\n});\n```\n\nEncoders require value to be encoded to string and don't work with variables yet.\n\n## Place decoders and encoders in one place for reuse\n\n```ts\nimport { Chain, ZeusScalars } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst scalars = ZeusScalars({\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n});\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query', {\n scalars,\n})({\n drawCard: {\n info: true,\n },\n});\n```\n", "data": { - "link": "graphql/gql", - "title": "Gql string", - "order": 4, + "link": "graphql/scalars", + "title": "Scalars", + "order": 6, "category": "GraphQL" }, "excerpt": "" @@ -77,6 +77,16 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/graphql/gql.md": { + "content": "\n## Generate GraphQL Gql Strings\n\nUse the `Zeus` function to generate a gql string\n\n```js\nimport { Zeus } from './zeus';\n\nconst stringGql = Zeus('query', {\n listCards: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n\n// stringGql value:\n// query{listCards{name skills Attack}}\n```\n", + "data": { + "link": "graphql/gql", + "title": "Gql string", + "order": 4, + "category": "GraphQL" + }, + "excerpt": "" + }, "markdown/graphql/directives.md": { "content": "\n## GraphQL Directives\n\nZeus supports using directives on fields.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: true)`,\n },\n});\n```\n\nSo you need to put full string instead of `true`.\n\n### Use on object field\n\nUse directive on `drawCard`\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n __directives: `@skip(if:true)`,\n name: true,\n skills: true,\n },\n});\n```\n\n### Use on function\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n attack:[\n {\n cardId:['2312321']\n },\n {\n __directives: `@skip(if:true)`,\n name: true,\n skills: true,\n }\n ]\n }\n});\n```\n\n### Use it with variables\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst variables = useZeusVariables({\n isDefense: 'Boolean!'\n})({\n isDefense:true\n});\nconst { $ } = variables;\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n drawCard: {\n name: true,\n skills: true,\n Attack: `@skip(if: ${$('isDefense')})`,\n },\n {\n variables\n }\n});\n```\n", "data": { @@ -127,6 +137,16 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/basics/subscriptions.md": { + "content": "\n## Subscriptions\n\nZeus supports [GraphQL subscriptions](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) out-of-the-box and is compatible with many popular GraphQL servers.\n\nTwo standards are supported:\n\n- **graphql-ws**: the modern WebSocket-based transport, implemented by [the graphql-ws package](https://www.npmjs.com/package/graphql-ws). It is the standard [used by Apollo](https://www.apollographql.com/docs/react/data/subscriptions/#choosing-a-subscription-library).\n- **legacy** (default): a transport based on raw WebSockets.\n\n### Generating the client\n\nTo use [graphql-ws](https://www.npmjs.com/package/graphql-ws) as your subscription transport you'll need to do the following:\n\n```sh\n# Generate the client\nzeus schema.gql ./ --subscriptions graphql-ws\n# Add graphql-ws to your project's dependencies\nnpm install graphql-ws\n```\n\nIf you want to use **legacy**, use `--subscriptions legacy` instead.\n\nNo matter what implementation you chose, usage is the same:\n\n```ts\n// Create a new Subscription with some authentication headers\nconst sub = Subscription('wss://localhost:4000/graphql', {\n get headers() {\n return { Authorization: `Bearer ${getToken()}` };\n },\n});\n\n// Subscribe to new messages\nsub('subscription')({\n message: {\n body: true,\n },\n}).on(({ message }) => {\n console.log(message.body);\n});\n```\n\nIf you need to unsubscribe from a subscription (e.g. you are developing as Single Page App), you can do as follows:\n\n```ts\n// Subscribe to new messages\nconst onMessage = sub('subscription')({\n message: {\n body: true,\n },\n});\nonMessage.on(({ message }) => {\n console.log(message.body);\n});\n\n// Close the underlying connection\nonMessage.ws.close();\n```\n", + "data": { + "link": "subscriptions", + "title": "Subscriptions", + "order": 8, + "category": "Basics" + }, + "excerpt": "" + }, "markdown/basics/spec.md": { "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n", "data": { @@ -147,8 +167,18 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/basics/javascript.md": { + "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", + "data": { + "link": "javascript", + "title": "Javascript", + "order": 6, + "category": "Basics" + }, + "excerpt": "" + }, "markdown/basics/getting-started.md": { - "content": "\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n cardById: [\n {\n cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n },\n {\n name: true,\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n name\n description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n deck: {\n id: true,\n },\n}).on((response) => {\n console.log(response.deck);\n});\n```\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./ --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n", + "content": "\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n cardById: [\n {\n cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n },\n {\n name: true,\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n name\n description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n deck: {\n id: true,\n },\n}).on((response) => {\n console.log(response.deck);\n});\n```\n\n[Read more about subscriptions](./subscriptions)\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./ --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n", "data": { "link": "getting-started", "title": "Getting Started", @@ -167,16 +197,6 @@ export const htmlContent = { }, "excerpt": "" }, - "markdown/basics/javascript.md": { - "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", - "data": { - "link": "javascript", - "title": "Javascript", - "order": 6, - "category": "Basics" - }, - "excerpt": "" - }, "markdown/basics/custom.-fetch.md": { "content": "\n## Perform Queries with Thunder - An Abstracted Fetch Function\n\nWith Zeus `Thunder` you have total control of fetch function but will not lose the result type. ⚡️\n\n```js\nimport { Thunder } from './zeus';\n\n// Create thunder fetch client with endpoint, options and response handlers\nconst thunder = Thunder(async (query) => {\n const response = await fetch('https://faker.graphqleditor.com/a-team/olympus/graphql', {\n body: JSON.stringify({ query }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n return new Promise((resolve, reject) => {\n response\n .text()\n .then((text) => {\n try {\n reject(JSON.parse(text));\n } catch (err) {\n reject(text);\n }\n })\n .catch(reject);\n });\n }\n\n const json = await response.json();\n\n return json.data;\n});\n\n// Call thunder client with type-safe arguments, fields and get type-safe result type\nconst listCardsAndDraw = await thunder('query')({\n cardById: [\n {\n cardId: 'sdsd',\n },\n {\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['s', 'sd'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n```\n", "data": { diff --git a/doc/src/ssg/routes.ts b/doc/src/ssg/routes.ts index 250a003c..c2d332fd 100644 --- a/doc/src/ssg/routes.ts +++ b/doc/src/ssg/routes.ts @@ -1,21 +1,23 @@ export const routes = { "page/plugins/typedDocumentNode": "/page/plugins/typedDocumentNode", - "page/plugins/react-query": "/page/plugins/react-query", "page/plugins/stucco": "/page/plugins/stucco", + "page/plugins/react-query": "/page/plugins/react-query", "page/plugins/apollo": "/page/plugins/apollo", "page/graphql/variables": "/page/graphql/variables", - "page/graphql/gql": "/page/graphql/gql", + "page/graphql/scalars": "/page/graphql/scalars", "page/graphql/interfaces-and-unions": "/page/graphql/interfaces-and-unions", + "page/graphql/gql": "/page/graphql/gql", "page/graphql/directives": "/page/graphql/directives", "page/graphql/aliases": "/page/graphql/aliases", "page/state": "/page/state", "page/forms": "/page/forms", "page/library": "/page/library", + "page/subscriptions": "/page/subscriptions", "page/spec": "/page/spec", "page/selector": "/page/selector", + "page/javascript": "/page/javascript", "page/getting-started": "/page/getting-started", "page/esmodules": "/page/esmodules", - "page/javascript": "/page/javascript", "page/custom-fetch": "/page/custom-fetch", "index": "/index" } as const \ No newline at end of file diff --git a/doc/src/tw.css b/doc/src/tw.css index c9cc0d82..7e62e74c 100644 --- a/doc/src/tw.css +++ b/doc/src/tw.css @@ -1,5 +1,5 @@ /* -! tailwindcss v3.0.24 | MIT License | https://tailwindcss.com +! tailwindcss v3.1.4 | MIT License | https://tailwindcss.com */ /* @@ -187,6 +187,8 @@ textarea { /* 1 */ font-size: 100%; /* 1 */ + font-weight: inherit; + /* 1 */ line-height: inherit; /* 1 */ color: inherit; @@ -415,15 +417,103 @@ video { height: auto; } -/* -Ensure the default browser behavior of the `hidden` attribute. -*/ +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} -[hidden] { - display: none; +::-webkit-backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; } -*, ::before, ::after { +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; @@ -1267,11 +1357,6 @@ Ensure the default browser behavior of the `hidden` attribute. padding-bottom: 2.5rem; } -.px-20 { - padding-left: 5rem; - padding-right: 5rem; -} - .py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; @@ -1391,7 +1476,8 @@ html { .logo { background-image: linear-gradient(to right, var(--tw-gradient-stops)); --tw-gradient-from: #a855f7; - --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(168 85 247 / 0)); + --tw-gradient-to: rgb(168 85 247 / 0); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); --tw-gradient-to: #eab308; -webkit-background-clip: text; -webkit-text-fill-color: transparent; @@ -1415,20 +1501,8 @@ html { display: none; } - .sm\:px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; - } - .sm\:px-20 { padding-left: 5rem; padding-right: 5rem; } } - -@media (min-width: 768px) { - .md\:px-20 { - padding-left: 5rem; - padding-right: 5rem; - } -} diff --git a/doc/yarn.lock b/doc/yarn.lock new file mode 100644 index 00000000..5f2be4bd --- /dev/null +++ b/doc/yarn.lock @@ -0,0 +1,2473 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@tailwindcss/typography@^0.5.0": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.2.tgz#24b069dab24d7a2467d01aca0dd432cb4b29f0ee" + integrity sha512-coq8DBABRPFcVhVIk6IbKyyHUt7YTEC/C992tatFB+yEx5WGBQrCgsSFjxHUr8AWXphWckadVJbominEduYBqw== + dependencies: + lodash.castarray "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + +"@types/node@*": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" + integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== + +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + +accepts@~1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-node@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.0.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apache-crypt@^1.1.2: + version "1.2.5" + resolved "https://registry.yarnpkg.com/apache-crypt/-/apache-crypt-1.2.5.tgz#4eb6b6dbaed2041ce5bc2d802f4421f5fdadc25e" + integrity sha512-ICnYQH+DFVmw+S4Q0QY2XRXD8Ne8ewh8HgbuFH4K7022zCxgHM0Hz1xkRnUlEfAXNbwp1Cnhbedu60USIfDxvg== + dependencies: + unix-crypt-td-js "^1.1.4" + +apache-md5@^1.0.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/apache-md5/-/apache-md5-1.1.7.tgz#dcef1802700cc231d60c5e08fd088f2f9b36375a" + integrity sha512-JtHjzZmJxtzfTSjsCyHgPR155HBe5WGyUyHTaEkfy46qhwCFKx1Epm6nAxgUG3WfUZP1dWhGqj9Z2NOBeZ+uBw== + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.10, argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autolinker@^3.11.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-3.15.0.tgz#03956088648f236642a5783612f9ca16adbbed38" + integrity sha512-N/5Dk5AZnqL9k6kkHdFIGLm/0/rRuSnJwqYYhLCJjU7ZtiaJwCBzNTvjzy1zzJADngv/wvtHYcrPHytPnASeFA== + dependencies: + tslib "^2.3.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +bcryptjs@^2.3.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer@^5.2.1, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^2.0.4: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.5.1, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-remote-interface@^0.30.0: + version "0.30.1" + resolved "https://registry.yarnpkg.com/chrome-remote-interface/-/chrome-remote-interface-0.30.1.tgz#8b30a0a36274137b31536f6436ca52f32ae5cbba" + integrity sha512-emKaqCjYAgrT35nm6PvTUKJ++2NX9qAmrcNRPRGyryG9Kc7wlkvO0bmvEdNMrr8Bih2e149WctJZFzUiM1UNwg== + dependencies: + commander "2.11.x" + ws "^7.2.0" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@^1.1.4, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +commander@2.11.x: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concurrently@^7.0.0: + version "7.2.2" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.2.2.tgz#4ad4a4dfd3945f668d727379de2a29502e6a531c" + integrity sha512-DcQkI0ruil5BA/g7Xy3EWySGrFJovF5RYAYxwGvv9Jf9q9B1v3jPFP2tl6axExNf1qgF30kjoNYrangZ0ey4Aw== + dependencies: + chalk "^4.1.0" + date-fns "^2.16.1" + lodash "^4.17.21" + rxjs "^7.0.0" + shell-quote "^1.7.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^17.3.1" + +connect@^3.6.6: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@latest: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cross-fetch@^3.0.4: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +date-fns@^2.16.1: + version "2.28.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" + integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== + +depd@2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detective@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" + integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== + dependencies: + acorn-node "^1.8.2" + defined "^1.0.0" + minimist "^1.2.6" + +devtools-protocol@0.0.854822: + version "0.0.854822" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.854822.tgz#eac3a5260a6b3b4e729a09fdc0c77b0d322e777b" + integrity sha512-xd4D8kHQtB0KtWW0c9xBZD5LVtm9chkMOfs/3Yn01RhT/sFIsVtzTtypfKoFfWBaL+7xCYLxjOLkhwPXaX/Kcg== + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dotenv@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" + integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== + +duplexer@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +esbuild@^0.11.23: + version "0.11.23" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.11.23.tgz#c42534f632e165120671d64db67883634333b4b8" + integrity sha512-iaiZZ9vUF5wJV8ob1tl+5aJTrwDczlvGP0JoMmnpC2B0ppiMCu8n8gmy5ZTGl5bcG081XBVn+U+jP+mPFm5T5Q== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-stream@3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-zip@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +fast-glob@^3.2.11: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +faye-websocket@0.11.x: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@^4.1.11: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graphql-js-tree@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/graphql-js-tree/-/graphql-js-tree-0.0.3.tgz#280a9e7a6acc951567470daafc904624cfa21d62" + integrity sha512-X/AhG+XRmRHCYQRLEbQxdODF16kE9w0b5lDMLJVSpcQlEum/+QeWuHky9hRGXw1apkREQdEtbZ5QXbr2t8v8/A== + dependencies: + graphql "^15.4.0" + +graphql-zeus@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/graphql-zeus/-/graphql-zeus-4.0.4.tgz#5d1d262d7f6bfe938877169881bed59f2d325f1e" + integrity sha512-M80E3xo19A40VGZjm1I1lFw41SQhAxo+qqavsyg4V974XW2CVCH00HmgHBGMtne5LfEbFgH9yi5Q4XdGjR8GTA== + dependencies: + cross-fetch "^3.0.4" + graphql "^15.4.0" + graphql-js-tree "0.0.3" + yargs "^16.1.1" + +graphql@^15.4.0: + version "15.8.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" + integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== + +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-auth@3.1.x: + version "3.1.3" + resolved "https://registry.yarnpkg.com/http-auth/-/http-auth-3.1.3.tgz#945cfadd66521eaf8f7c84913d377d7b15f24e31" + integrity sha512-Jbx0+ejo2IOx+cRUYAGS1z6RGc6JfYUNkysZM4u4Sfk1uLlGv814F7/PIjQQAuThLdAWxb74JMGd5J8zex1VQg== + dependencies: + apache-crypt "^1.1.2" + apache-md5 "^1.0.6" + bcryptjs "^2.3.0" + uuid "^3.0.0" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" + integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-core-module@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +lilconfig@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" + integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== + +live-server@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/live-server/-/live-server-1.2.2.tgz#20b4fe5c2ca886faa61813310e28680804f48dad" + integrity sha512-t28HXLjITRGoMSrCOv4eZ88viHaBVIjKjdI5PO92Vxlu+twbk6aE0t7dVIaz6ZWkjPilYFV6OSdMYl9ybN2B4w== + dependencies: + chokidar "^2.0.4" + colors "1.4.0" + connect "^3.6.6" + cors latest + event-stream "3.3.4" + faye-websocket "0.11.x" + http-auth "3.1.x" + morgan "^1.9.1" + object-assign latest + opn latest + proxy-middleware latest + send latest + serve-index "^1.9.1" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.castarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@~2.1.17, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +morgan@^1.9.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nan@^2.12.1: + version "2.16.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== + +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-fetch@2.6.7, node-fetch@^2.6.1: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4, object-assign@latest: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +opn@latest: + version "6.0.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-6.0.0.tgz#3c5b0db676d5f97da1233d1ed42d182bc5a27d2d" + integrity sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ== + dependencies: + is-wsl "^1.1.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== + dependencies: + through "~2.3" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +postcss-import@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" + integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00" + integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" + integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== + dependencies: + lilconfig "^2.0.5" + yaml "^1.10.2" + +postcss-nested@5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" + integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== + dependencies: + postcss-selector-parser "^6.0.6" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.14, postcss@^8.4.5: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +pretty-error@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e" + integrity sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.6" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +proxy-middleware@latest: + version "0.15.0" + resolved "https://registry.yarnpkg.com/proxy-middleware/-/proxy-middleware-0.15.0.tgz#a3fdf1befb730f951965872ac2f6074c61477a56" + integrity sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +puppeteer@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-8.0.0.tgz#a236669118aa795331c2d0ca19877159e7664705" + integrity sha512-D0RzSWlepeWkxPPdK3xhTcefj8rjah1791GE82Pdjsri49sy11ci/JQsAO8K2NRukqvwEtcI+ImP5F4ZiMvtIQ== + dependencies: + debug "^4.1.0" + devtools-protocol "0.0.854822" + extract-zip "^2.0.0" + https-proxy-agent "^5.0.0" + node-fetch "^2.6.1" + pkg-dir "^4.2.0" + progress "^2.0.1" + proxy-from-env "^1.1.0" + rimraf "^3.0.2" + tar-fs "^2.0.0" + unbzip2-stream "^1.3.3" + ws "^7.2.3" + +purplehaze@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/purplehaze/-/purplehaze-0.1.1.tgz#bb97a8c0408b4c77697c44c8420c2e05b8056701" + integrity sha512-3i3DCT3ckreV1H6fp07GkrOZ7WyG1mE9lhzCOeA1YBsV0mfRKfv8SqYS2XD4vnth905Bevyt944zCs7M9GoHOg== + dependencies: + chalk "^4.1.1" + chokidar "^3.5.1" + chrome-remote-interface "^0.30.0" + dotenv "^9.0.0" + esbuild "^0.11.23" + graphql-js-tree "0.0.3" + graphql-zeus "^4.0.3" + gray-matter "^4.0.3" + live-server "^1.2.1" + node-fetch "^2.6.1" + pretty-error "^3.0.3" + puppeteer "^8.0.0" + remarkable "^2.0.1" + typescript "^4.3.2" + ws "^7.4.4" + yargs "^16.2.0" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +readable-stream@^2.0.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +remarkable@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-2.0.1.tgz#280ae6627384dfb13d98ee3995627ca550a12f31" + integrity sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA== + dependencies: + argparse "^1.0.10" + autolinker "^3.11.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +renderkid@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve@^1.1.7, resolve@^1.22.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.0.0: + version "7.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" + integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== + dependencies: + tslib "^2.1.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +send@latest: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shell-quote@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== + dependencies: + duplexer "~0.1.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tailwindcss@^3.0.15: + version "3.1.4" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.4.tgz#64b09059805505902139fa805d97046080bd90b9" + integrity sha512-NrxbFV4tYsga/hpWbRyUfIaBrNMXDxx5BsHgBS4v5tlyjf+sDsgBg5m9OxjrXIqAS/uR9kicxLKP+bEHI7BSeQ== + dependencies: + arg "^5.0.2" + chokidar "^3.5.3" + color-name "^1.1.4" + detective "^5.2.1" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.2.11" + glob-parent "^6.0.2" + is-glob "^4.0.3" + lilconfig "^2.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.14" + postcss-import "^14.1.0" + postcss-js "^4.0.0" + postcss-load-config "^3.1.4" + postcss-nested "5.0.6" + postcss-selector-parser "^6.0.10" + postcss-value-parser "^4.2.0" + quick-lru "^5.1.1" + resolve "^1.22.0" + +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +through@2, through@^2.3.8, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +tslib@^2.1.0, tslib@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +typescript@^4.3.2, typescript@^4.5.4: + version "4.7.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== + +unbzip2-stream@^1.3.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unix-crypt-td-js@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz#4912dfad1c8aeb7d20fa0a39e4c31918c1d5d5dd" + integrity sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw== + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +vary@^1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^7.2.0, ws@^7.2.3, ws@^7.4.4: + version "7.5.8" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" + integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== + +xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.0.0: + version "21.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + +yargs@^16.1.1, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.3.1: + version "17.5.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" diff --git a/package.json b/package.json index c6bae1a5..af7e0276 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,14 @@ "graphql-js-tree": "^0.1.1", "yargs": "^16.1.1" }, + "peerDependencies": { + "graphql-wq": ">=5" + }, + "peerDependenciesMeta": { + "graphql-wq": { + "optional": true + } + }, "config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" diff --git a/src/TreeToTS/functions/apiSubscription/graphql-ws.ts b/src/TreeToTS/functions/apiSubscription/graphql-ws.ts index aa9f9434..d09930d7 100644 --- a/src/TreeToTS/functions/apiSubscription/graphql-ws.ts +++ b/src/TreeToTS/functions/apiSubscription/graphql-ws.ts @@ -22,6 +22,7 @@ export const apiSubscription = (options: chainOptions) => { return (query: string) => { let onMessage: ((event: any) => void) | undefined; let onError: Sink['error'] | undefined; + let onClose: Sink['complete'] | undefined; client.subscribe( { query }, @@ -32,8 +33,9 @@ export const apiSubscription = (options: chainOptions) => { error(error) { onError && onError(error); }, - // eslint-disable-next-line @typescript-eslint/no-empty-function - complete() {}, + complete() { + onClose && onClose(); + }, }, ); @@ -45,11 +47,11 @@ export const apiSubscription = (options: chainOptions) => { error(listener: typeof onError) { onError = listener; }, - open() { - throw new Error('Unimplemented'); + open(listener: (socket: unknown) => void) { + client.on('opened', listener); }, - off() { - throw new Error('Unimplemented'); + off(listener: typeof onClose) { + onClose = listener; }, }; }; From 2f6931229e2185f072ac8392aa82700dc9889df1 Mon Sep 17 00:00:00 2001 From: Gautier Date: Mon, 27 Jun 2022 15:56:13 +0200 Subject: [PATCH 62/74] Refresh artifacts --- doc/.purplehaze/ssg/markdown.js | 140 ++++++++++++++-------------- doc/src/purplehaze.d.ts | 3 - doc/src/ssg/markdown.ts | 140 ++++++++++++++-------------- doc/src/ssg/routes.ts | 14 +-- src/TreeToTS/functions/generated.ts | 14 +-- 5 files changed, 155 insertions(+), 156 deletions(-) diff --git a/doc/.purplehaze/ssg/markdown.js b/doc/.purplehaze/ssg/markdown.js index a27362a1..fb0e005a 100644 --- a/doc/.purplehaze/ssg/markdown.js +++ b/doc/.purplehaze/ssg/markdown.js @@ -1,35 +1,5 @@ // src/ssg/markdown.ts var htmlContent = { - "markdown/plugins/typedDocumentNode.md": { - "content": "\n## Usage with Typed Document Node\n\nZeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query\nrepresentation understood by most GraphQL clients (including Apollo, urql etc) by adding the\n`--typedDocumentNode` or `--td` flag to the CLI.\n\n### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders\n\n```sh\n$ zeus https://yourschema.com/graphql ./ --typedDocumentNode\n# typedDocumentNode.ts file with typed document node builders is now in the output destination\n```\n\n### TypedDocumentNode + Apollo Client useQuery examples\n\nThe following example demonstrates usage with Apollo. Other clients should work similarly.\n\n```tsx\nimport { typedGql } from './zeus/typedDocumentNode';\nimport { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus';\nimport { useQuery } from '@apollo/client';\n\nconst variables = useZeusVariables({ cardId: 'String!' })({\n cardId: 'blabla',\n});\nconst { $ } = variables;\n\nconst myQuery = typedGql('query')(\n {\n drawCard: {\n id: true,\n Attack: true,\n Defense: true,\n },\n cardById: [{ cardId: $('cardId') }, { id: true }],\n },\n { variables },\n);\n\nconst Main = () => {\n const { data } = useQuery(myQuery, {\n // use those values or provide other values than default\n variables: variables.values,\n });\n // data response is typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node\n", - "data": { - "link": "plugins/typedDocumentNode", - "title": "TypedDocumentNode", - "order": 4, - "category": "Plugins" - }, - "excerpt": "" - }, - "markdown/plugins/stucco.md": { - "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", - "data": { - "link": "plugins/stucco", - "title": "Stucco", - "order": 3, - "category": "Plugins" - }, - "excerpt": "" - }, - "markdown/plugins/react-query.md": { - "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. \u{1F680}\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
    {data.drawCard.name}
    ;\n};\n```\n", - "data": { - "link": "plugins/react-query", - "title": "React Query", - "order": 2, - "category": "Plugins" - }, - "excerpt": "" - }, "markdown/plugins/apollo.md": { "content": "\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. \u{1F680}\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./ --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
    {data.drawCard.name}
    ;\n};\n```\n", "data": { @@ -40,6 +10,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/plugins/typedDocumentNode.md": { + "content": "\n## Usage with Typed Document Node\n\nZeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query\nrepresentation understood by most GraphQL clients (including Apollo, urql etc) by adding the\n`--typedDocumentNode` or `--td` flag to the CLI.\n\n### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders\n\n```sh\n$ zeus https://yourschema.com/graphql ./ --typedDocumentNode\n# typedDocumentNode.ts file with typed document node builders is now in the output destination\n```\n\n### TypedDocumentNode + Apollo Client useQuery examples\n\nThe following example demonstrates usage with Apollo. Other clients should work similarly.\n\n```tsx\nimport { typedGql } from './zeus/typedDocumentNode';\nimport { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus';\nimport { useQuery } from '@apollo/client';\n\nconst variables = useZeusVariables({ cardId: 'String!' })({\n cardId: 'blabla',\n});\nconst { $ } = variables;\n\nconst myQuery = typedGql('query')(\n {\n drawCard: {\n id: true,\n Attack: true,\n Defense: true,\n },\n cardById: [{ cardId: $('cardId') }, { id: true }],\n },\n { variables },\n);\n\nconst Main = () => {\n const { data } = useQuery(myQuery, {\n // use those values or provide other values than default\n variables: variables.values,\n });\n // data response is typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node\n", + "data": { + "link": "plugins/typedDocumentNode", + "title": "TypedDocumentNode", + "order": 4, + "category": "Plugins" + }, + "excerpt": "" + }, "markdown/index.md": { "content": "\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n\u26A1\uFE0F Types mapped from your schema
    \n\u26A1\uFE0F Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
    \n\u26A1\uFE0F Works with Subscriptions
    \n\u26A1\uFE0F Infer complex response types
    \n\u26A1\uFE0F Create reusable selection sets (like fragments) for use across multiple queries
    \n\u26A1\uFE0F Supports GraphQL Unions, Interfaces, Aliases and Variables
    \n\u26A1\uFE0F Handles **massive** schemas
    \n\u26A1\uFE0F Supports Browsers, Node.js and React Native in Javascript and Typescript
    \n\u26A1\uFE0F Schema downloader
    \n\u26A1\uFE0F JSON schema generation
    \n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star \u2B50\uFE0F \u{1F60A}\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT \u{1F54A}\n", "data": { @@ -58,6 +38,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/plugins/stucco.md": { + "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", + "data": { + "link": "plugins/stucco", + "title": "Stucco", + "order": 3, + "category": "Plugins" + }, + "excerpt": "" + }, "markdown/graphql/scalars.md": { "content": "\n## Scalars\n\nIn Zeus you can encode and decode scalars\n\n### Decode\n\nDecode function is called every time scalar returns from backend before passing the result from Chain,Subscription functions\n\n```gql\nscalar JSON\nscalar Datetime\ntype Card{\n info: JSON!\n createdAt: Datetime\n}\ntype Query:{\n drawCard: Card!\n}\n```\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst data = await chain('query', {\n scalars: {\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n },\n})({\n drawCard: {\n info: true,\n },\n});\n```\n\nSo the `data.drawCard.info` will be of type `Date` as provided by decoder `ReturnType`\n\n### Encode Scalars\n\nYou can also encode scalars before sending them to backend\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query', {\n scalars: {\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n },\n})({\n drawCard: {\n info: true,\n },\n});\n```\n\nEncoders require value to be encoded to string and don't work with variables yet.\n\n## Place decoders and encoders in one place for reuse\n\n```ts\nimport { Chain, ZeusScalars } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst scalars = ZeusScalars({\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n});\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query', {\n scalars,\n})({\n drawCard: {\n info: true,\n },\n});\n```\n", "data": { @@ -68,16 +58,6 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/graphql/interfaces-and-unions.md": { - "content": '\n## GraphQL Unions\n\nYou can use Zeus with [GraphQL Unions](https://spec.graphql.org/June2018/#sec-Unions):\n\n```js\nconst { drawChangeCard } = await chain(\'query\')({\n drawChangeCard: {\n __typename: true,\n \'...on EffectCard\': {\n effectSize: true,\n name: true,\n },\n \'...on SpecialCard\': {\n effect: true,\n name: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "effectSize": 195.99532210956377,\n "name": "Destinee",\n "__typename": "EffectCard"\n}\n```\n\n## GraphQL Interfaces\n\nZeus works with [GraphQL Interfaces](http://spec.graphql.org/June2018/#sec-Interfaces)\n\n```ts\nconst { nameables } = await Gql(\'query\')({\n nameables: {\n __typename: true,\n name: true,\n \'...on CardStack\': {\n cards: {\n Defense: true,\n },\n },\n \'...on Card\': {\n Attack: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "nameables": [\n {\n "__typename": "EffectCard",\n "name": "Hector"\n },\n {\n "__typename": "CardStack",\n "name": "Scotty",\n "cards": [\n {\n "Defense": 1950\n },\n {\n "Defense": 76566\n }\n ]\n },\n {\n "__typename": "SpecialCard",\n "name": "Itzel"\n }\n ]\n}\n```\n', - "data": { - "link": "graphql/interfaces-and-unions", - "title": "Interfaces and Unions", - "order": 1, - "category": "GraphQL" - }, - "excerpt": "" - }, "markdown/graphql/gql.md": { "content": "\n## Generate GraphQL Gql Strings\n\nUse the `Zeus` function to generate a gql string\n\n```js\nimport { Zeus } from './zeus';\n\nconst stringGql = Zeus('query', {\n listCards: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n\n// stringGql value:\n// query{listCards{name skills Attack}}\n```\n", "data": { @@ -98,6 +78,26 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/plugins/react-query.md": { + "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. \u{1F680}\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
    {data.drawCard.name}
    ;\n};\n```\n", + "data": { + "link": "plugins/react-query", + "title": "React Query", + "order": 2, + "category": "Plugins" + }, + "excerpt": "" + }, + "markdown/graphql/interfaces-and-unions.md": { + "content": '\n## GraphQL Unions\n\nYou can use Zeus with [GraphQL Unions](https://spec.graphql.org/June2018/#sec-Unions):\n\n```js\nconst { drawChangeCard } = await chain(\'query\')({\n drawChangeCard: {\n __typename: true,\n \'...on EffectCard\': {\n effectSize: true,\n name: true,\n },\n \'...on SpecialCard\': {\n effect: true,\n name: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "effectSize": 195.99532210956377,\n "name": "Destinee",\n "__typename": "EffectCard"\n}\n```\n\n## GraphQL Interfaces\n\nZeus works with [GraphQL Interfaces](http://spec.graphql.org/June2018/#sec-Interfaces)\n\n```ts\nconst { nameables } = await Gql(\'query\')({\n nameables: {\n __typename: true,\n name: true,\n \'...on CardStack\': {\n cards: {\n Defense: true,\n },\n },\n \'...on Card\': {\n Attack: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "nameables": [\n {\n "__typename": "EffectCard",\n "name": "Hector"\n },\n {\n "__typename": "CardStack",\n "name": "Scotty",\n "cards": [\n {\n "Defense": 1950\n },\n {\n "Defense": 76566\n }\n ]\n },\n {\n "__typename": "SpecialCard",\n "name": "Itzel"\n }\n ]\n}\n```\n', + "data": { + "link": "graphql/interfaces-and-unions", + "title": "Interfaces and Unions", + "order": 1, + "category": "GraphQL" + }, + "excerpt": "" + }, "markdown/graphql/aliases.md": { "content": '\n## GraphQL Aliases\n\nZeus supports declaring aliases \u{1F978}\n\n```ts\nconst aliasedQueryExecute = await chain(\'query\')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: [\'1\'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n "listCards": [\n {\n "atak": [\n {\n "name": "Zelma",\n "description": "Central"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n', "data": { @@ -138,16 +138,6 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/basics/subscriptions.md": { - "content": "\n## Subscriptions\n\nZeus supports [GraphQL subscriptions](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) out-of-the-box and is compatible with many popular GraphQL servers.\n\nTwo standards are supported:\n\n- **graphql-ws**: the modern WebSocket-based transport, implemented by [the graphql-ws package](https://www.npmjs.com/package/graphql-ws). It is the standard [used by Apollo](https://www.apollographql.com/docs/react/data/subscriptions/#choosing-a-subscription-library).\n- **legacy** (default): a transport based on raw WebSockets.\n\n### Generating the client\n\nTo use [graphql-ws](https://www.npmjs.com/package/graphql-ws) as your subscription transport you'll need to do the following:\n\n```sh\n# Generate the client\nzeus schema.gql ./ --subscriptions graphql-ws\n# Add graphql-ws to your project's dependencies\nnpm install graphql-ws\n```\n\nIf you want to use **legacy**, use `--subscriptions legacy` instead.\n\nNo matter what implementation you chose, usage is the same:\n\n```ts\n// Create a new Subscription with some authentication headers\nconst sub = Subscription('wss://localhost:4000/graphql', {\n get headers() {\n return { Authorization: `Bearer ${getToken()}` };\n },\n});\n\n// Subscribe to new messages\nsub('subscription')({\n message: {\n body: true,\n },\n}).on(({ message }) => {\n console.log(message.body);\n});\n```\n\nIf you need to unsubscribe from a subscription (e.g. you are developing as Single Page App), you can do as follows:\n\n```ts\n// Subscribe to new messages\nconst onMessage = sub('subscription')({\n message: {\n body: true,\n },\n});\nonMessage.on(({ message }) => {\n console.log(message.body);\n});\n\n// Close the underlying connection\nonMessage.ws.close();\n```\n", - "data": { - "link": "subscriptions", - "title": "Subscriptions", - "order": 8, - "category": "Basics" - }, - "excerpt": "" - }, "markdown/basics/spec.md": { "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n", "data": { @@ -158,6 +148,16 @@ var htmlContent = { }, "excerpt": "" }, + "markdown/basics/getting-started.md": { + "content": "\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n cardById: [\n {\n cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n },\n {\n name: true,\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n name\n description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n deck: {\n id: true,\n },\n}).on((response) => {\n console.log(response.deck);\n});\n```\n\n[Read more about subscriptions](./subscriptions)\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./ --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n", + "data": { + "link": "getting-started", + "title": "Getting Started", + "order": 0, + "category": "Basics" + }, + "excerpt": "" + }, "markdown/basics/selector.md": { "content": "\n## Generate Reusable Selection Sets\n\nIn TypeScript Zeus can help make type-safe Zeus selection sets to reuse across queries.\n\n```ts\nimport { Selector, Chain } from './zeus';\n\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\nconst cardSelector = Selector('Card')({\n name: true,\n description: true,\n Attack: true,\n skills: true,\n Defense: true,\n cardImage: {\n key: true,\n bucket: true,\n },\n});\n\nconst queryWithSelectionSet = await chain('query')({\n drawCard: cardSelector,\n});\n```\n\n## Inferring the response type\n\nSometimes you would like to infer the response type. The it is best to use selectors\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector(\"Query\"){\n drawCard: {\n Attack: true,\n Children: true,\n id: true,\n },\n});\n\ntype InferredResponseType = InputType;\n```\n", "data": { @@ -168,42 +168,42 @@ var htmlContent = { }, "excerpt": "" }, - "markdown/basics/javascript.md": { - "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", + "markdown/basics/subscriptions.md": { + "content": "\n## Subscriptions\n\nZeus supports [GraphQL subscriptions](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) out-of-the-box and is compatible with many popular GraphQL servers.\n\nTwo standards are supported:\n\n- **graphql-ws**: the modern WebSocket-based transport, implemented by [the graphql-ws package](https://www.npmjs.com/package/graphql-ws). It is the standard [used by Apollo](https://www.apollographql.com/docs/react/data/subscriptions/#choosing-a-subscription-library).\n- **legacy** (default): a transport based on raw WebSockets.\n\n### Generating the client\n\nTo use [graphql-ws](https://www.npmjs.com/package/graphql-ws) as your subscription transport you'll need to do the following:\n\n```sh\n# Generate the client\nzeus schema.gql ./ --subscriptions graphql-ws\n# Add graphql-ws to your project's dependencies\nnpm install graphql-ws\n```\n\nIf you want to use **legacy**, use `--subscriptions legacy` instead.\n\nNo matter what implementation you chose, usage is the same:\n\n```ts\n// Create a new Subscription with some authentication headers\nconst sub = Subscription('wss://localhost:4000/graphql', {\n get headers() {\n return { Authorization: `Bearer ${getToken()}` };\n },\n});\n\n// Subscribe to new messages\nsub('subscription')({\n message: {\n body: true,\n },\n}).on(({ message }) => {\n console.log(message.body);\n});\n```\n\nIf you need to unsubscribe from a subscription (e.g. you are developing as Single Page App), you can do as follows:\n\n```ts\n// Subscribe to new messages\nconst onMessage = sub('subscription')({\n message: {\n body: true,\n },\n});\nonMessage.on(({ message }) => {\n console.log(message.body);\n});\n\n// Close the underlying connection\nonMessage.ws.close();\n```\n", "data": { - "link": "javascript", - "title": "Javascript", - "order": 6, + "link": "subscriptions", + "title": "Subscriptions", + "order": 8, "category": "Basics" }, "excerpt": "" }, - "markdown/basics/getting-started.md": { - "content": "\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n cardById: [\n {\n cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n },\n {\n name: true,\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n name\n description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n deck: {\n id: true,\n },\n}).on((response) => {\n console.log(response.deck);\n});\n```\n\n[Read more about subscriptions](./subscriptions)\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./ --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n", + "markdown/basics/custom.-fetch.md": { + "content": "\n## Perform Queries with Thunder - An Abstracted Fetch Function\n\nWith Zeus `Thunder` you have total control of fetch function but will not lose the result type. \u26A1\uFE0F\n\n```js\nimport { Thunder } from './zeus';\n\n// Create thunder fetch client with endpoint, options and response handlers\nconst thunder = Thunder(async (query) => {\n const response = await fetch('https://faker.graphqleditor.com/a-team/olympus/graphql', {\n body: JSON.stringify({ query }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n return new Promise((resolve, reject) => {\n response\n .text()\n .then((text) => {\n try {\n reject(JSON.parse(text));\n } catch (err) {\n reject(text);\n }\n })\n .catch(reject);\n });\n }\n\n const json = await response.json();\n\n return json.data;\n});\n\n// Call thunder client with type-safe arguments, fields and get type-safe result type\nconst listCardsAndDraw = await thunder('query')({\n cardById: [\n {\n cardId: 'sdsd',\n },\n {\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['s', 'sd'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n```\n", "data": { - "link": "getting-started", - "title": "Getting Started", - "order": 0, + "link": "custom-fetch", + "title": "Custom fetch", + "order": 7, "category": "Basics" }, "excerpt": "" }, - "markdown/basics/esmodule.md": { - "content": "\n#### Return with .js import for esModules\n\nDue to validity of `.js` imports in TS for esmodules you can use flag `es` to generate `.js` imports\n\n```sh\n$ zeus schema.graphql ./ --es\n```\n", + "markdown/basics/javascript.md": { + "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", "data": { - "link": "esmodules", - "title": "EsModules", - "order": 3, + "link": "javascript", + "title": "Javascript", + "order": 6, "category": "Basics" }, "excerpt": "" }, - "markdown/basics/custom.-fetch.md": { - "content": "\n## Perform Queries with Thunder - An Abstracted Fetch Function\n\nWith Zeus `Thunder` you have total control of fetch function but will not lose the result type. \u26A1\uFE0F\n\n```js\nimport { Thunder } from './zeus';\n\n// Create thunder fetch client with endpoint, options and response handlers\nconst thunder = Thunder(async (query) => {\n const response = await fetch('https://faker.graphqleditor.com/a-team/olympus/graphql', {\n body: JSON.stringify({ query }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n return new Promise((resolve, reject) => {\n response\n .text()\n .then((text) => {\n try {\n reject(JSON.parse(text));\n } catch (err) {\n reject(text);\n }\n })\n .catch(reject);\n });\n }\n\n const json = await response.json();\n\n return json.data;\n});\n\n// Call thunder client with type-safe arguments, fields and get type-safe result type\nconst listCardsAndDraw = await thunder('query')({\n cardById: [\n {\n cardId: 'sdsd',\n },\n {\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['s', 'sd'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n```\n", + "markdown/basics/esmodule.md": { + "content": "\n#### Return with .js import for esModules\n\nDue to validity of `.js` imports in TS for esmodules you can use flag `es` to generate `.js` imports\n\n```sh\n$ zeus schema.graphql ./ --es\n```\n", "data": { - "link": "custom-fetch", - "title": "Custom fetch", - "order": 7, + "link": "esmodules", + "title": "EsModules", + "order": 3, "category": "Basics" }, "excerpt": "" diff --git a/doc/src/purplehaze.d.ts b/doc/src/purplehaze.d.ts index 03ad53a2..5bc56274 100644 --- a/doc/src/purplehaze.d.ts +++ b/doc/src/purplehaze.d.ts @@ -17,10 +17,8 @@ declare const ssg: {"envs": {"PYENV_VIRTUALENV_INIT": string; "VSCODE_GIT_ASKPASS_NODE": string; "COLORTERM": string; "WSL_DISTRO_NAME": string; -"COLOR": string; "VOLTA_HOME": string; "_VOLTA_TOOL_RECURSION": string; -"FORCE_COLOR": string; "LOGNAME": string; "NAME": string; "WSL_INTEROP": string; @@ -41,7 +39,6 @@ declare const ssg: {"envs": {"PYENV_VIRTUALENV_INIT": string; "HOSTTYPE": string; "INIT_CWD": string; "WSLENV": string; -"EDITOR": string; "PATH_PREFIX": string}; "config": {"out": string; "in": string; diff --git a/doc/src/ssg/markdown.ts b/doc/src/ssg/markdown.ts index f704f01d..b0e11920 100644 --- a/doc/src/ssg/markdown.ts +++ b/doc/src/ssg/markdown.ts @@ -1,34 +1,4 @@ export const htmlContent = { - "markdown/plugins/typedDocumentNode.md": { - "content": "\n## Usage with Typed Document Node\n\nZeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query\nrepresentation understood by most GraphQL clients (including Apollo, urql etc) by adding the\n`--typedDocumentNode` or `--td` flag to the CLI.\n\n### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders\n\n```sh\n$ zeus https://yourschema.com/graphql ./ --typedDocumentNode\n# typedDocumentNode.ts file with typed document node builders is now in the output destination\n```\n\n### TypedDocumentNode + Apollo Client useQuery examples\n\nThe following example demonstrates usage with Apollo. Other clients should work similarly.\n\n```tsx\nimport { typedGql } from './zeus/typedDocumentNode';\nimport { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus';\nimport { useQuery } from '@apollo/client';\n\nconst variables = useZeusVariables({ cardId: 'String!' })({\n cardId: 'blabla',\n});\nconst { $ } = variables;\n\nconst myQuery = typedGql('query')(\n {\n drawCard: {\n id: true,\n Attack: true,\n Defense: true,\n },\n cardById: [{ cardId: $('cardId') }, { id: true }],\n },\n { variables },\n);\n\nconst Main = () => {\n const { data } = useQuery(myQuery, {\n // use those values or provide other values than default\n variables: variables.values,\n });\n // data response is typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node\n", - "data": { - "link": "plugins/typedDocumentNode", - "title": "TypedDocumentNode", - "order": 4, - "category": "Plugins" - }, - "excerpt": "" - }, - "markdown/plugins/stucco.md": { - "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", - "data": { - "link": "plugins/stucco", - "title": "Stucco", - "order": 3, - "category": "Plugins" - }, - "excerpt": "" - }, - "markdown/plugins/react-query.md": { - "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. 🚀\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
    {data.drawCard.name}
    ;\n};\n```\n", - "data": { - "link": "plugins/react-query", - "title": "React Query", - "order": 2, - "category": "Plugins" - }, - "excerpt": "" - }, "markdown/plugins/apollo.md": { "content": "\n## Usage with Apollo GraphQL\n\nZeus can generate type-safe versions of Apollo Client's `useQuery`, `useMutation`, `useSubscription` and `useLazyQuery` React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--apollo` flag to the CLI. All types in the `data` response are then inherited from the Zeus query. 🚀\n\n### Generate Type-Safe Zeus Schema And Apollo Client Type-Safe Hooks\n\n```sh\n$ zeus schema.graphql ./ --apollo\n# apollo.ts file with typed hooks is now in the output destination\n```\n\n### Apollo Client `useTypedQuery` Hook Example\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n### Inferring the response type for Apollo Client\n\nIf you would like to infer the response type of your query for Apollo Client you can use the Zeus `Selector` function and `InputType` utility from the Zeus generated library\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector('Card')({\n drawCard: {\n id: true,\n name: true,\n Attack: true,\n Children: true,\n },\n});\n\ntype DrawCardResponseType = InputType;\n// DrawCardResponseType is now the response type from the query\n```\n\nNow `drawCardQuery` can be reused directly in the typed Apollo Client `useTypedQuery` later\n\n```tsx\nimport { useTypedQuery } from './zeus/apollo';\nimport { drawCardQuery } from './';\n\nconst Main = () => {\n const { data } = useTypedQuery(drawCardQuery);\n // data is of type DrawCardResponseType as per the above example\n return
    {data.drawCard.name}
    ;\n};\n```\n", "data": { @@ -39,6 +9,16 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/plugins/typedDocumentNode.md": { + "content": "\n## Usage with Typed Document Node\n\nZeus can generate builders for [`TypedDocumentNode`][typed-document-node], a type-safe query\nrepresentation understood by most GraphQL clients (including Apollo, urql etc) by adding the\n`--typedDocumentNode` or `--td` flag to the CLI.\n\n### Generate Type-Safe Zeus Schema And TypedDocumentNode query builders\n\n```sh\n$ zeus https://yourschema.com/graphql ./ --typedDocumentNode\n# typedDocumentNode.ts file with typed document node builders is now in the output destination\n```\n\n### TypedDocumentNode + Apollo Client useQuery examples\n\nThe following example demonstrates usage with Apollo. Other clients should work similarly.\n\n```tsx\nimport { typedGql } from './zeus/typedDocumentNode';\nimport { Gql, SpecialSkills, Thunder, Zeus, InputType, Selector, GraphQLTypes, useZeusVariables } from './zeus';\nimport { useQuery } from '@apollo/client';\n\nconst variables = useZeusVariables({ cardId: 'String!' })({\n cardId: 'blabla',\n});\nconst { $ } = variables;\n\nconst myQuery = typedGql('query')(\n {\n drawCard: {\n id: true,\n Attack: true,\n Defense: true,\n },\n cardById: [{ cardId: $('cardId') }, { id: true }],\n },\n { variables },\n);\n\nconst Main = () => {\n const { data } = useQuery(myQuery, {\n // use those values or provide other values than default\n variables: variables.values,\n });\n // data response is typed\n return
    {data.drawCard.name}
    ;\n};\n```\n\n[typed-document-node]: https://www.graphql-code-generator.com/plugins/typed-document-node\n", + "data": { + "link": "plugins/typedDocumentNode", + "title": "TypedDocumentNode", + "order": 4, + "category": "Plugins" + }, + "excerpt": "" + }, "markdown/index.md": { "content": "\nStrongly Typed GraphQL from the team at [GraphQL Editor](https://graphqleditor.com/?utm_source=graphql_zeus_github)\n\nGraphQL Zeus is the absolute best way to interact with your GraphQL endpoints in a type-safe way. Zeus uses your schema to generate Typescript types and strongly typed clients to unlock the power, efficiency, productivity and safety of Typescript on your GraphQL requests.\n\n## Features\n\n⚡️ Types mapped from your schema
    \n⚡️ Works with Apollo Client, React Query, Stucco Subscriptions _(\\*more coming soon...)_
    \n⚡️ Works with Subscriptions
    \n⚡️ Infer complex response types
    \n⚡️ Create reusable selection sets (like fragments) for use across multiple queries
    \n⚡️ Supports GraphQL Unions, Interfaces, Aliases and Variables
    \n⚡️ Handles **massive** schemas
    \n⚡️ Supports Browsers, Node.js and React Native in Javascript and Typescript
    \n⚡️ Schema downloader
    \n⚡️ JSON schema generation
    \n\n## Generate Types With Zeus CLI Example\n\nSimply run Zeus in your terminal to output your types file based on your graphql schema\n\n![](/images/zeus-bash-command.png)\n\n## Usage Example\n\nExample using a generated `chain` client. Queries, mutations and subscriptions are now type-safe in arguments, field selections and response types.\n\n![](/images/example.png)\n\n## Support And Community\n\n[Join our GraphQL Editor Channel on Slack!](https://join.slack.com/t/graphqleditor/shared_invite/enQtNDkwOTgyOTM5OTc1LWI4YjU3N2U5NGVkNzQ2NzY5MGUxMTJiNjFlZDM1Zjc2OWRmNTI0NDM3OWUxYTk4Yjk3MzZlY2QwOWUzZmM2NDI)\n\nLeave a GitHub star ⭐️ 😊\n\nSpread the word!\n\n## Contribute\n\nFor a complete guide to contributing to GraphQL Editor, see the [Contribution Guide](CONTRIBUTING.md).\n\n1. Fork this repo\n2. Create your feature branch: git checkout -b feature-name\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Submit a pull request\n\n## License\n\nMIT 🕊\n", "data": { @@ -57,6 +37,16 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/plugins/stucco.md": { + "content": "\n## Usage with Stucco Subscriptions\n\nZeus can generate types for the Stucco Subscription library by adding the --stuccoSubscriptions flag to the CLI. All types in `data` are then inherited from the Zeus Query\n\n```sh\n$ zeus schema.graphql ./ --stuccoSubscriptions\n```\n\n```typescript\nstuccoSubscriptions(\n (apiFetchResult) => [apiFetchResult.url],\n 'https://my.backend/graphql',\n)({ drawCard: { Attack: true } }).on((args) => args.drawCard.Attack);\n```\n", + "data": { + "link": "plugins/stucco", + "title": "Stucco", + "order": 3, + "category": "Plugins" + }, + "excerpt": "" + }, "markdown/graphql/scalars.md": { "content": "\n## Scalars\n\nIn Zeus you can encode and decode scalars\n\n### Decode\n\nDecode function is called every time scalar returns from backend before passing the result from Chain,Subscription functions\n\n```gql\nscalar JSON\nscalar Datetime\ntype Card{\n info: JSON!\n createdAt: Datetime\n}\ntype Query:{\n drawCard: Card!\n}\n```\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst data = await chain('query', {\n scalars: {\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n },\n})({\n drawCard: {\n info: true,\n },\n});\n```\n\nSo the `data.drawCard.info` will be of type `Date` as provided by decoder `ReturnType`\n\n### Encode Scalars\n\nYou can also encode scalars before sending them to backend\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query', {\n scalars: {\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n },\n})({\n drawCard: {\n info: true,\n },\n});\n```\n\nEncoders require value to be encoded to string and don't work with variables yet.\n\n## Place decoders and encoders in one place for reuse\n\n```ts\nimport { Chain, ZeusScalars } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\nconst scalars = ZeusScalars({\n JSON: {\n encode: (e: unknown) => JSON.stringify(e),\n decode: (e: unknown) => JSON.parse(e as string),\n },\n Datetime: {\n decode: (e: unknown) => new Date(e as string),\n encode: (e: unknown) => (e as Date).toISOString(),\n },\n});\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query', {\n scalars,\n})({\n drawCard: {\n info: true,\n },\n});\n```\n", "data": { @@ -67,16 +57,6 @@ export const htmlContent = { }, "excerpt": "" }, - "markdown/graphql/interfaces-and-unions.md": { - "content": "\n## GraphQL Unions\n\nYou can use Zeus with [GraphQL Unions](https://spec.graphql.org/June2018/#sec-Unions):\n\n```js\nconst { drawChangeCard } = await chain('query')({\n drawChangeCard: {\n __typename: true,\n '...on EffectCard': {\n effectSize: true,\n name: true,\n },\n '...on SpecialCard': {\n effect: true,\n name: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"effectSize\": 195.99532210956377,\n \"name\": \"Destinee\",\n \"__typename\": \"EffectCard\"\n}\n```\n\n## GraphQL Interfaces\n\nZeus works with [GraphQL Interfaces](http://spec.graphql.org/June2018/#sec-Interfaces)\n\n```ts\nconst { nameables } = await Gql('query')({\n nameables: {\n __typename: true,\n name: true,\n '...on CardStack': {\n cards: {\n Defense: true,\n },\n },\n '...on Card': {\n Attack: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"nameables\": [\n {\n \"__typename\": \"EffectCard\",\n \"name\": \"Hector\"\n },\n {\n \"__typename\": \"CardStack\",\n \"name\": \"Scotty\",\n \"cards\": [\n {\n \"Defense\": 1950\n },\n {\n \"Defense\": 76566\n }\n ]\n },\n {\n \"__typename\": \"SpecialCard\",\n \"name\": \"Itzel\"\n }\n ]\n}\n```\n", - "data": { - "link": "graphql/interfaces-and-unions", - "title": "Interfaces and Unions", - "order": 1, - "category": "GraphQL" - }, - "excerpt": "" - }, "markdown/graphql/gql.md": { "content": "\n## Generate GraphQL Gql Strings\n\nUse the `Zeus` function to generate a gql string\n\n```js\nimport { Zeus } from './zeus';\n\nconst stringGql = Zeus('query', {\n listCards: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n\n// stringGql value:\n// query{listCards{name skills Attack}}\n```\n", "data": { @@ -97,6 +77,26 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/plugins/react-query.md": { + "content": "\n## Usage with React Query\n\nZeus can generate type-safe versions of React Query's `useQuery`, `useMutation` etc.. React hooks as `useTypedQuery`, `useTypedMutation` etc... by adding the `--reactQuery` flag to the CLI. All types `data` response are then inherited from the Zeus query. 🚀\n\n```sh\n$ zeus schema.graphql ./ --reactQuery\n```\n\n```tsx\nimport { useTypedQuery } from './zeus/reactQuery';\n\nconst Main = () => {\n const { data } = useTypedQuery({\n // Get autocomplete here:\n drawCard: {\n name: true,\n },\n });\n // data response is now typed\n return
    {data.drawCard.name}
    ;\n};\n```\n", + "data": { + "link": "plugins/react-query", + "title": "React Query", + "order": 2, + "category": "Plugins" + }, + "excerpt": "" + }, + "markdown/graphql/interfaces-and-unions.md": { + "content": "\n## GraphQL Unions\n\nYou can use Zeus with [GraphQL Unions](https://spec.graphql.org/June2018/#sec-Unions):\n\n```js\nconst { drawChangeCard } = await chain('query')({\n drawChangeCard: {\n __typename: true,\n '...on EffectCard': {\n effectSize: true,\n name: true,\n },\n '...on SpecialCard': {\n effect: true,\n name: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"effectSize\": 195.99532210956377,\n \"name\": \"Destinee\",\n \"__typename\": \"EffectCard\"\n}\n```\n\n## GraphQL Interfaces\n\nZeus works with [GraphQL Interfaces](http://spec.graphql.org/June2018/#sec-Interfaces)\n\n```ts\nconst { nameables } = await Gql('query')({\n nameables: {\n __typename: true,\n name: true,\n '...on CardStack': {\n cards: {\n Defense: true,\n },\n },\n '...on Card': {\n Attack: true,\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"nameables\": [\n {\n \"__typename\": \"EffectCard\",\n \"name\": \"Hector\"\n },\n {\n \"__typename\": \"CardStack\",\n \"name\": \"Scotty\",\n \"cards\": [\n {\n \"Defense\": 1950\n },\n {\n \"Defense\": 76566\n }\n ]\n },\n {\n \"__typename\": \"SpecialCard\",\n \"name\": \"Itzel\"\n }\n ]\n}\n```\n", + "data": { + "link": "graphql/interfaces-and-unions", + "title": "Interfaces and Unions", + "order": 1, + "category": "GraphQL" + }, + "excerpt": "" + }, "markdown/graphql/aliases.md": { "content": "\n## GraphQL Aliases\n\nZeus supports declaring aliases 🥸\n\n```ts\nconst aliasedQueryExecute = await chain('query')({\n listCards: {\n __alias: {\n atak: {\n attack: [\n { cardID: ['1'] },\n {\n name: true,\n description: true,\n },\n ],\n },\n },\n },\n});\n```\n\nResponse:\n\n```json\n{\n \"listCards\": [\n {\n \"atak\": [\n {\n \"name\": \"Zelma\",\n \"description\": \"Central\"\n }\n ]\n }\n ]\n}\n```\n\nNow you can access properties type-safe like this\n\n```javascript\naliasedQueryExecute.listCards.map((c) => c.atak);\n```\n", "data": { @@ -137,16 +137,6 @@ export const htmlContent = { }, "excerpt": "" }, - "markdown/basics/subscriptions.md": { - "content": "\n## Subscriptions\n\nZeus supports [GraphQL subscriptions](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) out-of-the-box and is compatible with many popular GraphQL servers.\n\nTwo standards are supported:\n\n- **graphql-ws**: the modern WebSocket-based transport, implemented by [the graphql-ws package](https://www.npmjs.com/package/graphql-ws). It is the standard [used by Apollo](https://www.apollographql.com/docs/react/data/subscriptions/#choosing-a-subscription-library).\n- **legacy** (default): a transport based on raw WebSockets.\n\n### Generating the client\n\nTo use [graphql-ws](https://www.npmjs.com/package/graphql-ws) as your subscription transport you'll need to do the following:\n\n```sh\n# Generate the client\nzeus schema.gql ./ --subscriptions graphql-ws\n# Add graphql-ws to your project's dependencies\nnpm install graphql-ws\n```\n\nIf you want to use **legacy**, use `--subscriptions legacy` instead.\n\nNo matter what implementation you chose, usage is the same:\n\n```ts\n// Create a new Subscription with some authentication headers\nconst sub = Subscription('wss://localhost:4000/graphql', {\n get headers() {\n return { Authorization: `Bearer ${getToken()}` };\n },\n});\n\n// Subscribe to new messages\nsub('subscription')({\n message: {\n body: true,\n },\n}).on(({ message }) => {\n console.log(message.body);\n});\n```\n\nIf you need to unsubscribe from a subscription (e.g. you are developing as Single Page App), you can do as follows:\n\n```ts\n// Subscribe to new messages\nconst onMessage = sub('subscription')({\n message: {\n body: true,\n },\n});\nonMessage.on(({ message }) => {\n console.log(message.body);\n});\n\n// Close the underlying connection\nonMessage.ws.close();\n```\n", - "data": { - "link": "subscriptions", - "title": "Subscriptions", - "order": 8, - "category": "Basics" - }, - "excerpt": "" - }, "markdown/basics/spec.md": { "content": "\n## Zeus Spec\n\nPromise of type query data object is returned.\n\n```\nPROMISE_RETURNING_OBJECT = Chain.[OPERATION_NAME]({\n ...FUNCTION_FIELD_PARAMS\n})(\n ...QUERY_OBJECT\n).then ( RESPONSE_OBJECT => RESPONSE_OBJECT[OPERATION_FIELD] )\n```\n\nSimple function params object\n\n```\nFUNCTION_FIELD_PARAMS = {\n KEY: VALUE\n}\n```\n\nQuery object\n\n```\nQUERY_OBJECT = {\n ...RETURN_PARAMS\n}\n```\n\nReturn params is an object containing RETURN_KEY - true if it is a `scalar`, RETURN_PARAMS if `type` otherwise it is a function where you pass field params and type return params.\n\n```\nRETURN_PARAMS = {\n RETURN_KEY: true,\n RETURN_KEY: {\n ...RETURN_PARAMS\n },\n RETURN_FUNCTION_KEY:[\n {\n ...FUNCTION_FIELD_PARAMS\n },\n {\n ...RETURN_PARAMS\n }\n ]\n}\n```\n\n### Use Alias Spec\n\n```\nRETURN_PARAMS = {\n __alias: RETURN_PARAMS\n}\n```\n\nAccess aliased operation type-safe\n\n```\nPROMISE_RETURNING_OBJECT[ALIAS_STRING]\n```\n", "data": { @@ -157,6 +147,16 @@ export const htmlContent = { }, "excerpt": "" }, + "markdown/basics/getting-started.md": { + "content": "\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n cardById: [\n {\n cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n },\n {\n name: true,\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n name\n description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n deck: {\n id: true,\n },\n}).on((response) => {\n console.log(response.deck);\n});\n```\n\n[Read more about subscriptions](./subscriptions)\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./ --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n", + "data": { + "link": "getting-started", + "title": "Getting Started", + "order": 0, + "category": "Basics" + }, + "excerpt": "" + }, "markdown/basics/selector.md": { "content": "\n## Generate Reusable Selection Sets\n\nIn TypeScript Zeus can help make type-safe Zeus selection sets to reuse across queries.\n\n```ts\nimport { Selector, Chain } from './zeus';\n\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\nconst cardSelector = Selector('Card')({\n name: true,\n description: true,\n Attack: true,\n skills: true,\n Defense: true,\n cardImage: {\n key: true,\n bucket: true,\n },\n});\n\nconst queryWithSelectionSet = await chain('query')({\n drawCard: cardSelector,\n});\n```\n\n## Inferring the response type\n\nSometimes you would like to infer the response type. The it is best to use selectors\n\n```tsx\nimport { Selector, InputType, GraphQLTypes } from './zeus';\n\nexport const drawCardQuery = Selector(\"Query\"){\n drawCard: {\n Attack: true,\n Children: true,\n id: true,\n },\n});\n\ntype InferredResponseType = InputType;\n```\n", "data": { @@ -167,42 +167,42 @@ export const htmlContent = { }, "excerpt": "" }, - "markdown/basics/javascript.md": { - "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", + "markdown/basics/subscriptions.md": { + "content": "\n## Subscriptions\n\nZeus supports [GraphQL subscriptions](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) out-of-the-box and is compatible with many popular GraphQL servers.\n\nTwo standards are supported:\n\n- **graphql-ws**: the modern WebSocket-based transport, implemented by [the graphql-ws package](https://www.npmjs.com/package/graphql-ws). It is the standard [used by Apollo](https://www.apollographql.com/docs/react/data/subscriptions/#choosing-a-subscription-library).\n- **legacy** (default): a transport based on raw WebSockets.\n\n### Generating the client\n\nTo use [graphql-ws](https://www.npmjs.com/package/graphql-ws) as your subscription transport you'll need to do the following:\n\n```sh\n# Generate the client\nzeus schema.gql ./ --subscriptions graphql-ws\n# Add graphql-ws to your project's dependencies\nnpm install graphql-ws\n```\n\nIf you want to use **legacy**, use `--subscriptions legacy` instead.\n\nNo matter what implementation you chose, usage is the same:\n\n```ts\n// Create a new Subscription with some authentication headers\nconst sub = Subscription('wss://localhost:4000/graphql', {\n get headers() {\n return { Authorization: `Bearer ${getToken()}` };\n },\n});\n\n// Subscribe to new messages\nsub('subscription')({\n message: {\n body: true,\n },\n}).on(({ message }) => {\n console.log(message.body);\n});\n```\n\nIf you need to unsubscribe from a subscription (e.g. you are developing as Single Page App), you can do as follows:\n\n```ts\n// Subscribe to new messages\nconst onMessage = sub('subscription')({\n message: {\n body: true,\n },\n});\nonMessage.on(({ message }) => {\n console.log(message.body);\n});\n\n// Close the underlying connection\nonMessage.ws.close();\n```\n", "data": { - "link": "javascript", - "title": "Javascript", - "order": 6, + "link": "subscriptions", + "title": "Subscriptions", + "order": 8, "category": "Basics" }, "excerpt": "" }, - "markdown/basics/getting-started.md": { - "content": "\n## Getting Started\n\nUse the Zeus CLI to generate types and GraphQL clients based on your schema which you can then import into your projects to autocomplete, query and use GraphQL responses in a type-safe way.\n\n## Quick Start\n\n### Installation\n\n```sh\n$ npm i -g graphql-zeus\n# OR\n# yarn global add graphql-zeus\n```\n\nYou can also install locally to a project and then use as a npm or yarn script command or with `npx` or `yarn` directly eg:\n\n```sh\n$ npx zeus schema.graphql ./\n# OR\n# yarn zeus schema.graphql ./\n```\n\n### TypeScript\n\nZeus is Typescript native, you can refer to imported types directly from the generated output of the CLI\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Demo Endpoint\n\nAll demo code here is using the demo GraphQL endpoint of [Olympus Cards](https://app.graphqleditor.com/a-team/olympus) built with [GraphQL Editor](https://graphqleditor.com/). Feel free to check out the [GraphiQL interface](https://faker.graphqleditor.com/a-team/olympus/graphql) too.\n\n## Query With Zeus Chain Client\n\nYou can now use the Zeus `Chain` client from the generated output to make type-safe queries and mutations to your endpoint and receive type-safe responses.\n\n```ts\nimport { Chain } from './zeus';\n\n// Create a Chain client instance with the endpoint\nconst chain = Chain('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Query the endpoint with Typescript autocomplete for arguments and response fields\nconst listCardsAndDraw = await chain('query')({\n cardById: [\n {\n cardId: 'da21ce0a-40a0-43ba-85c2-6eec2bf1ae21',\n },\n {\n name: true,\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['66c1af53-7d5e-4d89-94b5-1ebf593508f6', 'fc0e5757-4d8a-4f6a-a23b-356ce167f873'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n// listCardsAndDraw is now typed as the response of the query.\n```\n\nWhen querying a GraphQL field which takes an argument such as `cardById` above, then the fields are defined in terms of a tuple eg: cardById: `[ {...arguments} , {...response_selection_set} ]` the equivalent in gql syntax would be:\n\n```text\ncardById (cardId: \"da21ce0a-40a0-43ba-85c2-6eec2bf1ae21\") {\n name\n description\n}\n```\n\nFor fields which have no argument they receive only the response selection set object values.\n\nNote: `Chain` will also accept a second argument of fetch-like options to configure the client with properties such as `credentials`, `mode`, `headers` etc...\n\nNote: There is also an exported Zeus `Gql` convenience function is a Chain client pre-configured with the endpoint specified in the CLI.\n\n## Listen on a WebSocket - GraphQL Subscriptions\n\nUse the Zeus `Subscription` client creator in your generated output to create WebSocket connections to your GraphQL socket.\n\n```ts\nimport { Subscription } from './zeus';\n\n// Create a Subscription client instance with the endpoint\nconst sub = Subscription('https://faker.graphqleditor.com/a-team/olympus/graphql');\n\n// Call the client instance and listen for responses\nsub('subscription')({\n deck: {\n id: true,\n },\n}).on((response) => {\n console.log(response.deck);\n});\n```\n\n[Read more about subscriptions](./subscriptions)\n\n## Usage with NodeJS\n\nGenerates clients for use with Node.js\n\n```sh\n$ zeus schema.graphql ./ --node\n```\n\n## Usage with React Native\n\nAs normal\n\n```sh\n$ zeus schema.graphql ./\n```\n\n## Other CLI Options\n\nSpecify the output folder with second argument\n\n```sh\n$ zeus schema.graphql ./generated\n```\n\nOutput Typescript Only with `--typescript` flag\n\n```sh\n$ zeus schema.graphql ./ --typescript\n```\n\nLoad your schema from an URL with an URL in the first argument\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./\n```\n\nDownload and save GraphQL schema to a local path with `--graphql=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nGenerate and save a JSON schema to a local path with `--jsonSchema=savePath` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --graphql=generated\n```\n\nAdd a header value with `--header=value` flag\n\n```sh\n$ zeus https://faker.graphqleditor.com/a-team/olympus/graphql ./ --header=Authorization:myNiceAuthHeader\n```\n\nGet help with Zeus CLI with:\n\n```sh\n$ zeus help\n```\n\n### Tip:\n\nAdd a script entry in your `package.json` file for quickly calling Zeus generation:\n\n```json\n\"scripts\": {\n//...\n\"generate\": \"zeus https://faker.graphqleditor.com/a-team/olympus/graphql zeusGenerated --typescript --header='My-Auth-Secret:JsercjjJY5MmghtHww6UF' --apollo\"\n},\n```\n", + "markdown/basics/custom.-fetch.md": { + "content": "\n## Perform Queries with Thunder - An Abstracted Fetch Function\n\nWith Zeus `Thunder` you have total control of fetch function but will not lose the result type. ⚡️\n\n```js\nimport { Thunder } from './zeus';\n\n// Create thunder fetch client with endpoint, options and response handlers\nconst thunder = Thunder(async (query) => {\n const response = await fetch('https://faker.graphqleditor.com/a-team/olympus/graphql', {\n body: JSON.stringify({ query }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n return new Promise((resolve, reject) => {\n response\n .text()\n .then((text) => {\n try {\n reject(JSON.parse(text));\n } catch (err) {\n reject(text);\n }\n })\n .catch(reject);\n });\n }\n\n const json = await response.json();\n\n return json.data;\n});\n\n// Call thunder client with type-safe arguments, fields and get type-safe result type\nconst listCardsAndDraw = await thunder('query')({\n cardById: [\n {\n cardId: 'sdsd',\n },\n {\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['s', 'sd'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n```\n", "data": { - "link": "getting-started", - "title": "Getting Started", - "order": 0, + "link": "custom-fetch", + "title": "Custom fetch", + "order": 7, "category": "Basics" }, "excerpt": "" }, - "markdown/basics/esmodule.md": { - "content": "\n#### Return with .js import for esModules\n\nDue to validity of `.js` imports in TS for esmodules you can use flag `es` to generate `.js` imports\n\n```sh\n$ zeus schema.graphql ./ --es\n```\n", + "markdown/basics/javascript.md": { + "content": "\n### JavaScript\n\nTo use with Javascript as an autocomplete tool you need to install Typescript, run the Zeus CLI, and then transform the result to JS using `tsc`\n\n```sh\n$ npm i -D typescript\n# OR\n# yarn add -D typescript\n```\n\nGenerate Zeus:\n\n```sh\n$ zeus schema.graphql ./\n```\n\nAnd transform it using Typescript:\n\n```sh\n$ npx tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n# OR\n# yarn tsc ./zeus/*.ts --declaration --target es5 --skipLibCheck\n```\n\nThis will generate an `out.d.ts` file so that you can have autocompletion.\n", "data": { - "link": "esmodules", - "title": "EsModules", - "order": 3, + "link": "javascript", + "title": "Javascript", + "order": 6, "category": "Basics" }, "excerpt": "" }, - "markdown/basics/custom.-fetch.md": { - "content": "\n## Perform Queries with Thunder - An Abstracted Fetch Function\n\nWith Zeus `Thunder` you have total control of fetch function but will not lose the result type. ⚡️\n\n```js\nimport { Thunder } from './zeus';\n\n// Create thunder fetch client with endpoint, options and response handlers\nconst thunder = Thunder(async (query) => {\n const response = await fetch('https://faker.graphqleditor.com/a-team/olympus/graphql', {\n body: JSON.stringify({ query }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n return new Promise((resolve, reject) => {\n response\n .text()\n .then((text) => {\n try {\n reject(JSON.parse(text));\n } catch (err) {\n reject(text);\n }\n })\n .catch(reject);\n });\n }\n\n const json = await response.json();\n\n return json.data;\n});\n\n// Call thunder client with type-safe arguments, fields and get type-safe result type\nconst listCardsAndDraw = await thunder('query')({\n cardById: [\n {\n cardId: 'sdsd',\n },\n {\n description: true,\n },\n ],\n listCards: {\n name: true,\n skills: true,\n attack: [\n { cardID: ['s', 'sd'] },\n {\n name: true,\n },\n ],\n },\n drawCard: {\n name: true,\n skills: true,\n Attack: true,\n },\n});\n```\n", + "markdown/basics/esmodule.md": { + "content": "\n#### Return with .js import for esModules\n\nDue to validity of `.js` imports in TS for esmodules you can use flag `es` to generate `.js` imports\n\n```sh\n$ zeus schema.graphql ./ --es\n```\n", "data": { - "link": "custom-fetch", - "title": "Custom fetch", - "order": 7, + "link": "esmodules", + "title": "EsModules", + "order": 3, "category": "Basics" }, "excerpt": "" diff --git a/doc/src/ssg/routes.ts b/doc/src/ssg/routes.ts index c2d332fd..2d540297 100644 --- a/doc/src/ssg/routes.ts +++ b/doc/src/ssg/routes.ts @@ -1,23 +1,23 @@ export const routes = { - "page/plugins/typedDocumentNode": "/page/plugins/typedDocumentNode", - "page/plugins/stucco": "/page/plugins/stucco", - "page/plugins/react-query": "/page/plugins/react-query", "page/plugins/apollo": "/page/plugins/apollo", + "page/plugins/typedDocumentNode": "/page/plugins/typedDocumentNode", "page/graphql/variables": "/page/graphql/variables", + "page/plugins/stucco": "/page/plugins/stucco", "page/graphql/scalars": "/page/graphql/scalars", - "page/graphql/interfaces-and-unions": "/page/graphql/interfaces-and-unions", "page/graphql/gql": "/page/graphql/gql", "page/graphql/directives": "/page/graphql/directives", + "page/plugins/react-query": "/page/plugins/react-query", + "page/graphql/interfaces-and-unions": "/page/graphql/interfaces-and-unions", "page/graphql/aliases": "/page/graphql/aliases", "page/state": "/page/state", "page/forms": "/page/forms", "page/library": "/page/library", - "page/subscriptions": "/page/subscriptions", "page/spec": "/page/spec", + "page/getting-started": "/page/getting-started", "page/selector": "/page/selector", + "page/subscriptions": "/page/subscriptions", + "page/custom-fetch": "/page/custom-fetch", "page/javascript": "/page/javascript", - "page/getting-started": "/page/getting-started", "page/esmodules": "/page/esmodules", - "page/custom-fetch": "/page/custom-fetch", "index": "/index" } as const \ No newline at end of file diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index f4964fe4..561ce61e 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -791,6 +791,7 @@ export const apiSubscription = (options: chainOptions) => { return (query: string) => { let onMessage: ((event: any) => void) | undefined; let onError: Sink['error'] | undefined; + let onClose: Sink['complete'] | undefined; client.subscribe( { query }, @@ -801,8 +802,9 @@ export const apiSubscription = (options: chainOptions) => { error(error) { onError && onError(error); }, - // eslint-disable-next-line @typescript-eslint/no-empty-function - complete() {}, + complete() { + onClose && onClose(); + }, }, ); @@ -814,11 +816,11 @@ export const apiSubscription = (options: chainOptions) => { error(listener: typeof onError) { onError = listener; }, - open() { - throw new Error('Unimplemented'); + open(listener: (socket: unknown) => void) { + client.on('opened', listener); }, - off() { - throw new Error('Unimplemented'); + off(listener: typeof onClose) { + onClose = listener; }, }; }; From 9fe02f55e5563689ef50395101fa1e5515ec6236 Mon Sep 17 00:00:00 2001 From: Gautier Date: Tue, 28 Jun 2022 09:05:52 +0200 Subject: [PATCH 63/74] fix: fixed maximum call stack size exceeded #313 --- src/TreeToTS/functions/new/clientFunctions.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/TreeToTS/functions/new/clientFunctions.ts b/src/TreeToTS/functions/new/clientFunctions.ts index 0d0f7202..2b605249 100644 --- a/src/TreeToTS/functions/new/clientFunctions.ts +++ b/src/TreeToTS/functions/new/clientFunctions.ts @@ -66,9 +66,10 @@ export const SubscriptionThunder = scalars: graphqlOptions?.scalars, }), ) as SubscriptionToGraphQL; - if (returnedFunction?.on) { + if (returnedFunction?.on && graphqlOptions?.scalars) { + const wrapped = returnedFunction.on; returnedFunction.on = (fnToCall: (args: InputType) => void) => - returnedFunction.on((data: InputType) => { + wrapped((data: InputType) => { if (graphqlOptions?.scalars) { return fnToCall( decodeScalarsInResponse({ From 5eb97ca2681db5181c0e3fc7c96e8783967133af Mon Sep 17 00:00:00 2001 From: Gautier Date: Tue, 28 Jun 2022 09:06:47 +0200 Subject: [PATCH 64/74] build: refresh artifacts --- src/TreeToTS/functions/generated.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 561ce61e..2c34016b 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -159,9 +159,10 @@ export const SubscriptionThunder = scalars: graphqlOptions?.scalars, }), ) as SubscriptionToGraphQL; - if (returnedFunction?.on) { + if (returnedFunction?.on && graphqlOptions?.scalars) { + const wrapped = returnedFunction.on; returnedFunction.on = (fnToCall: (args: InputType) => void) => - returnedFunction.on((data: InputType) => { + wrapped((data: InputType) => { if (graphqlOptions?.scalars) { return fnToCall( decodeScalarsInResponse({ From 6be6e474c311da6c14692bce414ea0f9b6fc271f Mon Sep 17 00:00:00 2001 From: Gautier Date: Thu, 7 Jul 2022 13:58:58 +0200 Subject: [PATCH 65/74] fix: various improvements --- doc/src/markdown/basics/subscriptions.md | 14 ++++++++------ package.json | 8 ++++---- src/CLI/CLIClass.ts | 2 +- src/TreeToTS/index.ts | 11 +++++++++-- yarn.lock | 16 ++++++++-------- 5 files changed, 30 insertions(+), 21 deletions(-) diff --git a/doc/src/markdown/basics/subscriptions.md b/doc/src/markdown/basics/subscriptions.md index 6935ab38..085bf7c9 100644 --- a/doc/src/markdown/basics/subscriptions.md +++ b/doc/src/markdown/basics/subscriptions.md @@ -7,9 +7,9 @@ category: Basics ## Subscriptions -Zeus supports [GraphQL subscriptions](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) out-of-the-box and is compatible with many popular GraphQL servers. +Zeus supports [GraphQL over WebSocket subscriptions](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) out-of-the-box and is compatible with many popular GraphQL servers. -Two standards are supported: +Two implementations are supported: - **graphql-ws**: the modern WebSocket-based transport, implemented by [the graphql-ws package](https://www.npmjs.com/package/graphql-ws). It is the standard [used by Apollo](https://www.apollographql.com/docs/react/data/subscriptions/#choosing-a-subscription-library). - **legacy** (default): a transport based on raw WebSockets. @@ -25,20 +25,20 @@ zeus schema.gql ./ --subscriptions graphql-ws npm install graphql-ws ``` -If you want to use **legacy**, use `--subscriptions legacy` instead. +If you want to use **legacy**, use `--subscriptions legacy` instead. You may need to install [ws](https://www.npmjs.com/package/ws) depending on your setup. No matter what implementation you chose, usage is the same: ```ts // Create a new Subscription with some authentication headers -const sub = Subscription('wss://localhost:4000/graphql', { +const wsChain = Subscription('wss://localhost:4000/graphql', { get headers() { return { Authorization: `Bearer ${getToken()}` }; }, }); // Subscribe to new messages -sub('subscription')({ +wsChain('subscription')({ message: { body: true, }, @@ -51,7 +51,7 @@ If you need to unsubscribe from a subscription (e.g. you are developing as Singl ```ts // Subscribe to new messages -const onMessage = sub('subscription')({ +const onMessage = wsChain('subscription')({ message: { body: true, }, @@ -63,3 +63,5 @@ onMessage.on(({ message }) => { // Close the underlying connection onMessage.ws.close(); ``` + +While you may use `wsChain('query')` or `wsChain('mutation')`, [Apollo strongly discourages this practice.](https://www.apollographql.com/docs/react/data/subscriptions/#3-split-communication-by-operation-recommended) diff --git a/package.json b/package.json index af7e0276..b8ce787a 100644 --- a/package.json +++ b/package.json @@ -46,13 +46,13 @@ "cz-conventional-changelog": "^3.1.0", "eslint": "^7.19.0", "eslint-config-prettier": "^7.2.0", - "eslint-plugin-prettier": "^3.3.1", + "eslint-plugin-prettier": "^4.2.1", "graphql-ws": "^5.8.2", "husky": "^4.2.3", "jest": "^27.5.1", "json-schema": "^0.3.0", "mocha": "^7.1.0", - "prettier": "^2.0.2", + "prettier": "^2.7.1", "ts-jest": "^27.1.4", "ts-node": "^10.8.1", "ts-toolbelt": "^6.3.6", @@ -68,10 +68,10 @@ "yargs": "^16.1.1" }, "peerDependencies": { - "graphql-wq": ">=5" + "graphql-ws": ">=5" }, "peerDependenciesMeta": { - "graphql-wq": { + "graphql-ws": { "optional": true } }, diff --git a/src/CLI/CLIClass.ts b/src/CLI/CLIClass.ts index ec71c2e5..efa4eb43 100644 --- a/src/CLI/CLIClass.ts +++ b/src/CLI/CLIClass.ts @@ -81,7 +81,7 @@ export class CLI { env, host, esModule: !!args.esModule, - subscriptions: args.subscriptions == 'graphql-ws' ? 'graphql-ws' : 'legacy', + subscriptions: args.subscriptions === 'graphql-ws' ? 'graphql-ws' : 'legacy', }); Object.keys(typeScriptDefinition).forEach((k) => writeFileRecursive( diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index cca9a46e..ab77c13f 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -35,7 +35,7 @@ export interface ResolveOptions { host?: string; headers?: Record; esModule?: boolean; - subscriptions: 'legacy' | 'graphql-ws'; + subscriptions?: 'legacy' | 'graphql-ws'; } const disableLintersComments = ['eslint-disable']; @@ -96,7 +96,14 @@ export class TreeToTS { /** * Generate typescript file */ - static resolveTreeSplit({ tree, env = 'browser', host, esModule, headers, subscriptions }: ResolveOptions) { + static resolveTreeSplit({ + tree, + env = 'browser', + host, + esModule, + headers, + subscriptions = 'legacy', + }: ResolveOptions) { return { indexImports: `import { AllTypesProps, ReturnTypes, Ops } from './const${esModule ? '.js' : ''}';`.concat( env === 'node' diff --git a/yarn.lock b/yarn.lock index 4847653e..dd99ebbf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2574,10 +2574,10 @@ eslint-config-prettier@^7.2.0: resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz" integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== -eslint-plugin-prettier@^3.3.1: - version "3.4.1" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== +eslint-plugin-prettier@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: prettier-linter-helpers "^1.0.0" @@ -4777,10 +4777,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.0.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== +prettier@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== pretty-format@^27.0.0, pretty-format@^27.5.1: version "27.5.1" From 14e651de6f0e96c95bbe32ae5a662697306a5a6a Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 8 Jul 2022 12:02:23 +0200 Subject: [PATCH 66/74] :bug: Fixed generation bug --- examples/typescript-node/src/zeus/apollo.ts | 30 +- examples/typescript-node/src/zeus/const.ts | 58 +- examples/typescript-node/src/zeus/index.ts | 366 +- .../typescript-node/src/zeus/reactQuery.ts | 8 +- examples/typescript-node/zeus.graphql | 86 +- src/TreeToTS/index.ts | 1 + yarn.lock | 9886 +++++++++-------- 7 files changed, 5268 insertions(+), 5167 deletions(-) diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 3e1082c0..0d167d82 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,10 +1,23 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index'; -import { gql, useMutation, useQuery, useLazyQuery, useSubscription } from '@apollo/client'; -import type { MutationHookOptions, QueryHookOptions, LazyQueryHookOptions, SubscriptionHookOptions } from '@apollo/client'; +import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; +import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +export function useTypedSubscription( + subscription: Z | ValueTypes[O], + options?:{ + apolloOptions?: SubscriptionHookOptions>, + operationOptions?: OperationOptions, + scalars?: SCLR + } +) { + return useSubscription>(gql(Zeus("subscription",subscription, { + operationOptions: options?.operationOptions, + scalars: options?.scalars + })), options?.apolloOptions); +} export function useTypedMutation( mutation: Z | ValueTypes[O], options?:{ @@ -44,16 +57,3 @@ export function useTypedLazyQuery( - subscription: Z | ValueTypes[O], - options?:{ - apolloOptions?: SubscriptionHookOptions>, - operationOptions?: OperationOptions, - scalars?: SCLR - } -) { - return useSubscription>(gql(Zeus("subscription",subscription, { - operationOptions: options?.operationOptions, - scalars: options?.scalars - })), options?.apolloOptions); -} diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index cca3a8de..5ed67109 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -1,6 +1,7 @@ /* eslint-disable */ export const AllTypesProps: Record = { + SpecialSkills: "enum" as const, Mutation:{ addCard:{ card:"createCard" @@ -9,34 +10,46 @@ export const AllTypesProps: Record = { createCard:{ skills:"SpecialSkills" }, - JSON: `scalar.JSON` as const, Query:{ cardById:{ } }, - SpecialSkills: "enum" as const, Card:{ attack:{ } - } + }, + JSON: `scalar.JSON` as const } export const ReturnTypes: Record = { - CardStack:{ - cards:"Card", + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, + Subscription:{ + deck:"Card" + }, + Nameable:{ + "...on SpecialCard": "SpecialCard", + "...on EffectCard": "EffectCard", + "...on Card": "Card", + "...on CardStack": "CardStack", name:"String" }, Mutation:{ addCard:"Card" }, - S3Object:{ - bucket:"String", - key:"String", - region:"String" + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" + }, + SpecialCard:{ + effect:"String", + name:"String" }, - JSON: `scalar.JSON` as const, EffectCard:{ effectSize:"Float", name:"String" @@ -49,16 +62,6 @@ export const ReturnTypes: Record = { myStacks:"CardStack", nameables:"Nameable" }, - Nameable:{ - "...on CardStack": "CardStack", - "...on EffectCard": "EffectCard", - "...on Card": "Card", - "...on SpecialCard": "SpecialCard", - name:"String" - }, - Subscription:{ - deck:"Card" - }, Card:{ Attack:"Int", Children:"Int", @@ -72,18 +75,15 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, - SpecialCard:{ - effect:"String", + JSON: `scalar.JSON` as const, + CardStack:{ + cards:"Card", name:"String" } } export const Ops = { -mutation: "Mutation" as const, - query: "Query" as const, - subscription: "Subscription" as const +subscription: "Subscription" as const, + mutation: "Mutation" as const, + query: "Query" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index db93f45f..5bc6ac13 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -7,8 +7,38 @@ export const HOST = "https://faker.graphqleditor.com/a-team/olympus/graphql" export const HEADERS = {} - - +export const apiSubscription = (options: chainOptions) => (query: string) => { + try { + const queryString = options[0] + '?query=' + encodeURIComponent(query); + const wsString = queryString.replace('http', 'ws'); + const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; + const webSocketOptions = options[1]?.websocket || [host]; + const ws = new WebSocket(...webSocketOptions); + return { + ws, + on: (e: (args: any) => void) => { + ws.onmessage = (event: any) => { + if (event.data) { + const parsed = JSON.parse(event.data); + const data = parsed.data; + return e(data); + } + }; + }, + off: (e: (args: any) => void) => { + ws.onclose = e; + }, + error: (e: (args: any) => void) => { + ws.onerror = e; + }, + open: (e: () => void) => { + ws.onopen = e; + }, + }; + } catch { + throw new Error('No websockets implemented'); + } +}; const handleFetchResponse = (response: Response): Promise => { if (!response.ok) { return new Promise((_, reject) => { @@ -58,48 +88,6 @@ export const apiFetch = }); }; - - - -export const apiSubscription = (options: chainOptions) => (query: string) => { - try { - const queryString = options[0] + '?query=' + encodeURIComponent(query); - const wsString = queryString.replace('http', 'ws'); - const host = (options.length > 1 && options[1]?.websocket?.[0]) || wsString; - const webSocketOptions = options[1]?.websocket || [host]; - const ws = new WebSocket(...webSocketOptions); - return { - ws, - on: (e: (args: any) => void) => { - ws.onmessage = (event: any) => { - if (event.data) { - const parsed = JSON.parse(event.data); - const data = parsed.data; - return e(data); - } - }; - }, - off: (e: (args: any) => void) => { - ws.onclose = e; - }, - error: (e: (args: any) => void) => { - ws.onerror = e; - }, - open: (e: () => void) => { - ws.onopen = e; - }, - }; - } catch { - throw new Error('No websockets implemented'); - } -}; - - - - - - - export const InternalsBuildQuery = ({ ops, props, @@ -170,14 +158,6 @@ export const InternalsBuildQuery = ({ return ibb; }; - - - - - - - - export const Thunder = (fn: FetchFunction) => >( @@ -220,9 +200,10 @@ export const SubscriptionThunder = scalars: graphqlOptions?.scalars, }), ) as SubscriptionToGraphQL; - if (returnedFunction?.on) { + if (returnedFunction?.on && graphqlOptions?.scalars) { + const wrapped = returnedFunction.on; returnedFunction.on = (fnToCall: (args: InputType) => void) => - returnedFunction.on((data: InputType) => { + wrapped((data: InputType) => { if (graphqlOptions?.scalars) { return fnToCall( decodeScalarsInResponse({ @@ -276,12 +257,6 @@ export const Gql = Chain(HOST, { export const ZeusScalars = ZeusSelect(); - - - - - - export const decodeScalarsInResponse = ({ response, scalars, @@ -342,10 +317,6 @@ export const traverseResponse = ({ return ibb; }; - - - - export type AllTypesPropsType = { [x: string]: | undefined @@ -430,10 +401,6 @@ export type ThunderGraphQLOptions = { scalars?: SCLR | ScalarCoders; }; - - - - const ExtractScalar = (mappedParts: string[], returns: ReturnTypesType): `scalar.${string}` | undefined => { if (mappedParts.length === 0) { return; @@ -507,14 +474,8 @@ export const PrepareScalarPaths = ({ ops, returns }: { returns: ReturnTypesType; return ibb; }; - export const purifyGraphQLKey = (k: string) => k.replace(/\([^)]*\)/g, '').replace(/^[^:]*\:/g, ''); - - - - - const mapPart = (p: string) => { const [isArg, isField] = p.split('<>'); if (isField) { @@ -671,9 +632,6 @@ export const InternalArgsBuilt = ({ return arb; }; - - - export const resolverFor = ( type: T, field: Z, @@ -683,10 +641,6 @@ export const resolverFor = Z extends keyof ModelTypes[T] ? ModelTypes[T][Z] | Promise | X : any, ) => fn as (args?: any, source?: any) => any; - - - - export type UnwrapPromise = T extends Promise ? R : T; export type ZeusState Promise> = NonNullable>>; export type ZeusHook< @@ -832,9 +786,6 @@ type OptionalKeys = { export type WithOptionalNullables = OptionalKeys> & WithNonNullableKeys; - - - export type Variable = { ' __zeus_name': Name; ' __zeus_type': T; @@ -857,7 +808,6 @@ export const GRAPHQL_TYPE_SEPARATOR = `__$GRAPHQL__`; export const $ = (name: Name, graphqlType: Type) => { return (START_VAR_NAME + name + GRAPHQL_TYPE_SEPARATOR + graphqlType) as unknown as Variable; }; - type ZEUS_INTERFACES = GraphQLTypes["Nameable"] export type ScalarCoders = { JSON?: ScalarResolver; @@ -865,18 +815,34 @@ export type ScalarCoders = { type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ValueTypes["Card"], - name?:boolean | `@${string}`, + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ValueTypes["Card"], + __typename?: boolean | `@${string}` +}>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; + ['...on Card']?: Omit; + ['...on CardStack']?: Omit; __typename?: boolean | `@${string}` }>; + ["SpecialSkills"]:SpecialSkills; ["Mutation"]: AliasType<{ addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], __typename?: boolean | `@${string}` }>; /** create card inputs
    */ ["createCard"]: { + /** input skills */ + skills?: Array | undefined | null | Variable, /** The name of a card
    */ name: string | Variable, /** Description of a card
    */ @@ -886,18 +852,17 @@ addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes[ /** The attack power
    */ Attack: number | Variable, /** The defense power
    */ - Defense: number | Variable, - /** input skills */ - skills?: Array | undefined | null | Variable + Defense: number | Variable }; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean | `@${string}` +}>; + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["JSON"]:unknown; ["EffectCard"]: AliasType<{ effectSize?:boolean | `@${string}`, name?:boolean | `@${string}`, @@ -914,19 +879,6 @@ cardById?: [{ cardId?: string | undefined | null | Variable},ValueT nameables?:ValueTypes["Nameable"], __typename?: boolean | `@${string}` }>; - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on CardStack']?: Omit; - ['...on EffectCard']?: Omit; - ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; - __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ - deck?:ValueTypes["Card"], - __typename?: boolean | `@${string}` -}>; - ["SpecialSkills"]:SpecialSkills; /** Card used in card game
    */ ["Card"]: AliasType<{ /** The attack power
    */ @@ -949,30 +901,44 @@ attack?: [{ /** Attacked card/card ids
    */ skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] - __typename?: boolean | `@${string}` -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, + ["JSON"]:unknown; + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ValueTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }> } export type ResolverInputTypes = { - /** Stack of cards */ -["CardStack"]: AliasType<{ - cards?:ResolverInputTypes["Card"], - name?:boolean | `@${string}`, + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["Subscription"]: AliasType<{ + deck?:ResolverInputTypes["Card"], __typename?: boolean | `@${string}` }>; + ["Nameable"]:AliasType<{ + name?:boolean | `@${string}`; + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; + ['...on Card']?: Omit; + ['...on CardStack']?: Omit; + __typename?: boolean | `@${string}` +}>; + ["SpecialSkills"]:SpecialSkills; ["Mutation"]: AliasType<{ addCard?: [{ card: ResolverInputTypes["createCard"]},ResolverInputTypes["Card"]], __typename?: boolean | `@${string}` }>; /** create card inputs
    */ ["createCard"]: { + /** input skills */ + skills?: Array | undefined | null, /** The name of a card
    */ name: string, /** Description of a card
    */ @@ -982,18 +948,18 @@ addCard?: [{ card: ResolverInputTypes["createCard"]},ResolverInputTypes["Card"]] /** The attack power
    */ Attack: number, /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined | null + Defense: number }; - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, + ["ChangeCard"]: AliasType<{ + SpecialCard?:ResolverInputTypes["SpecialCard"], + EffectCard?:ResolverInputTypes["EffectCard"], + __typename?: boolean | `@${string}` +}>; + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["JSON"]:unknown; ["EffectCard"]: AliasType<{ effectSize?:boolean | `@${string}`, name?:boolean | `@${string}`, @@ -1010,19 +976,6 @@ cardById?: [{ cardId?: string | undefined | null},ResolverInputTypes["Card"]], nameables?:ResolverInputTypes["Nameable"], __typename?: boolean | `@${string}` }>; - ["Nameable"]:AliasType<{ - name?:boolean | `@${string}`; - ['...on CardStack']?: Omit; - ['...on EffectCard']?: Omit; - ['...on Card']?: Omit; - ['...on SpecialCard']?: Omit; - __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ - deck?:ResolverInputTypes["Card"], - __typename?: boolean | `@${string}` -}>; - ["SpecialSkills"]:SpecialSkills; /** Card used in card game
    */ ["Card"]: AliasType<{ /** The attack power
    */ @@ -1045,30 +998,35 @@ attack?: [{ /** Attacked card/card ids
    */ skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["ChangeCard"]: AliasType<{ - SpecialCard?:ResolverInputTypes["SpecialCard"], - EffectCard?:ResolverInputTypes["EffectCard"], - __typename?: boolean | `@${string}` -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, + ["JSON"]:unknown; + /** Stack of cards */ +["CardStack"]: AliasType<{ + cards?:ResolverInputTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` }> } export type ModelTypes = { - /** Stack of cards */ -["CardStack"]: { - cards?: Array | undefined, - name: string + /** Aws S3 File */ +["S3Object"]: { + bucket: string, + key: string, + region: string }; + ["Subscription"]: { + deck?: Array | undefined +}; + ["Nameable"]: ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] | ModelTypes["Card"] | ModelTypes["CardStack"]; + ["SpecialSkills"]:SpecialSkills; ["Mutation"]: { /** add Card to Cards database
    */ addCard: ModelTypes["Card"] }; /** create card inputs
    */ ["createCard"]: { + /** input skills */ + skills?: Array | undefined, /** The name of a card
    */ name: string, /** Description of a card
    */ @@ -1078,17 +1036,13 @@ export type ModelTypes = { /** The attack power
    */ Attack: number, /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined + Defense: number }; - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["SpecialCard"]: { + effect: string, + name: string }; - ["JSON"]:any; ["EffectCard"]: { effectSize: number, name: string @@ -1103,11 +1057,6 @@ export type ModelTypes = { myStacks?: Array | undefined, nameables: Array }; - ["Nameable"]: ModelTypes["CardStack"] | ModelTypes["EffectCard"] | ModelTypes["Card"] | ModelTypes["SpecialCard"]; - ["Subscription"]: { - deck?: Array | undefined -}; - ["SpecialSkills"]:SpecialSkills; /** Card used in card game
    */ ["Card"]: { /** The attack power
    */ @@ -1129,20 +1078,35 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["SpecialCard"]: { - effect: string, + ["JSON"]:any; + /** Stack of cards */ +["CardStack"]: { + cards?: Array | undefined, name: string } } export type GraphQLTypes = { - /** Stack of cards */ -["CardStack"]: { - __typename: "CardStack", - cards?: Array | undefined, + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string +}; + ["Subscription"]: { + __typename: "Subscription", + deck?: Array | undefined +}; + ["Nameable"]: { + __typename:"SpecialCard" | "EffectCard" | "Card" | "CardStack", name: string + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; + ['...on Card']: '__union' & GraphQLTypes["Card"]; + ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; }; + ["SpecialSkills"]: SpecialSkills; ["Mutation"]: { __typename: "Mutation", /** add Card to Cards database
    */ @@ -1150,7 +1114,9 @@ export type GraphQLTypes = { }; /** create card inputs
    */ ["createCard"]: { - /** The name of a card
    */ + /** input skills */ + skills?: Array | undefined, + /** The name of a card
    */ name: string, /** Description of a card
    */ description: string, @@ -1159,18 +1125,18 @@ export type GraphQLTypes = { /** The attack power
    */ Attack: number, /** The defense power
    */ - Defense: number, - /** input skills */ - skills?: Array | undefined + Defense: number }; - /** Aws S3 File */ -["S3Object"]: { - __typename: "S3Object", - bucket: string, - key: string, - region: string + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string }; - ["JSON"]: "scalar" & { name: "JSON" }; ["EffectCard"]: { __typename: "EffectCard", effectSize: number, @@ -1187,19 +1153,6 @@ export type GraphQLTypes = { myStacks?: Array | undefined, nameables: Array }; - ["Nameable"]: { - __typename:"CardStack" | "EffectCard" | "Card" | "SpecialCard", - name: string - ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; - ['...on Card']: '__union' & GraphQLTypes["Card"]; - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; -}; - ["Subscription"]: { - __typename: "Subscription", - deck?: Array | undefined -}; - ["SpecialSkills"]: SpecialSkills; /** Card used in card game
    */ ["Card"]: { __typename: "Card", @@ -1222,14 +1175,11 @@ export type GraphQLTypes = { name: string, skills?: Array | undefined }; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, + ["JSON"]: "scalar" & { name: "JSON" }; + /** Stack of cards */ +["CardStack"]: { + __typename: "CardStack", + cards?: Array | undefined, name: string } } @@ -1240,7 +1190,7 @@ export const enum SpecialSkills { } type ZEUS_VARIABLES = { + ["SpecialSkills"]: ValueTypes["SpecialSkills"]; ["createCard"]: ValueTypes["createCard"]; ["JSON"]: ValueTypes["JSON"]; - ["SpecialSkills"]: ValueTypes["SpecialSkills"]; } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index 0c742c2d..f2af0610 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -8,20 +8,20 @@ import type { UseMutationOptions, UseQueryOptions } from 'react-query'; export function useTypedMutation>( mutationKey: string | unknown[], mutation: TData | ValueTypes[O], - options?: Omit, 'mutationKey' | 'mutationFn'>, + options?: Omit, 'mutationKey' | 'mutationFn'>, zeusOptions?: OperationOptions, host = "https://faker.graphqleditor.com/a-team/olympus/graphql", hostOptions: chainOptions[1] = {}, ) { - return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); + return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); } export function useTypedQuery>( queryKey: string | unknown[], query: TData | ValueTypes[O], - options?: Omit, 'queryKey' | 'queryFn'>, + options?: Omit, 'queryKey' | 'queryFn'>, zeusOptions?: OperationOptions, host = "https://faker.graphqleditor.com/a-team/olympus/graphql", hostOptions: chainOptions[1] = {}, ) { - return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); + return useQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); } diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 4f4908ff..01e83e19 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,12 +1,39 @@ -"""Stack of cards""" -type CardStack implements Nameable { +"""Aws S3 File""" +type S3Object { """""" - cards: [Card!] + bucket: String! + + """""" + key: String! + + """""" + region: String! +} +"""""" +type Subscription { + """""" + deck: [Card!] +} + +"""""" +interface Nameable { """""" name: String! } +"""""" +enum SpecialSkills { + """Lower enemy defense -5
    """ + THUNDER + + """Attack multiple Cards at once
    """ + RAIN + + """50% chance to avoid any attack
    """ + FIRE +} + """""" type Mutation { """add Card to Cards database
    """ @@ -15,6 +42,9 @@ type Mutation { """create card inputs
    """ input createCard { + """input skills""" + skills: [SpecialSkills!] + """The name of a card
    """ name: String! @@ -29,26 +59,20 @@ input createCard { """The defense power
    """ Defense: Int! - - """input skills""" - skills: [SpecialSkills!] } -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! +"""""" +union ChangeCard = SpecialCard | EffectCard +"""""" +type SpecialCard implements Nameable { """""" - key: String! + effect: String! """""" - region: String! + name: String! } -"""""" -scalar JSON - """""" type EffectCard implements Nameable { """""" @@ -79,30 +103,6 @@ type Query { nameables: [Nameable!]! } -"""""" -interface Nameable { - """""" - name: String! -} - -"""""" -type Subscription { - """""" - deck: [Card!] -} - -"""""" -enum SpecialSkills { - """Lower enemy defense -5
    """ - THUNDER - - """Attack multiple Cards at once
    """ - RAIN - - """50% chance to avoid any attack
    """ - FIRE -} - """Card used in card game
    """ type Card implements Nameable { """The attack power
    """ @@ -143,12 +143,12 @@ type Card implements Nameable { } """""" -union ChangeCard = SpecialCard | EffectCard +scalar JSON -"""""" -type SpecialCard implements Nameable { +"""Stack of cards""" +type CardStack implements Nameable { """""" - effect: String! + cards: [Card!] """""" name: String! diff --git a/src/TreeToTS/index.ts b/src/TreeToTS/index.ts index ab77c13f..d309e19f 100644 --- a/src/TreeToTS/index.ts +++ b/src/TreeToTS/index.ts @@ -117,6 +117,7 @@ import WebSocket from 'ws';` .concat(host ? `export const HOST = "${host}"` : '\n\nexport const HOST="Specify host"') .concat('\n') .concat(headers ? `export const HEADERS = ${JSON.stringify(headers)}` : '\n\nexport const HEADERS = {}') + .concat('\n') .concat(subscriptionFunctions[subscriptions]) .concat('\n') .concat(typescriptFunctions) diff --git a/yarn.lock b/yarn.lock index dd99ebbf..ef3a58d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,29 +2,29 @@ # yarn lockfile v1 -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + "integrity" "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/highlight" "^7.14.5" +"@babel/code-frame@7.12.11": + "integrity" "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" + "version" "7.12.11" + dependencies: + "@babel/highlight" "^7.10.4" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0": - version "7.15.0" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz" - integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== + "integrity" "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz" + "version" "7.15.0" -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.2.2", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.15.5" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz" - integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg== +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.2.2", "@babel/core@^7.4.0-0", "@babel/core@^7.7.2", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": + "integrity" "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz" + "version" "7.15.5" dependencies: "@babel/code-frame" "^7.14.5" "@babel/generator" "^7.15.4" @@ -35,51 +35,51 @@ "@babel/template" "^7.15.4" "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.2" + "json5" "^2.1.2" + "semver" "^6.3.0" + "source-map" "^0.5.0" "@babel/generator@^7.15.4", "@babel/generator@^7.7.2": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz" - integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== + "integrity" "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" - jsesc "^2.5.1" - source-map "^0.5.0" + "jsesc" "^2.5.1" + "source-map" "^0.5.0" "@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz" - integrity sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA== + "integrity" "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==" + "resolved" "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz" - integrity sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q== + "integrity" "sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==" + "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-explode-assignable-expression" "^7.15.4" "@babel/types" "^7.15.4" "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz" - integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ== + "integrity" "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/compat-data" "^7.15.0" "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" - semver "^6.3.0" + "browserslist" "^4.16.6" + "semver" "^6.3.0" "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz" - integrity sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw== + "integrity" "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-annotate-as-pure" "^7.15.4" "@babel/helper-function-name" "^7.15.4" @@ -89,75 +89,75 @@ "@babel/helper-split-export-declaration" "^7.15.4" "@babel/helper-create-regexp-features-plugin@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz" - integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== + "integrity" "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" - regexpu-core "^4.7.1" + "regexpu-core" "^4.7.1" "@babel/helper-define-polyfill-provider@^0.2.2": - version "0.2.3" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz" - integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== + "integrity" "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==" + "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz" + "version" "0.2.3" dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" "@babel/helper-plugin-utils" "^7.13.0" "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" + "debug" "^4.1.1" + "lodash.debounce" "^4.0.8" + "resolve" "^1.14.2" + "semver" "^6.1.2" "@babel/helper-explode-assignable-expression@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz" - integrity sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g== + "integrity" "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==" + "resolved" "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz" - integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw== + "integrity" "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-get-function-arity" "^7.15.4" "@babel/template" "^7.15.4" "@babel/types" "^7.15.4" "@babel/helper-get-function-arity@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz" - integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA== + "integrity" "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==" + "resolved" "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-hoist-variables@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz" - integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA== + "integrity" "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==" + "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-member-expression-to-functions@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz" - integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA== + "integrity" "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==" + "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz" - integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA== + "integrity" "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4": - version "7.15.7" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz" - integrity sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw== + "integrity" "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz" + "version" "7.15.7" dependencies: "@babel/helper-module-imports" "^7.15.4" "@babel/helper-replace-supers" "^7.15.4" @@ -169,30 +169,30 @@ "@babel/types" "^7.15.6" "@babel/helper-optimise-call-expression@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz" - integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw== + "integrity" "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==" + "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + "integrity" "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" + "version" "7.16.7" "@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz" - integrity sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ== + "integrity" "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-annotate-as-pure" "^7.15.4" "@babel/helper-wrap-function" "^7.15.4" "@babel/types" "^7.15.4" "@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz" - integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw== + "integrity" "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==" + "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-member-expression-to-functions" "^7.15.4" "@babel/helper-optimise-call-expression" "^7.15.4" @@ -200,40 +200,40 @@ "@babel/types" "^7.15.4" "@babel/helper-simple-access@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz" - integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg== + "integrity" "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==" + "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz" - integrity sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A== + "integrity" "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==" + "resolved" "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-split-export-declaration@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz" - integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw== + "integrity" "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==" + "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/types" "^7.15.4" "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== + "integrity" "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" + "version" "7.15.7" "@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + "integrity" "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" + "version" "7.14.5" "@babel/helper-wrap-function@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz" - integrity sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw== + "integrity" "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==" + "resolved" "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-function-name" "^7.15.4" "@babel/template" "^7.15.4" @@ -241,127 +241,127 @@ "@babel/types" "^7.15.4" "@babel/helpers@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz" - integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ== + "integrity" "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/template" "^7.15.4" "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + "integrity" "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-validator-identifier" "^7.14.5" - chalk "^2.0.0" - js-tokens "^4.0.0" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" "@babel/node@^7.10.5": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/node/-/node-7.15.4.tgz" - integrity sha512-UZue+j8p5aKTaVjvy5psYmqLHqmz+9cIboAFoa97S1xeZyUr0gT6KzXB8ZkfBIsP/u79biOdjGHVXBXnW3rVfw== + "integrity" "sha512-UZue+j8p5aKTaVjvy5psYmqLHqmz+9cIboAFoa97S1xeZyUr0gT6KzXB8ZkfBIsP/u79biOdjGHVXBXnW3rVfw==" + "resolved" "https://registry.npmjs.org/@babel/node/-/node-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/register" "^7.15.3" - commander "^4.0.1" - core-js "^3.16.0" - node-environment-flags "^1.0.5" - regenerator-runtime "^0.13.4" - v8flags "^3.1.1" + "commander" "^4.0.1" + "core-js" "^3.16.0" + "node-environment-flags" "^1.0.5" + "regenerator-runtime" "^0.13.4" + "v8flags" "^3.1.1" "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5": - version "7.15.7" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz" - integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== + "integrity" "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz" + "version" "7.15.7" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz" - integrity sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog== + "integrity" "sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4" "@babel/plugin-proposal-optional-chaining" "^7.14.5" "@babel/plugin-proposal-async-generator-functions@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz" - integrity sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw== + "integrity" "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-remap-async-to-generator" "^7.15.4" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz" - integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== + "integrity" "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-proposal-class-static-block@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz" - integrity sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA== + "integrity" "sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-create-class-features-plugin" "^7.15.4" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz" - integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== + "integrity" "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-proposal-export-namespace-from@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz" - integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== + "integrity" "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-proposal-json-strings@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz" - integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== + "integrity" "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-proposal-logical-assignment-operators@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz" - integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== + "integrity" "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz" - integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== + "integrity" "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-numeric-separator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz" - integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== + "integrity" "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.15.6": - version "7.15.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz" - integrity sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg== + "integrity" "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz" + "version" "7.15.6" dependencies: "@babel/compat-data" "^7.15.0" "@babel/helper-compilation-targets" "^7.15.4" @@ -370,34 +370,34 @@ "@babel/plugin-transform-parameters" "^7.15.4" "@babel/plugin-proposal-optional-catch-binding@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz" - integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== + "integrity" "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-proposal-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz" - integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== + "integrity" "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz" - integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== + "integrity" "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-proposal-private-property-in-object@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz" - integrity sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA== + "integrity" "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-annotate-as-pure" "^7.15.4" "@babel/helper-create-class-features-plugin" "^7.15.4" @@ -405,166 +405,166 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz" - integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + "integrity" "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + "version" "7.8.4" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + "integrity" "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + "version" "7.12.13" dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + "integrity" "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + "integrity" "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + "integrity" "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz" - integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== + "integrity" "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-arrow-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz" - integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== + "integrity" "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-async-to-generator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz" - integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== + "integrity" "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-module-imports" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-remap-async-to-generator" "^7.14.5" "@babel/plugin-transform-block-scoped-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz" - integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + "integrity" "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-block-scoping@^7.15.3": - version "7.15.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz" - integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== + "integrity" "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz" + "version" "7.15.3" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-classes@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz" - integrity sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg== + "integrity" "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-annotate-as-pure" "^7.15.4" "@babel/helper-function-name" "^7.15.4" @@ -572,217 +572,217 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.15.4" "@babel/helper-split-export-declaration" "^7.15.4" - globals "^11.1.0" + "globals" "^11.1.0" "@babel/plugin-transform-computed-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz" - integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== + "integrity" "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-destructuring@^7.14.7": - version "7.14.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz" - integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== + "integrity" "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz" + "version" "7.14.7" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz" - integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== + "integrity" "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-duplicate-keys@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz" - integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== + "integrity" "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-exponentiation-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz" - integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== + "integrity" "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-for-of@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz" - integrity sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA== + "integrity" "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz" - integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== + "integrity" "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-function-name" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz" - integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== + "integrity" "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-member-expression-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz" - integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== + "integrity" "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-modules-amd@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz" - integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + "integrity" "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz" - integrity sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA== + "integrity" "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-module-transforms" "^7.15.4" "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-simple-access" "^7.15.4" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz" - integrity sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw== + "integrity" "sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-hoist-variables" "^7.15.4" "@babel/helper-module-transforms" "^7.15.4" "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-validator-identifier" "^7.14.9" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-umd@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz" - integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== + "integrity" "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": - version "7.14.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz" - integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== + "integrity" "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz" + "version" "7.14.9" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/plugin-transform-new-target@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz" - integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== + "integrity" "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-object-super@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz" - integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== + "integrity" "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" "@babel/plugin-transform-parameters@^7.15.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz" - integrity sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ== + "integrity" "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-property-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz" - integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== + "integrity" "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-regenerator@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz" - integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== + "integrity" "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz" + "version" "7.14.5" dependencies: - regenerator-transform "^0.14.2" + "regenerator-transform" "^0.14.2" "@babel/plugin-transform-reserved-words@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz" - integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + "integrity" "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-shorthand-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz" - integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + "integrity" "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-spread@^7.14.6": - version "7.14.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz" - integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + "integrity" "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz" + "version" "7.14.6" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-transform-sticky-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz" - integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + "integrity" "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-template-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz" - integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + "integrity" "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-typeof-symbol@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz" - integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + "integrity" "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-unicode-escapes@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz" - integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + "integrity" "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-unicode-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz" - integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + "integrity" "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/preset-env@^7.11.5": - version "7.15.6" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz" - integrity sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw== + "integrity" "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==" + "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz" + "version" "7.15.6" dependencies: "@babel/compat-data" "^7.15.0" "@babel/helper-compilation-targets" "^7.15.4" @@ -852,54 +852,54 @@ "@babel/plugin-transform-unicode-regex" "^7.14.5" "@babel/preset-modules" "^0.1.4" "@babel/types" "^7.15.6" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" - core-js-compat "^3.16.0" - semver "^6.3.0" + "babel-plugin-polyfill-corejs2" "^0.2.2" + "babel-plugin-polyfill-corejs3" "^0.2.2" + "babel-plugin-polyfill-regenerator" "^0.2.2" + "core-js-compat" "^3.16.0" + "semver" "^6.3.0" "@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + "integrity" "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==" + "resolved" "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz" + "version" "0.1.4" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" - esutils "^2.0.2" + "esutils" "^2.0.2" "@babel/register@^7.15.3": - version "7.15.3" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz" - integrity sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw== + "integrity" "sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw==" + "resolved" "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz" + "version" "7.15.3" dependencies: - clone-deep "^4.0.1" - find-cache-dir "^2.0.0" - make-dir "^2.1.0" - pirates "^4.0.0" - source-map-support "^0.5.16" + "clone-deep" "^4.0.1" + "find-cache-dir" "^2.0.0" + "make-dir" "^2.1.0" + "pirates" "^4.0.0" + "source-map-support" "^0.5.16" "@babel/runtime@^7.8.4": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz" - integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== + "integrity" "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz" + "version" "7.15.4" dependencies: - regenerator-runtime "^0.13.4" + "regenerator-runtime" "^0.13.4" "@babel/template@^7.15.4", "@babel/template@^7.3.3": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz" - integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg== + "integrity" "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==" + "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/code-frame" "^7.14.5" "@babel/parser" "^7.15.4" "@babel/types" "^7.15.4" "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.2": - version "7.15.4" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz" - integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== + "integrity" "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz" + "version" "7.15.4" dependencies: "@babel/code-frame" "^7.14.5" "@babel/generator" "^7.15.4" @@ -908,220 +908,220 @@ "@babel/helper-split-export-declaration" "^7.15.4" "@babel/parser" "^7.15.4" "@babel/types" "^7.15.4" - debug "^4.1.0" - globals "^11.1.0" + "debug" "^4.1.0" + "globals" "^11.1.0" "@babel/types@^7.0.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.15.6" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz" - integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== + "integrity" "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz" + "version" "7.15.6" dependencies: "@babel/helper-validator-identifier" "^7.14.9" - to-fast-properties "^2.0.0" + "to-fast-properties" "^2.0.0" "@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + "integrity" "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + "resolved" "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + "version" "0.2.3" "@commitlint/cli@^8.3.5": - version "8.3.5" - resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-8.3.5.tgz" - integrity sha512-6+L0vbw55UEdht71pgWOE55SRgb+8OHcEwGDB234VlIBFGK9P2QOBU7MHiYJ5cjdjCQ0rReNrGjOHmJ99jwf0w== + "integrity" "sha512-6+L0vbw55UEdht71pgWOE55SRgb+8OHcEwGDB234VlIBFGK9P2QOBU7MHiYJ5cjdjCQ0rReNrGjOHmJ99jwf0w==" + "resolved" "https://registry.npmjs.org/@commitlint/cli/-/cli-8.3.5.tgz" + "version" "8.3.5" dependencies: "@commitlint/format" "^8.3.4" "@commitlint/lint" "^8.3.5" "@commitlint/load" "^8.3.5" "@commitlint/read" "^8.3.4" - babel-polyfill "6.26.0" - chalk "2.4.2" - get-stdin "7.0.0" - lodash "4.17.15" - meow "5.0.0" - resolve-from "5.0.0" - resolve-global "1.0.0" + "babel-polyfill" "6.26.0" + "chalk" "2.4.2" + "get-stdin" "7.0.0" + "lodash" "4.17.15" + "meow" "5.0.0" + "resolve-from" "5.0.0" + "resolve-global" "1.0.0" "@commitlint/config-conventional@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz" - integrity sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g== + "integrity" "sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g==" + "resolved" "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz" + "version" "8.3.4" dependencies: - conventional-changelog-conventionalcommits "4.2.1" + "conventional-changelog-conventionalcommits" "4.2.1" "@commitlint/ensure@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.3.4.tgz" - integrity sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw== + "integrity" "sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw==" + "resolved" "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.3.4.tgz" + "version" "8.3.4" dependencies: - lodash "4.17.15" + "lodash" "4.17.15" "@commitlint/execute-rule@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz" - integrity sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ== + "integrity" "sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ==" + "resolved" "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz" + "version" "8.3.4" "@commitlint/format@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/format/-/format-8.3.4.tgz" - integrity sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw== + "integrity" "sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw==" + "resolved" "https://registry.npmjs.org/@commitlint/format/-/format-8.3.4.tgz" + "version" "8.3.4" dependencies: - chalk "^2.0.1" + "chalk" "^2.0.1" "@commitlint/is-ignored@^8.3.5": - version "8.3.5" - resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.3.5.tgz" - integrity sha512-Zo+8a6gJLFDTqyNRx53wQi/XTiz8mncvmWf/4oRG+6WRcBfjSSHY7KPVj5Y6UaLy2EgZ0WQ2Tt6RdTDeQiQplA== + "integrity" "sha512-Zo+8a6gJLFDTqyNRx53wQi/XTiz8mncvmWf/4oRG+6WRcBfjSSHY7KPVj5Y6UaLy2EgZ0WQ2Tt6RdTDeQiQplA==" + "resolved" "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.3.5.tgz" + "version" "8.3.5" dependencies: - semver "6.3.0" + "semver" "6.3.0" "@commitlint/lint@^8.3.5": - version "8.3.5" - resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-8.3.5.tgz" - integrity sha512-02AkI0a6PU6rzqUvuDkSi6rDQ2hUgkq9GpmdJqfai5bDbxx2939mK4ZO+7apbIh4H6Pae7EpYi7ffxuJgm+3hQ== + "integrity" "sha512-02AkI0a6PU6rzqUvuDkSi6rDQ2hUgkq9GpmdJqfai5bDbxx2939mK4ZO+7apbIh4H6Pae7EpYi7ffxuJgm+3hQ==" + "resolved" "https://registry.npmjs.org/@commitlint/lint/-/lint-8.3.5.tgz" + "version" "8.3.5" dependencies: "@commitlint/is-ignored" "^8.3.5" "@commitlint/parse" "^8.3.4" "@commitlint/rules" "^8.3.4" - babel-runtime "^6.23.0" - lodash "4.17.15" + "babel-runtime" "^6.23.0" + "lodash" "4.17.15" -"@commitlint/load@>6.1.1", "@commitlint/load@^8.3.5": - version "8.3.5" - resolved "https://registry.npmjs.org/@commitlint/load/-/load-8.3.5.tgz" - integrity sha512-poF7R1CtQvIXRmVIe63FjSQmN9KDqjRtU5A6hxqXBga87yB2VUJzic85TV6PcQc+wStk52cjrMI+g0zFx+Zxrw== +"@commitlint/load@^8.3.5", "@commitlint/load@>6.1.1": + "integrity" "sha512-poF7R1CtQvIXRmVIe63FjSQmN9KDqjRtU5A6hxqXBga87yB2VUJzic85TV6PcQc+wStk52cjrMI+g0zFx+Zxrw==" + "resolved" "https://registry.npmjs.org/@commitlint/load/-/load-8.3.5.tgz" + "version" "8.3.5" dependencies: "@commitlint/execute-rule" "^8.3.4" "@commitlint/resolve-extends" "^8.3.5" - babel-runtime "^6.23.0" - chalk "2.4.2" - cosmiconfig "^5.2.0" - lodash "4.17.15" - resolve-from "^5.0.0" + "babel-runtime" "^6.23.0" + "chalk" "2.4.2" + "cosmiconfig" "^5.2.0" + "lodash" "4.17.15" + "resolve-from" "^5.0.0" "@commitlint/message@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/message/-/message-8.3.4.tgz" - integrity sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA== + "integrity" "sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA==" + "resolved" "https://registry.npmjs.org/@commitlint/message/-/message-8.3.4.tgz" + "version" "8.3.4" "@commitlint/parse@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-8.3.4.tgz" - integrity sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw== + "integrity" "sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw==" + "resolved" "https://registry.npmjs.org/@commitlint/parse/-/parse-8.3.4.tgz" + "version" "8.3.4" dependencies: - conventional-changelog-angular "^1.3.3" - conventional-commits-parser "^3.0.0" - lodash "^4.17.11" + "conventional-changelog-angular" "^1.3.3" + "conventional-commits-parser" "^3.0.0" + "lodash" "^4.17.11" "@commitlint/read@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/read/-/read-8.3.4.tgz" - integrity sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw== + "integrity" "sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw==" + "resolved" "https://registry.npmjs.org/@commitlint/read/-/read-8.3.4.tgz" + "version" "8.3.4" dependencies: "@commitlint/top-level" "^8.3.4" "@marionebl/sander" "^0.6.0" - babel-runtime "^6.23.0" - git-raw-commits "^2.0.0" + "babel-runtime" "^6.23.0" + "git-raw-commits" "^2.0.0" "@commitlint/resolve-extends@^8.3.5": - version "8.3.5" - resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.5.tgz" - integrity sha512-nHhFAK29qiXNe6oH6uG5wqBnCR+BQnxlBW/q5fjtxIaQALgfoNLHwLS9exzbIRFqwJckpR6yMCfgMbmbAOtklQ== + "integrity" "sha512-nHhFAK29qiXNe6oH6uG5wqBnCR+BQnxlBW/q5fjtxIaQALgfoNLHwLS9exzbIRFqwJckpR6yMCfgMbmbAOtklQ==" + "resolved" "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.5.tgz" + "version" "8.3.5" dependencies: - import-fresh "^3.0.0" - lodash "4.17.15" - resolve-from "^5.0.0" - resolve-global "^1.0.0" + "import-fresh" "^3.0.0" + "lodash" "4.17.15" + "resolve-from" "^5.0.0" + "resolve-global" "^1.0.0" "@commitlint/rules@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-8.3.4.tgz" - integrity sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg== + "integrity" "sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg==" + "resolved" "https://registry.npmjs.org/@commitlint/rules/-/rules-8.3.4.tgz" + "version" "8.3.4" dependencies: "@commitlint/ensure" "^8.3.4" "@commitlint/message" "^8.3.4" "@commitlint/to-lines" "^8.3.4" - babel-runtime "^6.23.0" + "babel-runtime" "^6.23.0" "@commitlint/to-lines@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.3.4.tgz" - integrity sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA== + "integrity" "sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA==" + "resolved" "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.3.4.tgz" + "version" "8.3.4" "@commitlint/top-level@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.3.4.tgz" - integrity sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg== + "integrity" "sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg==" + "resolved" "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.3.4.tgz" + "version" "8.3.4" dependencies: - find-up "^4.0.0" + "find-up" "^4.0.0" "@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==" + "resolved" "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + "version" "0.8.1" dependencies: "@jridgewell/trace-mapping" "0.3.9" "@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== - dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" + "integrity" "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==" + "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" + "version" "0.4.3" + dependencies: + "ajv" "^6.12.4" + "debug" "^4.1.1" + "espree" "^7.3.0" + "globals" "^13.9.0" + "ignore" "^4.0.6" + "import-fresh" "^3.2.1" + "js-yaml" "^3.13.1" + "minimatch" "^3.0.4" + "strip-json-comments" "^3.1.1" "@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + "integrity" "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" + "version" "0.5.0" dependencies: "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" + "debug" "^4.1.1" + "minimatch" "^3.0.4" "@humanwhocodes/object-schema@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz" - integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + "integrity" "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz" + "version" "1.2.0" "@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + "integrity" "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==" + "resolved" "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + "version" "1.1.0" dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" + "camelcase" "^5.3.1" + "find-up" "^4.1.0" + "get-package-type" "^0.1.0" + "js-yaml" "^3.13.1" + "resolve-from" "^5.0.0" "@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + "integrity" "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + "resolved" "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + "version" "0.1.3" "@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== + "integrity" "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==" + "resolved" "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" + "chalk" "^4.0.0" + "jest-message-util" "^27.5.1" + "jest-util" "^27.5.1" + "slash" "^3.0.0" "@jest/core@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz" - integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== + "integrity" "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==" + "resolved" "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/console" "^27.5.1" "@jest/reporters" "^27.5.1" @@ -1129,64 +1129,64 @@ "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^27.5.1" - jest-config "^27.5.1" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-resolve-dependencies "^27.5.1" - jest-runner "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - jest-watcher "^27.5.1" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" + "ansi-escapes" "^4.2.1" + "chalk" "^4.0.0" + "emittery" "^0.8.1" + "exit" "^0.1.2" + "graceful-fs" "^4.2.9" + "jest-changed-files" "^27.5.1" + "jest-config" "^27.5.1" + "jest-haste-map" "^27.5.1" + "jest-message-util" "^27.5.1" + "jest-regex-util" "^27.5.1" + "jest-resolve" "^27.5.1" + "jest-resolve-dependencies" "^27.5.1" + "jest-runner" "^27.5.1" + "jest-runtime" "^27.5.1" + "jest-snapshot" "^27.5.1" + "jest-util" "^27.5.1" + "jest-validate" "^27.5.1" + "jest-watcher" "^27.5.1" + "micromatch" "^4.0.4" + "rimraf" "^3.0.0" + "slash" "^3.0.0" + "strip-ansi" "^6.0.0" "@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz" - integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== + "integrity" "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==" + "resolved" "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/fake-timers" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^27.5.1" + "jest-mock" "^27.5.1" "@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz" - integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== + "integrity" "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==" + "resolved" "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" + "jest-message-util" "^27.5.1" + "jest-mock" "^27.5.1" + "jest-util" "^27.5.1" "@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz" - integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== + "integrity" "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==" + "resolved" "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/environment" "^27.5.1" "@jest/types" "^27.5.1" - expect "^27.5.1" + "expect" "^27.5.1" "@jest/reporters@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz" - integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== + "integrity" "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==" + "resolved" "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz" + "version" "27.5.1" dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^27.5.1" @@ -1194,178 +1194,178 @@ "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-haste-map "^27.5.1" - jest-resolve "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" + "chalk" "^4.0.0" + "collect-v8-coverage" "^1.0.0" + "exit" "^0.1.2" + "glob" "^7.1.2" + "graceful-fs" "^4.2.9" + "istanbul-lib-coverage" "^3.0.0" + "istanbul-lib-instrument" "^5.1.0" + "istanbul-lib-report" "^3.0.0" + "istanbul-lib-source-maps" "^4.0.0" + "istanbul-reports" "^3.1.3" + "jest-haste-map" "^27.5.1" + "jest-resolve" "^27.5.1" + "jest-util" "^27.5.1" + "jest-worker" "^27.5.1" + "slash" "^3.0.0" + "source-map" "^0.6.0" + "string-length" "^4.0.1" + "terminal-link" "^2.0.0" + "v8-to-istanbul" "^8.1.0" "@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz" - integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== + "integrity" "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==" + "resolved" "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz" + "version" "27.5.1" dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.9" - source-map "^0.6.0" + "callsites" "^3.0.0" + "graceful-fs" "^4.2.9" + "source-map" "^0.6.0" "@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== + "integrity" "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==" + "resolved" "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/console" "^27.5.1" "@jest/types" "^27.5.1" "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" + "collect-v8-coverage" "^1.0.0" "@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz" - integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== + "integrity" "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==" + "resolved" "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/test-result" "^27.5.1" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^27.5.1" + "jest-runtime" "^27.5.1" "@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== + "integrity" "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==" + "resolved" "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz" + "version" "27.5.1" dependencies: "@babel/core" "^7.1.0" "@jest/types" "^27.5.1" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" + "babel-plugin-istanbul" "^6.1.1" + "chalk" "^4.0.0" + "convert-source-map" "^1.4.0" + "fast-json-stable-stringify" "^2.0.0" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^27.5.1" + "jest-regex-util" "^27.5.1" + "jest-util" "^27.5.1" + "micromatch" "^4.0.4" + "pirates" "^4.0.4" + "slash" "^3.0.0" + "source-map" "^0.6.1" + "write-file-atomic" "^3.0.0" "@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + "integrity" "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" + "version" "27.5.1" dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^16.0.0" - chalk "^4.0.0" + "chalk" "^4.0.0" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== + "integrity" "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==" + "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz" + "version" "3.0.7" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== + "integrity" "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz" + "version" "1.4.13" "@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + "version" "0.3.9" dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@marionebl/sander@^0.6.0": - version "0.6.1" - resolved "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz" - integrity sha1-GViWWHTyS8Ub5Ih1/rUNZC/EH3s= + "integrity" "sha1-GViWWHTyS8Ub5Ih1/rUNZC/EH3s=" + "resolved" "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz" + "version" "0.6.1" dependencies: - graceful-fs "^4.1.3" - mkdirp "^0.5.1" - rimraf "^2.5.2" + "graceful-fs" "^4.1.3" + "mkdirp" "^0.5.1" + "rimraf" "^2.5.2" "@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + "version" "2.1.5" dependencies: "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" + "run-parallel" "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "version" "2.0.5" "@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + "version" "1.2.8" dependencies: "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" + "fastq" "^1.6.0" "@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + "integrity" "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==" + "resolved" "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + "version" "1.8.3" dependencies: - type-detect "4.0.8" + "type-detect" "4.0.8" "@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + "integrity" "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==" + "resolved" "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" + "version" "8.1.0" dependencies: "@sinonjs/commons" "^1.7.0" "@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + "integrity" "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "resolved" "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" + "version" "1.1.2" "@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + "integrity" "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + "resolved" "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" + "version" "1.0.9" "@tsconfig/node12@^1.0.7": - version "1.0.10" - resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.10.tgz" - integrity sha512-N+srakvPaYMGkwjNDx3ASx65Zl3QG8dJgVtIB+YMOkucU+zctlv/hdP5250VKdDHSDoW9PFZoCqbqNcAPjCjXA== + "integrity" "sha512-N+srakvPaYMGkwjNDx3ASx65Zl3QG8dJgVtIB+YMOkucU+zctlv/hdP5250VKdDHSDoW9PFZoCqbqNcAPjCjXA==" + "resolved" "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.10.tgz" + "version" "1.0.10" "@tsconfig/node14@^1.0.0": - version "1.0.2" - resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.2.tgz" - integrity sha512-YwrUA5ysDXHFYfL0Xed9x3sNS4P+aKlCOnnbqUa2E5HdQshHFleCJVrj1PlGTb4GgFUCDyte1v3JWLy2sz8Oqg== + "integrity" "sha512-YwrUA5ysDXHFYfL0Xed9x3sNS4P+aKlCOnnbqUa2E5HdQshHFleCJVrj1PlGTb4GgFUCDyte1v3JWLy2sz8Oqg==" + "resolved" "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.2.tgz" + "version" "1.0.2" "@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + "integrity" "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + "resolved" "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" + "version" "1.0.3" "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.19" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + "integrity" "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==" + "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" + "version" "7.1.19" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1374,463 +1374,462 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.3" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz" - integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + "integrity" "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==" + "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz" + "version" "7.6.3" dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + "integrity" "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==" + "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + "version" "7.4.1" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + "integrity" "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==" + "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz" + "version" "7.14.2" dependencies: "@babel/types" "^7.3.0" "@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + "integrity" "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==" + "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" + "version" "4.1.5" dependencies: "@types/node" "*" "@types/graphql@^14.5.0": - version "14.5.0" - resolved "https://registry.npmjs.org/@types/graphql/-/graphql-14.5.0.tgz" - integrity sha512-MOkzsEp1Jk5bXuAsHsUi6BVv0zCO+7/2PTiZMXWDSsMXvNU6w/PLMQT2vHn8hy2i0JqojPz1Sz6rsFjHtsU0lA== + "integrity" "sha512-MOkzsEp1Jk5bXuAsHsUi6BVv0zCO+7/2PTiZMXWDSsMXvNU6w/PLMQT2vHn8hy2i0JqojPz1Sz6rsFjHtsU0lA==" + "resolved" "https://registry.npmjs.org/@types/graphql/-/graphql-14.5.0.tgz" + "version" "14.5.0" dependencies: - graphql "*" + "graphql" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + "integrity" "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz" + "version" "2.0.3" "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" + "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + "version" "3.0.1" dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^27.4.1": - version "27.4.1" - resolved "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz" - integrity sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw== +"@types/jest@^27.0.0", "@types/jest@^27.4.1": + "integrity" "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==" + "resolved" "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz" + "version" "27.4.1" dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" + "jest-matcher-utils" "^27.0.0" + "pretty-format" "^27.0.0" "@types/json-schema@^7.0.7": - version "7.0.9" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + "integrity" "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" + "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" + "version" "7.0.9" "@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + "integrity" "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" + "resolved" "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz" + "version" "1.2.2" "@types/node-fetch@^2.3.7": - version "2.5.12" - resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz" - integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== + "integrity" "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==" + "resolved" "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz" + "version" "2.5.12" dependencies: "@types/node" "*" - form-data "^3.0.0" + "form-data" "^3.0.0" "@types/node@*", "@types/node@^13.9.0": - version "13.13.52" - resolved "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz" - integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== + "integrity" "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz" + "version" "13.13.52" "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + "integrity" "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + "resolved" "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" + "version" "2.4.1" "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + "integrity" "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "resolved" "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" + "version" "4.0.0" "@types/prettier@^2.1.5": - version "2.6.0" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz" - integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== + "integrity" "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==" + "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz" + "version" "2.6.0" "@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" + "version" "2.0.1" "@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + "integrity" "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" + "version" "20.2.1" "@types/yargs@^15.0.11": - version "15.0.14" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + "integrity" "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz" + "version" "15.0.14" dependencies: "@types/yargs-parser" "*" "@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + "integrity" "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" + "version" "16.0.4" dependencies: "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^4.15.0": - version "4.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.32.0.tgz" - integrity sha512-+OWTuWRSbWI1KDK8iEyG/6uK2rTm3kpS38wuVifGUTDB6kjEuNrzBI1MUtxnkneuWG/23QehABe2zHHrj+4yuA== + "integrity" "sha512-+OWTuWRSbWI1KDK8iEyG/6uK2rTm3kpS38wuVifGUTDB6kjEuNrzBI1MUtxnkneuWG/23QehABe2zHHrj+4yuA==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.32.0.tgz" + "version" "4.32.0" dependencies: "@typescript-eslint/experimental-utils" "4.32.0" "@typescript-eslint/scope-manager" "4.32.0" - debug "^4.3.1" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.1.0" - semver "^7.3.5" - tsutils "^3.21.0" + "debug" "^4.3.1" + "functional-red-black-tree" "^1.0.1" + "ignore" "^5.1.8" + "regexpp" "^3.1.0" + "semver" "^7.3.5" + "tsutils" "^3.21.0" "@typescript-eslint/experimental-utils@4.32.0": - version "4.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.32.0.tgz" - integrity sha512-WLoXcc+cQufxRYjTWr4kFt0DyEv6hDgSaFqYhIzQZ05cF+kXfqXdUh+//kgquPJVUBbL3oQGKQxwPbLxHRqm6A== + "integrity" "sha512-WLoXcc+cQufxRYjTWr4kFt0DyEv6hDgSaFqYhIzQZ05cF+kXfqXdUh+//kgquPJVUBbL3oQGKQxwPbLxHRqm6A==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.32.0.tgz" + "version" "4.32.0" dependencies: "@types/json-schema" "^7.0.7" "@typescript-eslint/scope-manager" "4.32.0" "@typescript-eslint/types" "4.32.0" "@typescript-eslint/typescript-estree" "4.32.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" + "eslint-scope" "^5.1.1" + "eslint-utils" "^3.0.0" -"@typescript-eslint/parser@^4.15.0": - version "4.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.32.0.tgz" - integrity sha512-lhtYqQ2iEPV5JqV7K+uOVlPePjClj4dOw7K4/Z1F2yvjIUvyr13yJnDzkK6uon4BjHYuHy3EG0c2Z9jEhFk56w== +"@typescript-eslint/parser@^4.0.0", "@typescript-eslint/parser@^4.15.0": + "integrity" "sha512-lhtYqQ2iEPV5JqV7K+uOVlPePjClj4dOw7K4/Z1F2yvjIUvyr13yJnDzkK6uon4BjHYuHy3EG0c2Z9jEhFk56w==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.32.0.tgz" + "version" "4.32.0" dependencies: "@typescript-eslint/scope-manager" "4.32.0" "@typescript-eslint/types" "4.32.0" "@typescript-eslint/typescript-estree" "4.32.0" - debug "^4.3.1" + "debug" "^4.3.1" "@typescript-eslint/scope-manager@4.32.0": - version "4.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.32.0.tgz" - integrity sha512-DK+fMSHdM216C0OM/KR1lHXjP1CNtVIhJ54kQxfOE6x8UGFAjha8cXgDMBEIYS2XCYjjCtvTkjQYwL3uvGOo0w== + "integrity" "sha512-DK+fMSHdM216C0OM/KR1lHXjP1CNtVIhJ54kQxfOE6x8UGFAjha8cXgDMBEIYS2XCYjjCtvTkjQYwL3uvGOo0w==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.32.0.tgz" + "version" "4.32.0" dependencies: "@typescript-eslint/types" "4.32.0" "@typescript-eslint/visitor-keys" "4.32.0" "@typescript-eslint/types@4.32.0": - version "4.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.32.0.tgz" - integrity sha512-LE7Z7BAv0E2UvqzogssGf1x7GPpUalgG07nGCBYb1oK4mFsOiFC/VrSMKbZQzFJdN2JL5XYmsx7C7FX9p9ns0w== + "integrity" "sha512-LE7Z7BAv0E2UvqzogssGf1x7GPpUalgG07nGCBYb1oK4mFsOiFC/VrSMKbZQzFJdN2JL5XYmsx7C7FX9p9ns0w==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.32.0.tgz" + "version" "4.32.0" "@typescript-eslint/typescript-estree@4.32.0": - version "4.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.32.0.tgz" - integrity sha512-tRYCgJ3g1UjMw1cGG8Yn1KzOzNlQ6u1h9AmEtPhb5V5a1TmiHWcRyF/Ic+91M4f43QeChyYlVTcf3DvDTZR9vw== + "integrity" "sha512-tRYCgJ3g1UjMw1cGG8Yn1KzOzNlQ6u1h9AmEtPhb5V5a1TmiHWcRyF/Ic+91M4f43QeChyYlVTcf3DvDTZR9vw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.32.0.tgz" + "version" "4.32.0" dependencies: "@typescript-eslint/types" "4.32.0" "@typescript-eslint/visitor-keys" "4.32.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" + "debug" "^4.3.1" + "globby" "^11.0.3" + "is-glob" "^4.0.1" + "semver" "^7.3.5" + "tsutils" "^3.21.0" "@typescript-eslint/visitor-keys@4.32.0": - version "4.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.32.0.tgz" - integrity sha512-e7NE0qz8W+atzv3Cy9qaQ7BTLwWsm084Z0c4nIO2l3Bp6u9WIgdqCgyPyV5oSPDMIW3b20H59OOCmVk3jw3Ptw== + "integrity" "sha512-e7NE0qz8W+atzv3Cy9qaQ7BTLwWsm084Z0c4nIO2l3Bp6u9WIgdqCgyPyV5oSPDMIW3b20H59OOCmVk3jw3Ptw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.32.0.tgz" + "version" "4.32.0" dependencies: "@typescript-eslint/types" "4.32.0" - eslint-visitor-keys "^2.0.0" - -JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^2.0.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^7.1.1, acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4: - version "8.7.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== - -acorn@^8.4.1: - version "8.7.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - -agent-base@6: - version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.6.3" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz" - integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3, anymatch@~3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -babel-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== + "eslint-visitor-keys" "^2.0.0" + +"abab@^2.0.3", "abab@^2.0.5": + "integrity" "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + "resolved" "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" + "version" "2.0.6" + +"acorn-globals@^6.0.0": + "integrity" "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==" + "resolved" "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "acorn" "^7.1.1" + "acorn-walk" "^7.1.1" + +"acorn-jsx@^5.3.1": + "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + "version" "5.3.2" + +"acorn-walk@^7.1.1": + "integrity" "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" + "version" "7.2.0" + +"acorn-walk@^8.1.1": + "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + "version" "8.2.0" + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.1.1", "acorn@^7.4.0": + "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + "version" "7.4.1" + +"acorn@^8.2.4": + "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + "version" "8.7.0" + +"acorn@^8.4.1": + "integrity" "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" + "version" "8.7.1" + +"agent-base@6": + "integrity" "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==" + "resolved" "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "debug" "4" + +"ajv@^6.10.0", "ajv@^6.12.4": + "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + "version" "6.12.6" + dependencies: + "fast-deep-equal" "^3.1.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +"ajv@^8.0.1": + "integrity" "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz" + "version" "8.6.3" + dependencies: + "fast-deep-equal" "^3.1.1" + "json-schema-traverse" "^1.0.0" + "require-from-string" "^2.0.2" + "uri-js" "^4.2.2" + +"ansi-colors@^4.1.1": + "integrity" "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + "version" "4.1.1" + +"ansi-colors@3.2.3": + "integrity" "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" + "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz" + "version" "3.2.3" + +"ansi-escapes@^3.2.0": + "integrity" "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" + "version" "3.2.0" + +"ansi-escapes@^4.2.1": + "integrity" "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" + "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "type-fest" "^0.21.3" + +"ansi-regex@^3.0.0": + "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + "version" "3.0.0" + +"ansi-regex@^4.1.0": + "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + "version" "4.1.0" + +"ansi-regex@^5.0.1": + "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + "version" "5.0.1" + +"ansi-styles@^3.2.0", "ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"ansi-styles@^5.0.0": + "integrity" "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + "version" "5.2.0" + +"anymatch@^3.0.3", "anymatch@~3.1.1": + "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"arg@^4.1.0": + "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + "version" "4.1.3" + +"argparse@^1.0.7": + "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"array-find-index@^1.0.1": + "integrity" "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + "resolved" "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + "version" "1.0.2" + +"array-ify@^1.0.0": + "integrity" "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" + "resolved" "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" + "version" "1.0.0" + +"array-union@^2.1.0": + "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + "version" "2.1.0" + +"arrify@^1.0.1": + "integrity" "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "resolved" "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" + "version" "1.0.1" + +"astral-regex@^2.0.0": + "integrity" "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + "resolved" "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + "version" "2.0.0" + +"asynckit@^0.4.0": + "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + "version" "0.4.0" + +"babel-jest@^27.5.1", "babel-jest@>=27.0.0 <28": + "integrity" "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==" + "resolved" "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" + "babel-plugin-istanbul" "^6.1.1" + "babel-preset-jest" "^27.5.1" + "chalk" "^4.0.0" + "graceful-fs" "^4.2.9" + "slash" "^3.0.0" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== +"babel-plugin-dynamic-import-node@^2.3.3": + "integrity" "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + "version" "2.3.3" dependencies: - object.assign "^4.1.0" + "object.assign" "^4.1.0" -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== +"babel-plugin-istanbul@^6.1.1": + "integrity" "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==" + "resolved" "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + "version" "6.1.1" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" + "istanbul-lib-instrument" "^5.0.4" + "test-exclude" "^6.0.0" -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== +"babel-plugin-jest-hoist@^27.5.1": + "integrity" "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz" + "version" "27.5.1" dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz" - integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== +"babel-plugin-polyfill-corejs2@^0.2.2": + "integrity" "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz" + "version" "0.2.2" dependencies: "@babel/compat-data" "^7.13.11" "@babel/helper-define-polyfill-provider" "^0.2.2" - semver "^6.1.1" + "semver" "^6.1.1" -babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.5" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz" - integrity sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw== +"babel-plugin-polyfill-corejs3@^0.2.2": + "integrity" "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz" + "version" "0.2.5" dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.16.2" + "core-js-compat" "^3.16.2" -babel-plugin-polyfill-regenerator@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz" - integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== +"babel-plugin-polyfill-regenerator@^0.2.2": + "integrity" "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz" + "version" "0.2.2" dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" -babel-polyfill@6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz" - integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= +"babel-polyfill@6.26.0": + "integrity" "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=" + "resolved" "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz" + "version" "6.26.0" dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" + "babel-runtime" "^6.26.0" + "core-js" "^2.5.0" + "regenerator-runtime" "^0.10.5" -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== +"babel-preset-current-node-syntax@^1.0.0": + "integrity" "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==" + "resolved" "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" + "version" "1.0.1" dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" @@ -1845,1975 +1844,1987 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== - dependencies: - babel-plugin-jest-hoist "^27.5.1" - babel-preset-current-node-syntax "^1.0.0" +"babel-preset-jest@^27.5.1": + "integrity" "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==" + "resolved" "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "babel-plugin-jest-hoist" "^27.5.1" + "babel-preset-current-node-syntax" "^1.0.0" -babel-runtime@^6.23.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= +"babel-runtime@^6.23.0", "babel-runtime@^6.26.0": + "integrity" "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=" + "resolved" "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" + "version" "6.26.0" dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserslist@^4.16.6, browserslist@^4.17.1: - version "4.17.2" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.17.2.tgz" - integrity sha512-jSDZyqJmkKMEMi7SZAgX5UltFdR5NAO43vY0AwTpu4X3sGH7GLLQ83KiUomgrnvZRCeW0yPPnKqnxPqQOER9zQ== - dependencies: - caniuse-lite "^1.0.30001261" - electron-to-chromium "^1.3.854" - escalade "^3.1.1" - nanocolors "^0.2.12" - node-releases "^1.1.76" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -cachedir@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz" - integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz" - integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001261: - version "1.0.30001261" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz" - integrity sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA== - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - 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@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chokidar@3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz" - integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.2.0" + "core-js" "^2.4.0" + "regenerator-runtime" "^0.11.0" + +"balanced-match@^1.0.0": + "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + "version" "1.0.2" + +"binary-extensions@^2.0.0": + "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + "version" "2.2.0" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"braces@^3.0.1", "braces@~3.0.2": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"browser-process-hrtime@^1.0.0": + "integrity" "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + "resolved" "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" + "version" "1.0.0" + +"browser-stdout@1.3.1": + "integrity" "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + "resolved" "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + "version" "1.3.1" + +"browserslist@^4.16.6", "browserslist@^4.17.1": + "integrity" "sha512-jSDZyqJmkKMEMi7SZAgX5UltFdR5NAO43vY0AwTpu4X3sGH7GLLQ83KiUomgrnvZRCeW0yPPnKqnxPqQOER9zQ==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.17.2.tgz" + "version" "4.17.2" + dependencies: + "caniuse-lite" "^1.0.30001261" + "electron-to-chromium" "^1.3.854" + "escalade" "^3.1.1" + "nanocolors" "^0.2.12" + "node-releases" "^1.1.76" + +"bs-logger@0.x": + "integrity" "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==" + "resolved" "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" + "version" "0.2.6" + dependencies: + "fast-json-stable-stringify" "2.x" + +"bser@2.1.1": + "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==" + "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "node-int64" "^0.4.0" + +"buffer-from@^1.0.0": + "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + "version" "1.1.2" + +"cachedir@2.2.0": + "integrity" "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==" + "resolved" "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz" + "version" "2.2.0" + +"call-bind@^1.0.0", "call-bind@^1.0.2": + "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" + "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "function-bind" "^1.1.1" + "get-intrinsic" "^1.0.2" + +"caller-callsite@^2.0.0": + "integrity" "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=" + "resolved" "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "callsites" "^2.0.0" + +"caller-path@^2.0.0": + "integrity" "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=" + "resolved" "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "caller-callsite" "^2.0.0" + +"callsites@^2.0.0": + "integrity" "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + "version" "2.0.0" + +"callsites@^3.0.0": + "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + "version" "3.1.0" + +"camelcase-keys@^4.0.0": + "integrity" "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=" + "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "camelcase" "^4.1.0" + "map-obj" "^2.0.0" + "quick-lru" "^1.0.0" + +"camelcase-keys@^6.2.2": + "integrity" "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==" + "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" + "version" "6.2.2" + dependencies: + "camelcase" "^5.3.1" + "map-obj" "^4.0.0" + "quick-lru" "^4.0.1" + +"camelcase@^4.1.0": + "integrity" "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz" + "version" "4.1.0" + +"camelcase@^5.0.0", "camelcase@^5.3.1": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"camelcase@^6.2.0": + "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + "version" "6.3.0" + +"caniuse-lite@^1.0.30001261": + "integrity" "sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz" + "version" "1.0.30001261" + +"chalk@^2.0.0", "chalk@^2.0.1", "chalk@^2.4.1", "chalk@^2.4.2", "chalk@2.4.2": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^4.0.0": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"char-regex@^1.0.2": + "integrity" "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + "resolved" "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + "version" "1.0.2" + +"chardet@^0.7.0": + "integrity" "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "resolved" "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + "version" "0.7.0" + +"chokidar@3.3.0": + "integrity" "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==" + "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "anymatch" "~3.1.1" + "braces" "~3.0.2" + "glob-parent" "~5.1.0" + "is-binary-path" "~2.1.0" + "is-glob" "~4.0.1" + "normalize-path" "~3.0.0" + "readdirp" "~3.2.0" optionalDependencies: - fsevents "~2.1.1" - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commitizen@^4.0.3: - version "4.2.4" - resolved "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz" - integrity sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw== - dependencies: - cachedir "2.2.0" - cz-conventional-changelog "3.2.0" - dedent "0.7.0" - detect-indent "6.0.0" - find-node-modules "^2.1.2" - find-root "1.1.0" - fs-extra "8.1.0" - glob "7.1.4" - inquirer "6.5.2" - is-utf8 "^0.2.1" - lodash "^4.17.20" - minimist "1.2.5" - strip-bom "4.0.0" - strip-json-comments "3.0.1" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -compare-func@^1.3.1: - version "1.3.4" - resolved "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz" - integrity sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q== - dependencies: - array-ify "^1.0.0" - dot-prop "^3.0.0" - -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -conventional-changelog-angular@^1.3.3: - version "1.6.6" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz" - integrity sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg== - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - -conventional-changelog-conventionalcommits@4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz" - integrity sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q== - dependencies: - compare-func "^1.3.1" - lodash "^4.2.1" - q "^1.5.1" - -conventional-commit-types@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz" - integrity sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg== - -conventional-commits-parser@^3.0.0: - version "3.2.2" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz" - integrity sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g== - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -core-js-compat@^3.16.0, core-js-compat@^3.16.2: - version "3.18.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.1.tgz" - integrity sha512-XJMYx58zo4W0kLPmIingVZA10+7TuKrMLPt83+EzDmxFJQUMcTVVmQ+n5JP4r6Z14qSzhQBRi3NSWoeVyKKXUg== - dependencies: - browserslist "^4.17.1" - semver "7.0.0" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.12" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-js@^3.16.0: - version "3.18.1" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz" - integrity sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA== - -cosmiconfig@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + "fsevents" "~2.1.1" + +"ci-info@^2.0.0": + "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + "version" "2.0.0" + +"ci-info@^3.2.0": + "integrity" "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" + "version" "3.3.0" + +"cjs-module-lexer@^1.0.0": + "integrity" "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "resolved" "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" + "version" "1.2.2" + +"cli-cursor@^2.1.0": + "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "restore-cursor" "^2.0.0" + +"cli-width@^2.0.0": + "integrity" "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + "resolved" "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz" + "version" "2.2.1" + +"cliui@^5.0.0": + "integrity" "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "string-width" "^3.1.0" + "strip-ansi" "^5.2.0" + "wrap-ansi" "^5.1.0" + +"cliui@^7.0.2": + "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + "version" "7.0.4" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^7.0.0" + +"clone-deep@^4.0.1": + "integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==" + "resolved" "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-plain-object" "^2.0.4" + "kind-of" "^6.0.2" + "shallow-clone" "^3.0.0" + +"co@^4.6.0": + "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + "version" "4.6.0" + +"collect-v8-coverage@^1.0.0": + "integrity" "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" + "version" "1.0.1" + +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"combined-stream@^1.0.8": + "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" + "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "delayed-stream" "~1.0.0" + +"commander@^4.0.1": + "integrity" "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "resolved" "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + "version" "4.1.1" + +"commitizen@^4.0.3": + "integrity" "sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==" + "resolved" "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz" + "version" "4.2.4" + dependencies: + "cachedir" "2.2.0" + "cz-conventional-changelog" "3.2.0" + "dedent" "0.7.0" + "detect-indent" "6.0.0" + "find-node-modules" "^2.1.2" + "find-root" "1.1.0" + "fs-extra" "8.1.0" + "glob" "7.1.4" + "inquirer" "6.5.2" + "is-utf8" "^0.2.1" + "lodash" "^4.17.20" + "minimist" "1.2.5" + "strip-bom" "4.0.0" + "strip-json-comments" "3.0.1" + +"commondir@^1.0.1": + "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + "version" "1.0.1" + +"compare-func@^1.3.1": + "integrity" "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==" + "resolved" "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz" + "version" "1.3.4" + dependencies: + "array-ify" "^1.0.0" + "dot-prop" "^3.0.0" + +"compare-versions@^3.6.0": + "integrity" "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" + "resolved" "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz" + "version" "3.6.0" + +"concat-map@0.0.1": + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"conventional-changelog-angular@^1.3.3": + "integrity" "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==" + "resolved" "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz" + "version" "1.6.6" + dependencies: + "compare-func" "^1.3.1" + "q" "^1.5.1" + +"conventional-changelog-conventionalcommits@4.2.1": + "integrity" "sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q==" + "resolved" "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "compare-func" "^1.3.1" + "lodash" "^4.2.1" + "q" "^1.5.1" + +"conventional-commit-types@^3.0.0": + "integrity" "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==" + "resolved" "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz" + "version" "3.0.0" + +"conventional-commits-parser@^3.0.0": + "integrity" "sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g==" + "resolved" "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "is-text-path" "^1.0.1" + "JSONStream" "^1.0.4" + "lodash" "^4.17.15" + "meow" "^8.0.0" + "split2" "^3.0.0" + "through2" "^4.0.0" + +"convert-source-map@^1.4.0", "convert-source-map@^1.6.0", "convert-source-map@^1.7.0": + "integrity" "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + "version" "1.8.0" + dependencies: + "safe-buffer" "~5.1.1" + +"core-js-compat@^3.16.0", "core-js-compat@^3.16.2": + "integrity" "sha512-XJMYx58zo4W0kLPmIingVZA10+7TuKrMLPt83+EzDmxFJQUMcTVVmQ+n5JP4r6Z14qSzhQBRi3NSWoeVyKKXUg==" + "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.1.tgz" + "version" "3.18.1" + dependencies: + "browserslist" "^4.17.1" + "semver" "7.0.0" + +"core-js@^2.4.0": + "integrity" "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" + "version" "2.6.12" + +"core-js@^2.5.0": + "integrity" "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" + "version" "2.6.12" + +"core-js@^3.16.0": + "integrity" "sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA==" + "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz" + "version" "3.18.1" + +"cosmiconfig@^5.2.0": + "integrity" "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==" + "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + "version" "5.2.1" + dependencies: + "import-fresh" "^2.0.0" + "is-directory" "^0.3.1" + "js-yaml" "^3.13.1" + "parse-json" "^4.0.0" + +"cosmiconfig@^7.0.0": + "integrity" "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==" + "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" + "version" "7.0.1" dependencies: "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.0.4: - version "3.1.4" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz" - integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== - dependencies: - node-fetch "2.6.1" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -cz-conventional-changelog@3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz" - integrity sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg== - dependencies: - chalk "^2.4.1" - commitizen "^4.0.3" - conventional-commit-types "^3.0.0" - lodash.map "^4.5.1" - longest "^2.0.1" - word-wrap "^1.0.3" + "import-fresh" "^3.2.1" + "parse-json" "^5.0.0" + "path-type" "^4.0.0" + "yaml" "^1.10.0" + +"create-require@^1.1.0": + "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + "version" "1.1.1" + +"cross-fetch@^3.0.4": + "integrity" "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==" + "resolved" "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz" + "version" "3.1.4" + dependencies: + "node-fetch" "2.6.1" + +"cross-spawn@^7.0.2", "cross-spawn@^7.0.3": + "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "path-key" "^3.1.0" + "shebang-command" "^2.0.0" + "which" "^2.0.1" + +"cssom@^0.4.4": + "integrity" "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + "resolved" "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" + "version" "0.4.4" + +"cssom@~0.3.6": + "integrity" "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + "resolved" "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" + "version" "0.3.8" + +"cssstyle@^2.3.0": + "integrity" "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==" + "resolved" "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "cssom" "~0.3.6" + +"currently-unhandled@^0.4.1": + "integrity" "sha1-mI3zP+qxke95mmE2nddsF635V+o=" + "resolved" "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "array-find-index" "^1.0.1" + +"cz-conventional-changelog@^3.1.0": + "integrity" "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==" + "resolved" "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "chalk" "^2.4.1" + "commitizen" "^4.0.3" + "conventional-commit-types" "^3.0.0" + "lodash.map" "^4.5.1" + "longest" "^2.0.1" + "word-wrap" "^1.0.3" optionalDependencies: "@commitlint/load" ">6.1.1" -cz-conventional-changelog@^3.1.0: - version "3.3.0" - resolved "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz" - integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== - dependencies: - chalk "^2.4.1" - commitizen "^4.0.3" - conventional-commit-types "^3.0.0" - lodash.map "^4.5.1" - longest "^2.0.1" - word-wrap "^1.0.3" +"cz-conventional-changelog@3.2.0": + "integrity" "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==" + "resolved" "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "chalk" "^2.4.1" + "commitizen" "^4.0.3" + "conventional-commit-types" "^3.0.0" + "lodash.map" "^4.5.1" + "longest" "^2.0.1" + "word-wrap" "^1.0.3" optionalDependencies: "@commitlint/load" ">6.1.1" -dargs@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" - integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@3.2.6: - version "3.2.6" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.2" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -dedent@0.7.0, dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-indent@6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - -diff@3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -dot-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz" - integrity sha1-G3CK8JSknJoOfbyteQq6U52sEXc= - dependencies: - is-obj "^1.0.0" - -electron-to-chromium@^1.3.854: - version "1.3.854" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.854.tgz" - integrity sha512-00/IIC1mFPkq32MhUJyLdcTp7+wsKK2G3Sb65GSas9FKJQGYkDcZ4GwJkkxf5YyM3ETvl6n+toV8OmtXl4IA/g== - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.18.0-next.2: - version "1.18.7" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.7.tgz" - integrity sha512-uFG1gyVX91tZIiDWNmPsL8XNpiCk/6tkB7MZphoSJflS4w+KgWyQ2gjCVDnsPxFAo9WjRXG3eqONNYdfbJjAtw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-string "^1.0.7" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" +"dargs@^7.0.0": + "integrity" "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==" + "resolved" "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" + "version" "7.0.0" + +"data-urls@^2.0.0": + "integrity" "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==" + "resolved" "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "abab" "^2.0.3" + "whatwg-mimetype" "^2.3.0" + "whatwg-url" "^8.0.0" + +"debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.1", "debug@4": + "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "ms" "2.1.2" + +"debug@3.2.6": + "integrity" "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" + "version" "3.2.6" + dependencies: + "ms" "^2.1.1" + +"decamelize-keys@^1.0.0", "decamelize-keys@^1.1.0": + "integrity" "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=" + "resolved" "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "decamelize" "^1.1.0" + "map-obj" "^1.0.0" + +"decamelize@^1.1.0", "decamelize@^1.2.0": + "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + "version" "1.2.0" + +"decimal.js@^10.2.1": + "integrity" "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + "resolved" "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" + "version" "10.3.1" + +"dedent@^0.7.0", "dedent@0.7.0": + "integrity" "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + "version" "0.7.0" + +"deep-is@^0.1.3", "deep-is@~0.1.3": + "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + "version" "0.1.4" + +"deepmerge@^4.2.2": + "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" + "version" "4.2.2" + +"define-properties@^1.1.2", "define-properties@^1.1.3": + "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "object-keys" "^1.0.12" + +"delayed-stream@~1.0.0": + "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "version" "1.0.0" + +"detect-file@^1.0.0": + "integrity" "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + "resolved" "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" + "version" "1.0.0" + +"detect-indent@6.0.0": + "integrity" "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" + "resolved" "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz" + "version" "6.0.0" + +"detect-newline@^3.0.0": + "integrity" "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + "version" "3.1.0" + +"diff-sequences@^27.5.1": + "integrity" "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" + "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" + "version" "27.5.1" + +"diff@^4.0.1": + "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + "version" "4.0.2" + +"diff@3.5.0": + "integrity" "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "resolved" "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" + "version" "3.5.0" + +"dir-glob@^3.0.1": + "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" + "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "path-type" "^4.0.0" + +"doctrine@^3.0.0": + "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==" + "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "esutils" "^2.0.2" + +"domexception@^2.0.1": + "integrity" "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==" + "resolved" "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "webidl-conversions" "^5.0.0" + +"dot-prop@^3.0.0": + "integrity" "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=" + "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "is-obj" "^1.0.0" + +"electron-to-chromium@^1.3.854": + "integrity" "sha512-00/IIC1mFPkq32MhUJyLdcTp7+wsKK2G3Sb65GSas9FKJQGYkDcZ4GwJkkxf5YyM3ETvl6n+toV8OmtXl4IA/g==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.854.tgz" + "version" "1.3.854" + +"emittery@^0.8.1": + "integrity" "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + "resolved" "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" + "version" "0.8.1" + +"emoji-regex@^7.0.1": + "integrity" "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + "version" "7.0.3" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" + +"enquirer@^2.3.5": + "integrity" "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==" + "resolved" "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" + "version" "2.3.6" + dependencies: + "ansi-colors" "^4.1.1" + +"error-ex@^1.3.1": + "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" + "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "is-arrayish" "^0.2.1" + +"es-abstract@^1.18.0-next.2": + "integrity" "sha512-uFG1gyVX91tZIiDWNmPsL8XNpiCk/6tkB7MZphoSJflS4w+KgWyQ2gjCVDnsPxFAo9WjRXG3eqONNYdfbJjAtw==" + "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.7.tgz" + "version" "1.18.7" + dependencies: + "call-bind" "^1.0.2" + "es-to-primitive" "^1.2.1" + "function-bind" "^1.1.1" + "get-intrinsic" "^1.1.1" + "get-symbol-description" "^1.0.0" + "has" "^1.0.3" + "has-symbols" "^1.0.2" + "internal-slot" "^1.0.3" + "is-callable" "^1.2.4" + "is-negative-zero" "^2.0.1" + "is-regex" "^1.1.4" + "is-string" "^1.0.7" + "object-inspect" "^1.11.0" + "object-keys" "^1.1.1" + "object.assign" "^4.1.2" + "string.prototype.trimend" "^1.0.4" + "string.prototype.trimstart" "^1.0.4" + "unbox-primitive" "^1.0.1" + +"es-to-primitive@^1.2.1": + "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" + "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "is-callable" "^1.1.4" + "is-date-object" "^1.0.1" + "is-symbol" "^1.0.2" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-string-regexp@^1.0.5", "escape-string-regexp@1.0.5": + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@^2.0.0": + "integrity" "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + "version" "2.0.0" + +"escape-string-regexp@^4.0.0": + "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + "version" "4.0.0" + +"escodegen@^2.0.0": + "integrity" "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==" + "resolved" "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "esprima" "^4.0.1" + "estraverse" "^5.2.0" + "esutils" "^2.0.2" + "optionator" "^0.8.1" optionalDependencies: - source-map "~0.6.1" + "source-map" "~0.6.1" -eslint-config-prettier@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz" - integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== +"eslint-config-prettier@^7.2.0": + "integrity" "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==" + "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz" + "version" "7.2.0" -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== +"eslint-plugin-prettier@^4.2.1": + "integrity" "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==" + "resolved" "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" + "version" "4.2.1" dependencies: - prettier-linter-helpers "^1.0.0" + "prettier-linter-helpers" "^1.0.0" -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== +"eslint-scope@^5.1.1": + "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + "version" "5.1.1" dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" + "esrecurse" "^4.3.0" + "estraverse" "^4.1.1" -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== +"eslint-utils@^2.1.0": + "integrity" "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==" + "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + "version" "2.1.0" dependencies: - eslint-visitor-keys "^1.1.0" + "eslint-visitor-keys" "^1.1.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== +"eslint-utils@^3.0.0": + "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==" + "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + "version" "3.0.0" dependencies: - eslint-visitor-keys "^2.0.0" + "eslint-visitor-keys" "^2.0.0" + +"eslint-visitor-keys@^1.1.0": + "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + "version" "1.3.0" -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== +"eslint-visitor-keys@^1.3.0": + "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + "version" "1.3.0" -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== +"eslint-visitor-keys@^2.0.0": + "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + "version" "2.1.0" -eslint@^7.19.0: - version "7.32.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== +"eslint@*", "eslint@^5.0.0 || ^6.0.0 || ^7.0.0", "eslint@^7.19.0", "eslint@>=5", "eslint@>=7.0.0", "eslint@>=7.28.0": + "integrity" "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==" + "resolved" "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" + "version" "7.32.0" dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.3" "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + "ajv" "^6.10.0" + "chalk" "^4.0.0" + "cross-spawn" "^7.0.2" + "debug" "^4.0.1" + "doctrine" "^3.0.0" + "enquirer" "^2.3.5" + "escape-string-regexp" "^4.0.0" + "eslint-scope" "^5.1.1" + "eslint-utils" "^2.1.0" + "eslint-visitor-keys" "^2.0.0" + "espree" "^7.3.1" + "esquery" "^1.4.0" + "esutils" "^2.0.2" + "fast-deep-equal" "^3.1.3" + "file-entry-cache" "^6.0.1" + "functional-red-black-tree" "^1.0.1" + "glob-parent" "^5.1.2" + "globals" "^13.6.0" + "ignore" "^4.0.6" + "import-fresh" "^3.0.0" + "imurmurhash" "^0.1.4" + "is-glob" "^4.0.0" + "js-yaml" "^3.13.1" + "json-stable-stringify-without-jsonify" "^1.0.1" + "levn" "^0.4.1" + "lodash.merge" "^4.6.2" + "minimatch" "^3.0.4" + "natural-compare" "^1.4.0" + "optionator" "^0.9.1" + "progress" "^2.0.0" + "regexpp" "^3.1.0" + "semver" "^7.2.1" + "strip-ansi" "^6.0.0" + "strip-json-comments" "^3.1.0" + "table" "^6.0.9" + "text-table" "^0.2.0" + "v8-compile-cache" "^2.0.3" + +"espree@^7.3.0", "espree@^7.3.1": + "integrity" "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==" + "resolved" "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" + "version" "7.3.1" + dependencies: + "acorn" "^7.4.0" + "acorn-jsx" "^5.3.1" + "eslint-visitor-keys" "^1.3.0" + +"esprima@^4.0.0", "esprima@^4.0.1": + "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"esquery@^1.4.0": + "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==" + "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "estraverse" "^5.1.0" + +"esrecurse@^4.3.0": + "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" + "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "estraverse" "^5.2.0" + +"estraverse@^4.1.1": + "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + "version" "4.3.0" + +"estraverse@^5.1.0": + "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" + "version" "5.2.0" + +"estraverse@^5.2.0": + "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" + "version" "5.2.0" + +"esutils@^2.0.2": + "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + "version" "2.0.3" + +"execa@^5.0.0": + "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" + "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "cross-spawn" "^7.0.3" + "get-stream" "^6.0.0" + "human-signals" "^2.1.0" + "is-stream" "^2.0.0" + "merge-stream" "^2.0.0" + "npm-run-path" "^4.0.1" + "onetime" "^5.1.2" + "signal-exit" "^3.0.3" + "strip-final-newline" "^2.0.0" + +"exit@^0.1.2": + "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + "version" "0.1.2" + +"expand-tilde@^2.0.0", "expand-tilde@^2.0.2": + "integrity" "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=" + "resolved" "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "homedir-polyfill" "^1.0.1" + +"expect@^27.5.1": + "integrity" "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==" + "resolved" "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + "jest-get-type" "^27.5.1" + "jest-matcher-utils" "^27.5.1" + "jest-message-util" "^27.5.1" + +"external-editor@^3.0.3": + "integrity" "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==" + "resolved" "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "chardet" "^0.7.0" + "iconv-lite" "^0.4.24" + "tmp" "^0.0.33" + +"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fast-diff@^1.1.2": + "integrity" "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" + "version" "1.2.0" + +"fast-glob@^3.1.1": + "integrity" "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz" + "version" "3.2.7" dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" + "glob-parent" "^5.1.2" + "merge2" "^1.3.0" + "micromatch" "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +"fast-json-stable-stringify@^2.0.0", "fast-json-stable-stringify@2.x": + "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + "version" "2.1.0" -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +"fast-levenshtein@^2.0.6", "fast-levenshtein@~2.0.6": + "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + "version" "2.0.6" -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== +"fastq@^1.6.0": + "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" + "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" + "version" "1.13.0" dependencies: - reusify "^1.0.4" + "reusify" "^1.0.4" -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== +"fb-watchman@^2.0.0": + "integrity" "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==" + "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" + "version" "2.0.1" dependencies: - bser "2.1.1" + "bser" "2.1.1" -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= +"figures@^2.0.0": + "integrity" "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=" + "resolved" "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" + "version" "2.0.0" dependencies: - escape-string-regexp "^1.0.5" + "escape-string-regexp" "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +"file-entry-cache@^6.0.1": + "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==" + "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + "version" "6.0.1" dependencies: - flat-cache "^3.0.4" + "flat-cache" "^3.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" dependencies: - to-regex-range "^5.0.1" + "to-regex-range" "^5.0.1" -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== +"find-cache-dir@^2.0.0": + "integrity" "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==" + "resolved" "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + "version" "2.1.0" dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" + "commondir" "^1.0.1" + "make-dir" "^2.0.0" + "pkg-dir" "^3.0.0" -find-node-modules@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz" - integrity sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug== +"find-node-modules@^2.1.2": + "integrity" "sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug==" + "resolved" "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz" + "version" "2.1.2" dependencies: - findup-sync "^4.0.0" - merge "^2.1.0" + "findup-sync" "^4.0.0" + "merge" "^2.1.0" -find-root@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== +"find-root@1.1.0": + "integrity" "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + "resolved" "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" + "version" "1.1.0" -find-up@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-versions@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz" - integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== - dependencies: - semver-regex "^3.1.2" - -findup-sync@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz" - integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^4.0.2" - resolve-dir "^1.0.1" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flat@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz" - integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== - dependencies: - is-buffer "~2.0.3" - -flatted@^3.1.0: - version "3.2.2" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fs-extra@8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsevents@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stdin@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz" - integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -git-raw-commits@^2.0.0: - version "2.0.10" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz" - integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== - dependencies: - dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.0: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.1.3: - version "7.1.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.1.4, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.1.4" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.6.0, globals@^13.9.0: - version "13.11.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz" - integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== - dependencies: - type-fest "^0.20.2" - -globby@^11.0.3: - version "11.0.4" - resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graphql-js-tree@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/graphql-js-tree/-/graphql-js-tree-0.1.1.tgz" - integrity sha512-mPEqogLPmsoUzCi0WVddPFHBdCAQikwaYPe8kn6/+ft81ziei5qutP+cpquvFU5eBVHCFzx0PH5Khc9kutOkeQ== - dependencies: - graphql "^15.4.0" - -graphql-ws@^5.8.2: - version "5.8.2" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.8.2.tgz#800184b1addb20b3010dc06cb70877703a5fff20" - integrity sha512-hYo8kTGzxePFJtMGC7Y4cbypwifMphIJJ7n4TDcVUAfviRwQBnmZAbfZlC+XFwWDUaR7raEDQPxWctpccmE0JQ== - -graphql@*, graphql@^15.4.0: - version "15.6.0" - resolved "https://registry.npmjs.org/graphql/-/graphql-15.6.0.tgz" - integrity sha512-WJR872Zlc9hckiEPhXgyUftXH48jp2EjO5tgBBOyNMRJZ9fviL2mJBD6CAysk6N5S0r9BTs09Qk39nnJBkvOXQ== - -graphql@^16.5.0: - version "16.5.0" - resolved "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz" - integrity sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA== - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz" - integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== - dependencies: - lru-cache "^6.0.0" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== +"find-up@^2.0.0": + "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "locate-path" "^2.0.0" + +"find-up@^3.0.0", "find-up@3.0.0": + "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "locate-path" "^3.0.0" + +"find-up@^4.0.0", "find-up@^4.1.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-up@^5.0.0": + "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "locate-path" "^6.0.0" + "path-exists" "^4.0.0" + +"find-versions@^4.0.0": + "integrity" "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==" + "resolved" "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "semver-regex" "^3.1.2" + +"findup-sync@^4.0.0": + "integrity" "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==" + "resolved" "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "detect-file" "^1.0.0" + "is-glob" "^4.0.0" + "micromatch" "^4.0.2" + "resolve-dir" "^1.0.1" + +"flat-cache@^3.0.4": + "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==" + "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "flatted" "^3.1.0" + "rimraf" "^3.0.2" + +"flat@^4.1.0": + "integrity" "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==" + "resolved" "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "is-buffer" "~2.0.3" + +"flatted@^3.1.0": + "integrity" "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==" + "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz" + "version" "3.2.2" + +"form-data@^3.0.0": + "integrity" "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.8" + "mime-types" "^2.1.12" + +"fs-extra@8.1.0": + "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + "version" "8.1.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs.realpath@^1.0.0": + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"functional-red-black-tree@^1.0.1": + "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + "version" "1.0.1" + +"gensync@^1.0.0-beta.2": + "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + "version" "1.0.0-beta.2" + +"get-caller-file@^2.0.1", "get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1": + "integrity" "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" + "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "function-bind" "^1.1.1" + "has" "^1.0.3" + "has-symbols" "^1.0.1" + +"get-package-type@^0.1.0": + "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + "resolved" "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + "version" "0.1.0" + +"get-stdin@7.0.0": + "integrity" "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==" + "resolved" "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz" + "version" "7.0.0" + +"get-stream@^6.0.0": + "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + "version" "6.0.1" + +"get-symbol-description@^1.0.0": + "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" + "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.1.1" + +"git-raw-commits@^2.0.0": + "integrity" "sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==" + "resolved" "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz" + "version" "2.0.10" + dependencies: + "dargs" "^7.0.0" + "lodash" "^4.17.15" + "meow" "^8.0.0" + "split2" "^3.0.0" + "through2" "^4.0.0" + +"glob-parent@^5.1.2", "glob-parent@~5.1.0": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob@^7.1.1", "glob@^7.1.2", "glob@^7.1.3", "glob@^7.1.4", "glob@7.1.4": + "integrity" "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz" + "version" "7.1.4" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"glob@7.1.3": + "integrity" "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" + "version" "7.1.3" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"global-dirs@^0.1.1": + "integrity" "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=" + "resolved" "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "ini" "^1.3.4" + +"global-modules@^1.0.0": + "integrity" "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==" + "resolved" "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "global-prefix" "^1.0.1" + "is-windows" "^1.0.1" + "resolve-dir" "^1.0.0" + +"global-prefix@^1.0.1": + "integrity" "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=" + "resolved" "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "expand-tilde" "^2.0.2" + "homedir-polyfill" "^1.0.1" + "ini" "^1.3.4" + "is-windows" "^1.0.1" + "which" "^1.2.14" + +"globals@^11.1.0": + "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + "version" "11.12.0" + +"globals@^13.6.0": + "integrity" "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz" + "version" "13.11.0" + dependencies: + "type-fest" "^0.20.2" + +"globals@^13.9.0": + "integrity" "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz" + "version" "13.11.0" + dependencies: + "type-fest" "^0.20.2" + +"globby@^11.0.3": + "integrity" "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==" + "resolved" "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz" + "version" "11.0.4" + dependencies: + "array-union" "^2.1.0" + "dir-glob" "^3.0.1" + "fast-glob" "^3.1.1" + "ignore" "^5.1.4" + "merge2" "^1.3.0" + "slash" "^3.0.0" + +"graceful-fs@^4.1.2", "graceful-fs@^4.1.3", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.9": + "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + "version" "4.2.10" + +"graphql-js-tree@^0.1.1": + "integrity" "sha512-mPEqogLPmsoUzCi0WVddPFHBdCAQikwaYPe8kn6/+ft81ziei5qutP+cpquvFU5eBVHCFzx0PH5Khc9kutOkeQ==" + "resolved" "https://registry.npmjs.org/graphql-js-tree/-/graphql-js-tree-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "graphql" "^15.4.0" + +"graphql-ws@^5.8.2": + "integrity" "sha512-mL/SWGBwIT9Meq0NlfS55yXXTOeWPMbK7bZBEZhFu46bcGk1coTx2Sdtzxdk+9yHWngD+Fk1PZDWaAutQa9tpw==" + "resolved" "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.9.1.tgz" + "version" "5.9.1" + +"graphql@*", "graphql@^16.5.0", "graphql@>=0.11 <=16": + "integrity" "sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA==" + "resolved" "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz" + "version" "16.5.0" + +"graphql@^15.4.0": + "integrity" "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" + "resolved" "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" + "version" "15.8.0" + +"growl@1.10.5": + "integrity" "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + "resolved" "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" + "version" "1.10.5" + +"hard-rejection@^2.1.0": + "integrity" "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" + "resolved" "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" + "version" "2.1.0" + +"has-bigints@^1.0.1": + "integrity" "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" + "version" "1.0.1" + +"has-flag@^3.0.0": + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"has-symbols@^1.0.0", "has-symbols@^1.0.1", "has-symbols@^1.0.2": + "integrity" "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" + "version" "1.0.2" + +"has-tostringtag@^1.0.0": + "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" + "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has-symbols" "^1.0.2" + +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"he@1.2.0": + "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + "version" "1.2.0" + +"homedir-polyfill@^1.0.1": + "integrity" "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==" + "resolved" "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "parse-passwd" "^1.0.0" + +"hosted-git-info@^2.1.4": + "integrity" "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" + "version" "2.8.9" + +"hosted-git-info@^4.0.1": + "integrity" "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==" + "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "lru-cache" "^6.0.0" + +"html-encoding-sniffer@^2.0.1": + "integrity" "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==" + "resolved" "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "whatwg-encoding" "^1.0.5" + +"html-escaper@^2.0.0": + "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "resolved" "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + "version" "2.0.2" + +"http-proxy-agent@^4.0.1": + "integrity" "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==" + "resolved" "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" + "version" "4.0.1" dependencies: "@tootallnate/once" "1" - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -husky@^4.2.3: - version "4.3.8" - resolved "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz" - integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== - dependencies: - chalk "^4.0.0" - ci-info "^2.0.0" - compare-versions "^3.6.0" - cosmiconfig "^7.0.0" - find-versions "^4.0.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^5.0.0" - please-upgrade-node "^3.2.0" - slash "^3.0.0" - which-pm-runs "^1.0.0" - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.4, ignore@^5.1.8: - version "5.1.8" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.4: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inquirer@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@~2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-core-module@^2.2.0, is-core-module@^2.5.0: - version "2.7.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz" - integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= - dependencies: - text-extensions "^1.0.0" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-windows@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + "agent-base" "6" + "debug" "4" + +"https-proxy-agent@^5.0.0": + "integrity" "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==" + "resolved" "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "agent-base" "6" + "debug" "4" + +"human-signals@^2.1.0": + "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + "version" "2.1.0" + +"husky@^4.2.3": + "integrity" "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==" + "resolved" "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz" + "version" "4.3.8" + dependencies: + "chalk" "^4.0.0" + "ci-info" "^2.0.0" + "compare-versions" "^3.6.0" + "cosmiconfig" "^7.0.0" + "find-versions" "^4.0.0" + "opencollective-postinstall" "^2.0.2" + "pkg-dir" "^5.0.0" + "please-upgrade-node" "^3.2.0" + "slash" "^3.0.0" + "which-pm-runs" "^1.0.0" + +"iconv-lite@^0.4.24", "iconv-lite@0.4.24": + "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + "version" "0.4.24" + dependencies: + "safer-buffer" ">= 2.1.2 < 3" + +"ignore@^4.0.6": + "integrity" "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + "version" "4.0.6" + +"ignore@^5.1.4", "ignore@^5.1.8": + "integrity" "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" + "version" "5.1.8" + +"import-fresh@^2.0.0": + "integrity" "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "caller-path" "^2.0.0" + "resolve-from" "^3.0.0" + +"import-fresh@^3.0.0", "import-fresh@^3.2.1": + "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "parent-module" "^1.0.0" + "resolve-from" "^4.0.0" + +"import-local@^3.0.2": + "integrity" "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==" + "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "pkg-dir" "^4.2.0" + "resolve-cwd" "^3.0.0" + +"imurmurhash@^0.1.4": + "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + "version" "0.1.4" + +"indent-string@^3.0.0": + "integrity" "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" + "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz" + "version" "3.2.0" + +"indent-string@^4.0.0": + "integrity" "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + "version" "4.0.0" + +"inflight@^1.0.4": + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.3", "inherits@2": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"ini@^1.3.4": + "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + "version" "1.3.8" + +"inquirer@6.5.2": + "integrity" "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==" + "resolved" "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz" + "version" "6.5.2" + dependencies: + "ansi-escapes" "^3.2.0" + "chalk" "^2.4.2" + "cli-cursor" "^2.1.0" + "cli-width" "^2.0.0" + "external-editor" "^3.0.3" + "figures" "^2.0.0" + "lodash" "^4.17.12" + "mute-stream" "0.0.7" + "run-async" "^2.2.0" + "rxjs" "^6.4.0" + "string-width" "^2.1.0" + "strip-ansi" "^5.1.0" + "through" "^2.3.6" + +"internal-slot@^1.0.3": + "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==" + "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "get-intrinsic" "^1.1.0" + "has" "^1.0.3" + "side-channel" "^1.0.4" + +"is-arrayish@^0.2.1": + "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "version" "0.2.1" + +"is-bigint@^1.0.1": + "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" + "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has-bigints" "^1.0.1" + +"is-binary-path@~2.1.0": + "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" + "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "binary-extensions" "^2.0.0" + +"is-boolean-object@^1.1.0": + "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" + "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +"is-buffer@~2.0.3": + "integrity" "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" + "version" "2.0.5" + +"is-callable@^1.1.4", "is-callable@^1.2.4": + "integrity" "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + "version" "1.2.4" + +"is-core-module@^2.2.0", "is-core-module@^2.5.0": + "integrity" "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz" + "version" "2.7.0" + dependencies: + "has" "^1.0.3" + +"is-date-object@^1.0.1": + "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" + "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-directory@^0.3.1": + "integrity" "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + "resolved" "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + "version" "0.3.1" + +"is-extglob@^2.1.1": + "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-fullwidth-code-point@^2.0.0": + "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + "version" "2.0.0" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + +"is-generator-fn@^2.0.0": + "integrity" "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + "version" "2.1.0" + +"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@~4.0.1": + "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "is-extglob" "^2.1.1" + +"is-negative-zero@^2.0.1": + "integrity" "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" + "version" "2.0.1" + +"is-number-object@^1.0.4": + "integrity" "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==" + "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"is-obj@^1.0.0": + "integrity" "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + "version" "1.0.1" + +"is-plain-obj@^1.1.0": + "integrity" "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + "version" "1.1.0" + +"is-plain-object@^2.0.4": + "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" + "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + "version" "2.0.4" + dependencies: + "isobject" "^3.0.1" + +"is-potential-custom-element-name@^1.0.1": + "integrity" "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + "resolved" "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" + "version" "1.0.1" + +"is-regex@^1.1.4": + "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" + "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +"is-stream@^2.0.0": + "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + "version" "2.0.1" + +"is-string@^1.0.5", "is-string@^1.0.7": + "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" + "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + "version" "1.0.7" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-symbol@^1.0.2", "is-symbol@^1.0.3": + "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" + "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has-symbols" "^1.0.2" + +"is-text-path@^1.0.1": + "integrity" "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=" + "resolved" "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "text-extensions" "^1.0.0" + +"is-typedarray@^1.0.0": + "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + "version" "1.0.0" + +"is-utf8@^0.2.1": + "integrity" "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "resolved" "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + "version" "0.2.1" + +"is-windows@^1.0.1": + "integrity" "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "resolved" "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + "version" "1.0.2" + +"isexe@^2.0.0": + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"isobject@^3.0.1": + "integrity" "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + "version" "3.0.1" -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== +"istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0": + "integrity" "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" + "version" "3.2.0" + +"istanbul-lib-instrument@^5.0.4", "istanbul-lib-instrument@^5.1.0": + "integrity" "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==" + "resolved" "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz" + "version" "5.1.0" dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" + "istanbul-lib-coverage" "^3.2.0" + "semver" "^6.3.0" -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== +"istanbul-lib-report@^3.0.0": + "integrity" "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" + "istanbul-lib-coverage" "^3.0.0" + "make-dir" "^3.0.0" + "supports-color" "^7.1.0" -istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz" - integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== +"istanbul-lib-source-maps@^4.0.0": + "integrity" "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==" + "resolved" "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz" + "version" "4.0.0" dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" + "debug" "^4.1.1" + "istanbul-lib-coverage" "^3.0.0" + "source-map" "^0.6.1" -istanbul-reports@^3.1.3: - version "3.1.4" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== +"istanbul-reports@^3.1.3": + "integrity" "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==" + "resolved" "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz" + "version" "3.1.4" dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" + "html-escaper" "^2.0.0" + "istanbul-lib-report" "^3.0.0" -jest-changed-files@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz" - integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== +"jest-changed-files@^27.5.1": + "integrity" "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==" + "resolved" "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" - execa "^5.0.0" - throat "^6.0.1" + "execa" "^5.0.0" + "throat" "^6.0.1" -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz" - integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== +"jest-circus@^27.5.1": + "integrity" "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==" + "resolved" "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/environment" "^27.5.1" "@jest/test-result" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz" - integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== + "chalk" "^4.0.0" + "co" "^4.6.0" + "dedent" "^0.7.0" + "expect" "^27.5.1" + "is-generator-fn" "^2.0.0" + "jest-each" "^27.5.1" + "jest-matcher-utils" "^27.5.1" + "jest-message-util" "^27.5.1" + "jest-runtime" "^27.5.1" + "jest-snapshot" "^27.5.1" + "jest-util" "^27.5.1" + "pretty-format" "^27.5.1" + "slash" "^3.0.0" + "stack-utils" "^2.0.3" + "throat" "^6.0.1" + +"jest-cli@^27.5.1": + "integrity" "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==" + "resolved" "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/core" "^27.5.1" "@jest/test-result" "^27.5.1" "@jest/types" "^27.5.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz" - integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== + "chalk" "^4.0.0" + "exit" "^0.1.2" + "graceful-fs" "^4.2.9" + "import-local" "^3.0.2" + "jest-config" "^27.5.1" + "jest-util" "^27.5.1" + "jest-validate" "^27.5.1" + "prompts" "^2.0.1" + "yargs" "^16.2.0" + +"jest-config@^27.5.1": + "integrity" "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==" + "resolved" "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz" + "version" "27.5.1" dependencies: "@babel/core" "^7.8.0" "@jest/test-sequencer" "^27.5.1" "@jest/types" "^27.5.1" - babel-jest "^27.5.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^27.5.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz" - integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz" - integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== + "babel-jest" "^27.5.1" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "deepmerge" "^4.2.2" + "glob" "^7.1.1" + "graceful-fs" "^4.2.9" + "jest-circus" "^27.5.1" + "jest-environment-jsdom" "^27.5.1" + "jest-environment-node" "^27.5.1" + "jest-get-type" "^27.5.1" + "jest-jasmine2" "^27.5.1" + "jest-regex-util" "^27.5.1" + "jest-resolve" "^27.5.1" + "jest-runner" "^27.5.1" + "jest-util" "^27.5.1" + "jest-validate" "^27.5.1" + "micromatch" "^4.0.4" + "parse-json" "^5.2.0" + "pretty-format" "^27.5.1" + "slash" "^3.0.0" + "strip-json-comments" "^3.1.1" + +"jest-diff@^27.5.1": + "integrity" "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==" + "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "chalk" "^4.0.0" + "diff-sequences" "^27.5.1" + "jest-get-type" "^27.5.1" + "pretty-format" "^27.5.1" + +"jest-docblock@^27.5.1": + "integrity" "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==" + "resolved" "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "detect-newline" "^3.0.0" + +"jest-each@^27.5.1": + "integrity" "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==" + "resolved" "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" - chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" + "chalk" "^4.0.0" + "jest-get-type" "^27.5.1" + "jest-util" "^27.5.1" + "pretty-format" "^27.5.1" -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz" - integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== +"jest-environment-jsdom@^27.5.1": + "integrity" "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==" + "resolved" "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/environment" "^27.5.1" "@jest/fake-timers" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" + "jest-mock" "^27.5.1" + "jest-util" "^27.5.1" + "jsdom" "^16.6.0" -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz" - integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== +"jest-environment-node@^27.5.1": + "integrity" "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==" + "resolved" "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/environment" "^27.5.1" "@jest/fake-timers" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" + "jest-mock" "^27.5.1" + "jest-util" "^27.5.1" -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== +"jest-get-type@^27.5.1": + "integrity" "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" + "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" + "version" "27.5.1" -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== +"jest-haste-map@^27.5.1": + "integrity" "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==" + "resolved" "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" "@types/graceful-fs" "^4.1.2" "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" + "anymatch" "^3.0.3" + "fb-watchman" "^2.0.0" + "graceful-fs" "^4.2.9" + "jest-regex-util" "^27.5.1" + "jest-serializer" "^27.5.1" + "jest-util" "^27.5.1" + "jest-worker" "^27.5.1" + "micromatch" "^4.0.4" + "walker" "^1.0.7" optionalDependencies: - fsevents "^2.3.2" + "fsevents" "^2.3.2" -jest-jasmine2@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz" - integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== +"jest-jasmine2@^27.5.1": + "integrity" "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==" + "resolved" "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/environment" "^27.5.1" "@jest/source-map" "^27.5.1" "@jest/test-result" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz" - integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== - dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== + "chalk" "^4.0.0" + "co" "^4.6.0" + "expect" "^27.5.1" + "is-generator-fn" "^2.0.0" + "jest-each" "^27.5.1" + "jest-matcher-utils" "^27.5.1" + "jest-message-util" "^27.5.1" + "jest-runtime" "^27.5.1" + "jest-snapshot" "^27.5.1" + "jest-util" "^27.5.1" + "pretty-format" "^27.5.1" + "throat" "^6.0.1" + +"jest-leak-detector@^27.5.1": + "integrity" "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==" + "resolved" "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "jest-get-type" "^27.5.1" + "pretty-format" "^27.5.1" + +"jest-matcher-utils@^27.0.0", "jest-matcher-utils@^27.5.1": + "integrity" "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==" + "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "chalk" "^4.0.0" + "jest-diff" "^27.5.1" + "jest-get-type" "^27.5.1" + "pretty-format" "^27.5.1" + +"jest-message-util@^27.5.1": + "integrity" "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==" + "resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz" + "version" "27.5.1" dependencies: "@babel/code-frame" "^7.12.13" "@jest/types" "^27.5.1" "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== + "chalk" "^4.0.0" + "graceful-fs" "^4.2.9" + "micromatch" "^4.0.4" + "pretty-format" "^27.5.1" + "slash" "^3.0.0" + "stack-utils" "^2.0.3" + +"jest-mock@^27.5.1": + "integrity" "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==" + "resolved" "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" "@types/node" "*" -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== +"jest-pnp-resolver@^1.2.2": + "integrity" "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + "resolved" "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" + "version" "1.2.2" -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== +"jest-regex-util@^27.5.1": + "integrity" "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" + "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz" + "version" "27.5.1" -jest-resolve-dependencies@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz" - integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== +"jest-resolve-dependencies@^27.5.1": + "integrity" "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==" + "resolved" "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" - jest-regex-util "^27.5.1" - jest-snapshot "^27.5.1" + "jest-regex-util" "^27.5.1" + "jest-snapshot" "^27.5.1" -jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz" - integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== +"jest-resolve@*", "jest-resolve@^27.5.1": + "integrity" "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==" + "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz" - integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== + "chalk" "^4.0.0" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^27.5.1" + "jest-pnp-resolver" "^1.2.2" + "jest-util" "^27.5.1" + "jest-validate" "^27.5.1" + "resolve" "^1.20.0" + "resolve.exports" "^1.1.0" + "slash" "^3.0.0" + +"jest-runner@^27.5.1": + "integrity" "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==" + "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/console" "^27.5.1" "@jest/environment" "^27.5.1" @@ -3821,26 +3832,26 @@ jest-runner@^27.5.1: "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz" - integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + "chalk" "^4.0.0" + "emittery" "^0.8.1" + "graceful-fs" "^4.2.9" + "jest-docblock" "^27.5.1" + "jest-environment-jsdom" "^27.5.1" + "jest-environment-node" "^27.5.1" + "jest-haste-map" "^27.5.1" + "jest-leak-detector" "^27.5.1" + "jest-message-util" "^27.5.1" + "jest-resolve" "^27.5.1" + "jest-runtime" "^27.5.1" + "jest-util" "^27.5.1" + "jest-worker" "^27.5.1" + "source-map-support" "^0.5.6" + "throat" "^6.0.1" + +"jest-runtime@^27.5.1": + "integrity" "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==" + "resolved" "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/environment" "^27.5.1" "@jest/fake-timers" "^27.5.1" @@ -3849,34 +3860,34 @@ jest-runtime@^27.5.1: "@jest/test-result" "^27.5.1" "@jest/transform" "^27.5.1" "@jest/types" "^27.5.1" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + "chalk" "^4.0.0" + "cjs-module-lexer" "^1.0.0" + "collect-v8-coverage" "^1.0.0" + "execa" "^5.0.0" + "glob" "^7.1.3" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^27.5.1" + "jest-message-util" "^27.5.1" + "jest-mock" "^27.5.1" + "jest-regex-util" "^27.5.1" + "jest-resolve" "^27.5.1" + "jest-snapshot" "^27.5.1" + "jest-util" "^27.5.1" + "slash" "^3.0.0" + "strip-bom" "^4.0.0" + +"jest-serializer@^27.5.1": + "integrity" "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==" + "resolved" "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz" + "version" "27.5.1" dependencies: "@types/node" "*" - graceful-fs "^4.2.9" + "graceful-fs" "^4.2.9" -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz" - integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== +"jest-snapshot@^27.5.1": + "integrity" "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==" + "resolved" "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz" + "version" "27.5.1" dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" @@ -3887,2093 +3898,2232 @@ jest-snapshot@^27.5.1: "@jest/types" "^27.5.1" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.5.1" - graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" - -jest-util@^27.0.0, jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== + "babel-preset-current-node-syntax" "^1.0.0" + "chalk" "^4.0.0" + "expect" "^27.5.1" + "graceful-fs" "^4.2.9" + "jest-diff" "^27.5.1" + "jest-get-type" "^27.5.1" + "jest-haste-map" "^27.5.1" + "jest-matcher-utils" "^27.5.1" + "jest-message-util" "^27.5.1" + "jest-util" "^27.5.1" + "natural-compare" "^1.4.0" + "pretty-format" "^27.5.1" + "semver" "^7.3.2" + +"jest-util@^27.0.0", "jest-util@^27.5.1": + "integrity" "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==" + "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "graceful-fs" "^4.2.9" + "picomatch" "^2.2.3" -jest-validate@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz" - integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== +"jest-validate@^27.5.1": + "integrity" "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==" + "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/types" "^27.5.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.5.1" - leven "^3.1.0" - pretty-format "^27.5.1" + "camelcase" "^6.2.0" + "chalk" "^4.0.0" + "jest-get-type" "^27.5.1" + "leven" "^3.1.0" + "pretty-format" "^27.5.1" -jest-watcher@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz" - integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== +"jest-watcher@^27.5.1": + "integrity" "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==" + "resolved" "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/test-result" "^27.5.1" "@jest/types" "^27.5.1" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.5.1" - string-length "^4.0.1" + "ansi-escapes" "^4.2.1" + "chalk" "^4.0.0" + "jest-util" "^27.5.1" + "string-length" "^4.0.1" -jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== +"jest-worker@^27.5.1": + "integrity" "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==" + "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + "version" "27.5.1" dependencies: "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" + "merge-stream" "^2.0.0" + "supports-color" "^8.0.0" -jest@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz" - integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== +"jest@^27.0.0", "jest@^27.5.1": + "integrity" "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==" + "resolved" "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz" + "version" "27.5.1" dependencies: "@jest/core" "^27.5.1" - import-local "^3.0.2" - jest-cli "^27.5.1" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@3.13.1: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.3.0.tgz" - integrity sha512-TYfxx36xfl52Rf1LU9HyWSLGPdYLL+SQ8/E/0yVyKG8wCCDaSrhPap0vEdlsZWRaS6tnKKLPGiEJGiREVC8kxQ== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json5@2.x, json5@^2.1.2: - version "2.2.0" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + "import-local" "^3.0.2" + "jest-cli" "^27.5.1" + +"js-tokens@^4.0.0": + "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + "version" "4.0.0" + +"js-yaml@^3.13.1": + "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + "version" "3.14.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"js-yaml@3.13.1": + "integrity" "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" + "version" "3.13.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"jsdom@^16.6.0": + "integrity" "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==" + "resolved" "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" + "version" "16.7.0" + dependencies: + "abab" "^2.0.5" + "acorn" "^8.2.4" + "acorn-globals" "^6.0.0" + "cssom" "^0.4.4" + "cssstyle" "^2.3.0" + "data-urls" "^2.0.0" + "decimal.js" "^10.2.1" + "domexception" "^2.0.1" + "escodegen" "^2.0.0" + "form-data" "^3.0.0" + "html-encoding-sniffer" "^2.0.1" + "http-proxy-agent" "^4.0.1" + "https-proxy-agent" "^5.0.0" + "is-potential-custom-element-name" "^1.0.1" + "nwsapi" "^2.2.0" + "parse5" "6.0.1" + "saxes" "^5.0.1" + "symbol-tree" "^3.2.4" + "tough-cookie" "^4.0.0" + "w3c-hr-time" "^1.0.2" + "w3c-xmlserializer" "^2.0.0" + "webidl-conversions" "^6.1.0" + "whatwg-encoding" "^1.0.5" + "whatwg-mimetype" "^2.3.0" + "whatwg-url" "^8.5.0" + "ws" "^7.4.6" + "xml-name-validator" "^3.0.0" + +"jsesc@^2.5.1": + "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + "version" "2.5.2" + +"jsesc@~0.5.0": + "integrity" "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + "version" "0.5.0" + +"json-parse-better-errors@^1.0.1": + "integrity" "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "resolved" "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + "version" "1.0.2" + +"json-parse-even-better-errors@^2.3.0": + "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + "version" "2.3.1" + +"json-schema-traverse@^0.4.1": + "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + "version" "0.4.1" + +"json-schema-traverse@^1.0.0": + "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + "version" "1.0.0" + +"json-schema@^0.3.0": + "integrity" "sha512-TYfxx36xfl52Rf1LU9HyWSLGPdYLL+SQ8/E/0yVyKG8wCCDaSrhPap0vEdlsZWRaS6tnKKLPGiEJGiREVC8kxQ==" + "resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.3.0.tgz" + "version" "0.3.0" + +"json-stable-stringify-without-jsonify@^1.0.1": + "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + "version" "1.0.1" + +"json5@^2.1.2", "json5@2.x": + "integrity" "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "minimist" "^1.2.5" + +"jsonfile@^4.0.0": + "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + "version" "4.0.0" optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - -kind-of@^6.0.2, kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.map@^4.5.1: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= - -lodash.memoize@4.x: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= - -lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.2.1, lodash@^4.7.0: - version "4.17.15" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lodash@^4.17.20: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - -longest@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz" - integrity sha1-eB4YMpaqlPbU2RbcM10NF676I/g= - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@1.x, make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz" - integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -meow@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - -meow@^8.0.0: - version "8.1.2" - resolved "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + "graceful-fs" "^4.1.6" + +"jsonparse@^1.2.0": + "integrity" "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + "resolved" "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" + "version" "1.3.1" + +"JSONStream@^1.0.4": + "integrity" "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==" + "resolved" "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + "version" "1.3.5" + dependencies: + "jsonparse" "^1.2.0" + "through" ">=2.2.7 <3" + +"kind-of@^6.0.2", "kind-of@^6.0.3": + "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + "version" "6.0.3" + +"kleur@^3.0.3": + "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + "version" "3.0.3" + +"leven@^3.1.0": + "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + "version" "3.1.0" + +"levn@^0.4.1": + "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==" + "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "prelude-ls" "^1.2.1" + "type-check" "~0.4.0" + +"levn@~0.3.0": + "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" + "resolved" "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "prelude-ls" "~1.1.2" + "type-check" "~0.3.2" + +"lines-and-columns@^1.1.6": + "integrity" "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" + "version" "1.1.6" + +"load-json-file@^4.0.0": + "integrity" "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=" + "resolved" "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "graceful-fs" "^4.1.2" + "parse-json" "^4.0.0" + "pify" "^3.0.0" + "strip-bom" "^3.0.0" + +"locate-path@^2.0.0": + "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "p-locate" "^2.0.0" + "path-exists" "^3.0.0" + +"locate-path@^3.0.0": + "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-locate" "^3.0.0" + "path-exists" "^3.0.0" + +"locate-path@^5.0.0": + "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-locate" "^4.1.0" + +"locate-path@^6.0.0": + "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "p-locate" "^5.0.0" + +"lodash.clonedeep@^4.5.0": + "integrity" "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + "resolved" "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + "version" "4.5.0" + +"lodash.debounce@^4.0.8": + "integrity" "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + "version" "4.0.8" + +"lodash.map@^4.5.1": + "integrity" "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" + "resolved" "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz" + "version" "4.6.0" + +"lodash.memoize@4.x": + "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + "version" "4.1.2" + +"lodash.merge@^4.6.2": + "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + "version" "4.6.2" + +"lodash.truncate@^4.4.2": + "integrity" "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" + "resolved" "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" + "version" "4.4.2" + +"lodash@^4.17.11", "lodash@^4.17.12", "lodash@^4.17.15", "lodash@^4.2.1", "lodash@^4.7.0", "lodash@4.17.15": + "integrity" "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz" + "version" "4.17.15" + +"lodash@^4.17.20": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"log-symbols@3.0.0": + "integrity" "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "chalk" "^2.4.2" + +"longest@^2.0.1": + "integrity" "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=" + "resolved" "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz" + "version" "2.0.1" + +"loud-rejection@^1.0.0": + "integrity" "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" + "resolved" "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" + "version" "1.6.0" + dependencies: + "currently-unhandled" "^0.4.1" + "signal-exit" "^3.0.0" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" + +"make-dir@^2.0.0", "make-dir@^2.1.0": + "integrity" "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "pify" "^4.0.1" + "semver" "^5.6.0" + +"make-dir@^3.0.0": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "semver" "^6.0.0" + +"make-error@^1.1.1", "make-error@1.x": + "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + "version" "1.3.6" + +"makeerror@1.0.x": + "integrity" "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=" + "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" + "version" "1.0.11" + dependencies: + "tmpl" "1.0.x" + +"map-obj@^1.0.0": + "integrity" "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + "version" "1.0.1" + +"map-obj@^2.0.0": + "integrity" "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=" + "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz" + "version" "2.0.0" + +"map-obj@^4.0.0": + "integrity" "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" + "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" + "version" "4.3.0" + +"meow@^8.0.0": + "integrity" "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==" + "resolved" "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz" + "version" "8.1.2" dependencies: "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -merge@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz" - integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== - -micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.49.0: - version "1.49.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz" - integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== - -mime-types@^2.1.12: - version "2.1.32" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz" - integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== - dependencies: - mime-db "1.49.0" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@3.0.4, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz" - integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@1.2.5, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mkdirp@0.5.5, mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mocha@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz" - integrity sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - chokidar "3.3.0" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "3.0.0" - minimatch "3.0.4" - mkdirp "0.5.5" - ms "2.1.1" - node-environment-flags "1.0.6" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.2" - yargs-parser "13.1.2" - yargs-unparser "1.6.0" - -ms@2.1.1, ms@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -nanocolors@^0.2.12: - version "0.2.12" - resolved "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz" - integrity sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -node-environment-flags@1.0.6, node-environment-flags@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz" - integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-releases@^1.1.76: - version "1.1.76" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz" - integrity sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA== - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.0.3: - version "2.1.2" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" + "camelcase-keys" "^6.2.2" + "decamelize-keys" "^1.1.0" + "hard-rejection" "^2.1.0" + "minimist-options" "4.1.0" + "normalize-package-data" "^3.0.0" + "read-pkg-up" "^7.0.1" + "redent" "^3.0.0" + "trim-newlines" "^3.0.0" + "type-fest" "^0.18.0" + "yargs-parser" "^20.2.3" + +"meow@5.0.0": + "integrity" "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==" + "resolved" "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "camelcase-keys" "^4.0.0" + "decamelize-keys" "^1.0.0" + "loud-rejection" "^1.0.0" + "minimist-options" "^3.0.1" + "normalize-package-data" "^2.3.4" + "read-pkg-up" "^3.0.0" + "redent" "^2.0.0" + "trim-newlines" "^2.0.0" + "yargs-parser" "^10.0.0" + +"merge-stream@^2.0.0": + "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + "version" "2.0.0" + +"merge@^2.1.0": + "integrity" "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" + "resolved" "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz" + "version" "2.1.1" + +"merge2@^1.3.0": + "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + "version" "1.4.1" + +"micromatch@^4.0.2", "micromatch@^4.0.4": + "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "braces" "^3.0.1" + "picomatch" "^2.2.3" + +"mime-db@1.49.0": + "integrity" "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz" + "version" "1.49.0" + +"mime-types@^2.1.12": + "integrity" "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz" + "version" "2.1.32" + dependencies: + "mime-db" "1.49.0" + +"mimic-fn@^1.0.0": + "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + "version" "1.2.0" + +"mimic-fn@^2.1.0": + "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + "version" "2.1.0" + +"min-indent@^1.0.0": + "integrity" "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + "resolved" "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" + "version" "1.0.1" + +"minimatch@^3.0.4", "minimatch@3.0.4": + "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "brace-expansion" "^1.1.7" + +"minimist-options@^3.0.1": + "integrity" "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==" + "resolved" "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "arrify" "^1.0.1" + "is-plain-obj" "^1.1.0" + +"minimist-options@4.1.0": + "integrity" "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==" + "resolved" "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "arrify" "^1.0.1" + "is-plain-obj" "^1.1.0" + "kind-of" "^6.0.3" + +"minimist@^1.2.5", "minimist@1.2.5": + "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + "version" "1.2.5" + +"mkdirp@^0.5.1", "mkdirp@0.5.5": + "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + "version" "0.5.5" + dependencies: + "minimist" "^1.2.5" + +"mocha@^7.1.0": + "integrity" "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==" + "resolved" "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "ansi-colors" "3.2.3" + "browser-stdout" "1.3.1" + "chokidar" "3.3.0" + "debug" "3.2.6" + "diff" "3.5.0" + "escape-string-regexp" "1.0.5" + "find-up" "3.0.0" + "glob" "7.1.3" + "growl" "1.10.5" + "he" "1.2.0" + "js-yaml" "3.13.1" + "log-symbols" "3.0.0" + "minimatch" "3.0.4" + "mkdirp" "0.5.5" + "ms" "2.1.1" + "node-environment-flags" "1.0.6" + "object.assign" "4.1.0" + "strip-json-comments" "2.0.1" + "supports-color" "6.0.0" + "which" "1.3.1" + "wide-align" "1.1.3" + "yargs" "13.3.2" + "yargs-parser" "13.1.2" + "yargs-unparser" "1.6.0" + +"ms@^2.1.1", "ms@2.1.1": + "integrity" "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" + "version" "2.1.1" + +"ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"mute-stream@0.0.7": + "integrity" "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + "resolved" "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" + "version" "0.0.7" + +"nanocolors@^0.2.12": + "integrity" "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==" + "resolved" "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz" + "version" "0.2.12" + +"natural-compare@^1.4.0": + "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + "version" "1.4.0" + +"node-environment-flags@^1.0.5", "node-environment-flags@1.0.6": + "integrity" "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==" + "resolved" "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "object.getownpropertydescriptors" "^2.0.3" + "semver" "^5.7.0" + +"node-fetch@2.6.1": + "integrity" "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" + "version" "2.6.1" + +"node-int64@^0.4.0": + "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + "version" "0.4.0" + +"node-releases@^1.1.76": + "integrity" "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz" + "version" "1.1.76" + +"normalize-package-data@^2.3.2", "normalize-package-data@^2.3.4": + "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" + "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "hosted-git-info" "^2.1.4" + "resolve" "^1.10.0" + "semver" "2 || 3 || 4 || 5" + "validate-npm-package-license" "^3.0.1" + +"normalize-package-data@^2.5.0": + "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" + "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "hosted-git-info" "^2.1.4" + "resolve" "^1.10.0" + "semver" "2 || 3 || 4 || 5" + "validate-npm-package-license" "^3.0.1" + +"normalize-package-data@^3.0.0": + "integrity" "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==" + "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "hosted-git-info" "^4.0.1" + "is-core-module" "^2.5.0" + "semver" "^7.3.4" + "validate-npm-package-license" "^3.0.1" + +"normalize-path@^3.0.0", "normalize-path@~3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"npm-run-path@^4.0.1": + "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "path-key" "^3.0.0" + +"nwsapi@^2.2.0": + "integrity" "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + "resolved" "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" + "version" "2.2.0" + +"object-inspect@^1.11.0", "object-inspect@^1.9.0": + "integrity" "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" + "version" "1.11.0" + +"object-keys@^1.0.11", "object-keys@^1.0.12", "object-keys@^1.1.1": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"object.assign@^4.1.0", "object.assign@^4.1.2": + "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" + "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "call-bind" "^1.0.0" + "define-properties" "^1.1.3" + "has-symbols" "^1.0.1" + "object-keys" "^1.1.1" + +"object.assign@4.1.0": + "integrity" "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==" + "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "define-properties" "^1.1.2" + "function-bind" "^1.1.1" + "has-symbols" "^1.0.0" + "object-keys" "^1.0.11" + +"object.getownpropertydescriptors@^2.0.3": + "integrity" "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==" + "resolved" "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "es-abstract" "^1.18.0-next.2" + +"once@^1.3.0": + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"onetime@^2.0.0": + "integrity" "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "mimic-fn" "^1.0.0" + +"onetime@^5.1.2": + "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "mimic-fn" "^2.1.0" + +"opencollective-postinstall@^2.0.2": + "integrity" "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" + "resolved" "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" + "version" "2.0.3" + +"optionator@^0.8.1": + "integrity" "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==" + "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + "version" "0.8.3" + dependencies: + "deep-is" "~0.1.3" + "fast-levenshtein" "~2.0.6" + "levn" "~0.3.0" + "prelude-ls" "~1.1.2" + "type-check" "~0.3.2" + "word-wrap" "~1.2.3" + +"optionator@^0.9.1": + "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==" + "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + "version" "0.9.1" + dependencies: + "deep-is" "^0.1.3" + "fast-levenshtein" "^2.0.6" + "levn" "^0.4.1" + "prelude-ls" "^1.2.1" + "type-check" "^0.4.0" + "word-wrap" "^1.2.3" + +"os-tmpdir@~1.0.2": + "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "version" "1.0.2" + +"p-limit@^1.1.0": + "integrity" "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "p-try" "^1.0.0" + +"p-limit@^2.0.0", "p-limit@^2.2.0": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "p-try" "^2.0.0" + +"p-limit@^3.0.2": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "yocto-queue" "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= +"p-locate@^2.0.0": + "integrity" "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + "version" "2.0.0" dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + "p-limit" "^1.1.0" + +"p-locate@^3.0.0": + "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + "version" "3.0.0" dependencies: - p-limit "^2.0.0" + "p-limit" "^2.0.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== +"p-locate@^4.1.0": + "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + "version" "4.1.0" dependencies: - p-limit "^2.2.0" + "p-limit" "^2.2.0" -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== +"p-locate@^5.0.0": + "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + "version" "5.0.0" dependencies: - p-limit "^3.0.2" + "p-limit" "^3.0.2" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= +"p-try@^1.0.0": + "integrity" "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + "version" "1.0.0" -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== +"parent-module@^1.0.0": + "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" + "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + "version" "1.0.1" dependencies: - callsites "^3.0.0" + "callsites" "^3.0.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= +"parse-json@^4.0.0": + "integrity" "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + "version" "4.0.0" dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" + "error-ex" "^1.3.1" + "json-parse-better-errors" "^1.0.1" -parse-json@^5.0.0, parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== +"parse-json@^5.0.0": + "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + "version" "5.2.0" dependencies: "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picomatch@^2.0.4, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.0, pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" - -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -pretty-format@^27.0.0, pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prompts@^2.0.1: - version "2.4.1" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz" - integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -psl@^1.1.33: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz" - integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + "error-ex" "^1.3.1" + "json-parse-even-better-errors" "^2.3.0" + "lines-and-columns" "^1.1.6" + +"parse-json@^5.2.0": + "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "@babel/code-frame" "^7.0.0" + "error-ex" "^1.3.1" + "json-parse-even-better-errors" "^2.3.0" + "lines-and-columns" "^1.1.6" + +"parse-passwd@^1.0.0": + "integrity" "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "resolved" "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + "version" "1.0.0" + +"parse5@6.0.1": + "integrity" "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "resolved" "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + "version" "6.0.1" + +"path-exists@^3.0.0": + "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + "version" "3.0.0" + +"path-exists@^4.0.0": + "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + "version" "4.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-key@^3.0.0", "path-key@^3.1.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + +"path-parse@^1.0.6": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"path-type@^3.0.0": + "integrity" "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "pify" "^3.0.0" + +"path-type@^4.0.0": + "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + "version" "4.0.0" + +"picomatch@^2.0.4", "picomatch@^2.2.3": + "integrity" "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" + "version" "2.3.0" + +"pify@^3.0.0": + "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + "version" "3.0.0" + +"pify@^4.0.1": + "integrity" "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "resolved" "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + "version" "4.0.1" + +"pirates@^4.0.0", "pirates@^4.0.4": + "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + "version" "4.0.5" + +"pkg-dir@^3.0.0": + "integrity" "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "find-up" "^3.0.0" + +"pkg-dir@^4.2.0": + "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "find-up" "^4.0.0" + +"pkg-dir@^5.0.0": + "integrity" "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "find-up" "^5.0.0" + +"please-upgrade-node@^3.2.0": + "integrity" "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==" + "resolved" "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "semver-compare" "^1.0.0" + +"prelude-ls@^1.2.1": + "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + "version" "1.2.1" + +"prelude-ls@~1.1.2": + "integrity" "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + "version" "1.1.2" + +"prettier-linter-helpers@^1.0.0": + "integrity" "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==" + "resolved" "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "fast-diff" "^1.1.2" + +"prettier@^2.7.1", "prettier@>=2.0.0": + "integrity" "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==" + "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz" + "version" "2.7.1" + +"pretty-format@^27.0.0", "pretty-format@^27.5.1": + "integrity" "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==" + "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "ansi-regex" "^5.0.1" + "ansi-styles" "^5.0.0" + "react-is" "^17.0.1" + +"progress@^2.0.0": + "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + "version" "2.0.3" + +"prompts@^2.0.1": + "integrity" "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==" + "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz" + "version" "2.4.1" + dependencies: + "kleur" "^3.0.3" + "sisteransi" "^1.0.5" + +"psl@^1.1.33": + "integrity" "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "resolved" "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + "version" "1.8.0" + +"punycode@^2.1.0", "punycode@^2.1.1": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"q@^1.5.1": + "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "resolved" "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + "version" "1.5.1" + +"queue-microtask@^1.2.2": + "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + "version" "1.2.3" + +"quick-lru@^1.0.0": + "integrity" "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=" + "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz" + "version" "1.1.0" + +"quick-lru@^4.0.1": + "integrity" "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" + "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" + "version" "4.0.1" + +"react-is@^17.0.1": + "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + "version" "17.0.2" + +"read-pkg-up@^3.0.0": + "integrity" "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=" + "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "find-up" "^2.0.0" + "read-pkg" "^3.0.0" + +"read-pkg-up@^7.0.1": + "integrity" "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==" + "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "find-up" "^4.1.0" + "read-pkg" "^5.2.0" + "type-fest" "^0.8.1" + +"read-pkg@^3.0.0": + "integrity" "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=" + "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "load-json-file" "^4.0.0" + "normalize-package-data" "^2.3.2" + "path-type" "^3.0.0" + +"read-pkg@^5.2.0": + "integrity" "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==" + "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" + "version" "5.2.0" dependencies: "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@3, readable-stream@^3.0.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz" - integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== - dependencies: - picomatch "^2.0.4" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz" - integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -regenerate-unicode-properties@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz" - integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz" - integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + "normalize-package-data" "^2.5.0" + "parse-json" "^5.0.0" + "type-fest" "^0.6.0" + +"readable-stream@^3.0.0", "readable-stream@3": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readdirp@~3.2.0": + "integrity" "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==" + "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "picomatch" "^2.0.4" + +"redent@^2.0.0": + "integrity" "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=" + "resolved" "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "indent-string" "^3.0.0" + "strip-indent" "^2.0.0" + +"redent@^3.0.0": + "integrity" "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==" + "resolved" "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "indent-string" "^4.0.0" + "strip-indent" "^3.0.0" + +"regenerate-unicode-properties@^9.0.0": + "integrity" "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==" + "resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz" + "version" "9.0.0" + dependencies: + "regenerate" "^1.4.2" + +"regenerate@^1.4.2": + "integrity" "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "resolved" "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + "version" "1.4.2" + +"regenerator-runtime@^0.10.5": + "integrity" "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz" + "version" "0.10.5" + +"regenerator-runtime@^0.11.0": + "integrity" "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" + "version" "0.11.1" + +"regenerator-runtime@^0.13.4": + "integrity" "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + "version" "0.13.9" + +"regenerator-transform@^0.14.2": + "integrity" "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==" + "resolved" "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" + "version" "0.14.5" dependencies: "@babel/runtime" "^7.8.4" -regexpp@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^4.7.1: - version "4.8.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz" - integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^9.0.0" - regjsgen "^0.5.2" - regjsparser "^0.7.0" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz" - integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== - dependencies: - jsesc "~0.5.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@5.0.0, resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-global@1.0.0, resolve-global@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz" - integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== - dependencies: - global-dirs "^0.1.1" - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@>=1.9.0, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^2.5.2: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" +"regexpp@^3.1.0": + "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + "resolved" "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + "version" "3.2.0" + +"regexpu-core@^4.7.1": + "integrity" "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==" + "resolved" "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz" + "version" "4.8.0" + dependencies: + "regenerate" "^1.4.2" + "regenerate-unicode-properties" "^9.0.0" + "regjsgen" "^0.5.2" + "regjsparser" "^0.7.0" + "unicode-match-property-ecmascript" "^2.0.0" + "unicode-match-property-value-ecmascript" "^2.0.0" + +"regjsgen@^0.5.2": + "integrity" "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + "resolved" "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" + "version" "0.5.2" + +"regjsparser@^0.7.0": + "integrity" "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==" + "resolved" "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz" + "version" "0.7.0" + dependencies: + "jsesc" "~0.5.0" + +"require-directory@^2.1.1": + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-from-string@^2.0.2": + "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + "version" "2.0.2" + +"require-main-filename@^2.0.0": + "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + "version" "2.0.0" + +"resolve-cwd@^3.0.0": + "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" + "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "resolve-from" "^5.0.0" + +"resolve-dir@^1.0.0", "resolve-dir@^1.0.1": + "integrity" "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=" + "resolved" "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "expand-tilde" "^2.0.0" + "global-modules" "^1.0.0" + +"resolve-from@^3.0.0": + "integrity" "sha1-six699nWiBvItuZTM17rywoYh0g=" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + "version" "3.0.0" + +"resolve-from@^4.0.0": + "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + "version" "4.0.0" + +"resolve-from@^5.0.0", "resolve-from@5.0.0": + "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + "version" "5.0.0" + +"resolve-global@^1.0.0", "resolve-global@1.0.0": + "integrity" "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==" + "resolved" "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "global-dirs" "^0.1.1" + +"resolve.exports@^1.1.0": + "integrity" "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" + "resolved" "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" + "version" "1.1.0" + +"resolve@^1.10.0", "resolve@^1.14.2", "resolve@^1.20.0", "resolve@>=1.9.0": + "integrity" "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" + "version" "1.20.0" + dependencies: + "is-core-module" "^2.2.0" + "path-parse" "^1.0.6" + +"restore-cursor@^2.0.0": + "integrity" "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" + "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "onetime" "^2.0.0" + "signal-exit" "^3.0.2" + +"reusify@^1.0.4": + "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + "version" "1.0.4" + +"rimraf@^2.5.2": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" + +"rimraf@^3.0.0": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "glob" "^7.1.3" -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +"rimraf@^3.0.2": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "glob" "^7.1.3" -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" +"run-async@^2.2.0": + "integrity" "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + "resolved" "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + "version" "2.4.1" -rxjs@^6.4.0: - version "6.6.7" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== +"run-parallel@^1.1.9": + "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" + "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + "version" "1.2.0" dependencies: - tslib "^1.9.0" + "queue-microtask" "^1.2.2" -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +"rxjs@^6.4.0": + "integrity" "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==" + "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" + "version" "6.6.7" + dependencies: + "tslib" "^1.9.0" + +"safe-buffer@~5.1.1": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +"safe-buffer@~5.2.0": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" "safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-regex@^3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.3.tgz" - integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ== - -"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@6.3.0, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@7.x, semver@^7.2.1, semver@^7.3.4, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.2: - version "7.3.7" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -source-map-support@^0.5.16, source-map-support@^0.5.6: - version "0.5.20" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.10" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz" - integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== - -split2@^3.0.0: - version "3.2.2" - resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" + "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" + +"saxes@^5.0.1": + "integrity" "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==" + "resolved" "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "xmlchars" "^2.2.0" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== +"semver-compare@^1.0.0": + "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" + "version" "1.0.0" + +"semver-regex@^3.1.2": + "integrity" "sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==" + "resolved" "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.3.tgz" + "version" "3.1.3" + +"semver@^5.6.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^5.7.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^6.0.0", "semver@^6.1.1", "semver@^6.1.2", "semver@^6.3.0", "semver@6.3.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.2.1": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.2": + "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + "version" "7.3.7" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.4": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.5": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"semver@2 || 3 || 4 || 5": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@7.0.0": + "integrity" "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + "version" "7.0.0" + +"semver@7.x": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"set-blocking@^2.0.0": + "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" + +"shallow-clone@^3.0.0": + "integrity" "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==" + "resolved" "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "kind-of" "^6.0.2" + +"shebang-command@^2.0.0": + "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "shebang-regex" "^3.0.0" + +"shebang-regex@^3.0.0": + "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + "version" "3.0.0" + +"side-channel@^1.0.4": + "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" + "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.0" + "get-intrinsic" "^1.0.2" + "object-inspect" "^1.9.0" + +"signal-exit@^3.0.0", "signal-exit@^3.0.2", "signal-exit@^3.0.3": + "integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + "version" "3.0.7" + +"sisteransi@^1.0.5": + "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + "version" "1.0.5" + +"slash@^3.0.0": + "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + "version" "3.0.0" + +"slice-ansi@^4.0.0": + "integrity" "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==" + "resolved" "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "astral-regex" "^2.0.0" + "is-fullwidth-code-point" "^3.0.0" + +"source-map-support@^0.5.16", "source-map-support@^0.5.6": + "integrity" "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" + "version" "0.5.20" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map@^0.5.0": + "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + "version" "0.5.7" + +"source-map@^0.6.0": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.7.3": + "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + "version" "0.7.3" + +"source-map@~0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"spdx-correct@^3.0.0": + "integrity" "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==" + "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "spdx-expression-parse" "^3.0.0" + "spdx-license-ids" "^3.0.0" + +"spdx-exceptions@^2.1.0": + "integrity" "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "resolved" "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" + "version" "2.3.0" + +"spdx-expression-parse@^3.0.0": + "integrity" "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==" + "resolved" "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "spdx-exceptions" "^2.1.0" + "spdx-license-ids" "^3.0.0" + +"spdx-license-ids@^3.0.0": + "integrity" "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" + "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz" + "version" "3.0.10" + +"split2@^3.0.0": + "integrity" "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==" + "resolved" "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "readable-stream" "^3.0.0" + +"sprintf-js@~1.0.2": + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"stack-utils@^2.0.3": + "integrity" "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==" + "resolved" "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" + "version" "2.0.5" + dependencies: + "escape-string-regexp" "^2.0.0" + +"string_decoder@^1.1.1": + "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "safe-buffer" "~5.2.0" + +"string-length@^4.0.1": + "integrity" "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==" + "resolved" "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "char-regex" "^1.0.2" + "strip-ansi" "^6.0.0" + +"string-width@^1.0.2 || 2", "string-width@^2.1.0": + "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^4.0.0" + +"string-width@^3.0.0", "string-width@^3.1.0": + "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "emoji-regex" "^7.0.1" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^5.1.0" + +"string-width@^4.1.0": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +"string-width@^4.2.0": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +"string-width@^4.2.3": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +"string.prototype.trimend@^1.0.4": + "integrity" "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==" + "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + +"string.prototype.trimstart@^1.0.4": + "integrity" "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==" + "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" + "version" "1.0.4" dependencies: - safe-buffer "~5.2.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + +"strip-ansi@^4.0.0": + "integrity" "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + "version" "4.0.0" dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@4.0.0, strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" + "ansi-regex" "^3.0.0" + +"strip-ansi@^5.0.0", "strip-ansi@^5.1.0", "strip-ansi@^5.2.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": + "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "ansi-regex" "^5.0.1" -strip-json-comments@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-json-comments@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +"strip-bom@^3.0.0": + "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + "version" "3.0.0" + +"strip-bom@^4.0.0", "strip-bom@4.0.0": + "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + "version" "4.0.0" + +"strip-final-newline@^2.0.0": + "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + "version" "2.0.0" + +"strip-indent@^2.0.0": + "integrity" "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" + "resolved" "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz" + "version" "2.0.0" + +"strip-indent@^3.0.0": + "integrity" "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==" + "resolved" "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "min-indent" "^1.0.0" + +"strip-json-comments@^3.1.0": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" + +"strip-json-comments@^3.1.1": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" + +"strip-json-comments@2.0.1": + "integrity" "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + "version" "2.0.1" + +"strip-json-comments@3.0.1": + "integrity" "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz" + "version" "3.0.1" + +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== +"supports-color@^7.0.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" dependencies: - has-flag "^3.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + "has-flag" "^4.0.0" + +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" dependencies: - has-flag "^3.0.0" + "has-flag" "^4.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" +"supports-color@^8.0.0": + "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + "version" "8.1.1" + dependencies: + "has-flag" "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" +"supports-color@6.0.0": + "integrity" "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "has-flag" "^3.0.0" -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" +"supports-hyperlinks@^2.0.0": + "integrity" "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==" + "resolved" "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "has-flag" "^4.0.0" + "supports-color" "^7.0.0" -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +"symbol-tree@^3.2.4": + "integrity" "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + "resolved" "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" + "version" "3.2.4" + +"table@^6.0.9": + "integrity" "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==" + "resolved" "https://registry.npmjs.org/table/-/table-6.7.2.tgz" + "version" "6.7.2" + dependencies: + "ajv" "^8.0.1" + "lodash.clonedeep" "^4.5.0" + "lodash.truncate" "^4.4.2" + "slice-ansi" "^4.0.0" + "string-width" "^4.2.3" + "strip-ansi" "^6.0.1" + +"terminal-link@^2.0.0": + "integrity" "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==" + "resolved" "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "ansi-escapes" "^4.2.1" + "supports-hyperlinks" "^2.0.0" -table@^6.0.9: - version "6.7.2" - resolved "https://registry.npmjs.org/table/-/table-6.7.2.tgz" - integrity sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g== - dependencies: - ajv "^8.0.1" - lodash.clonedeep "^4.5.0" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== +"test-exclude@^6.0.0": + "integrity" "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==" + "resolved" "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + "version" "6.0.0" dependencies: "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz" - integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - -through2@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== - dependencies: - readable-stream "3" - -"through@>=2.2.7 <3", through@^2.3.6: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.x: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz" - integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -ts-jest@^27.1.4: - version "27.1.4" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.4.tgz" - integrity sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^27.0.0" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "20.x" - -ts-node@^10.8.1: - version "10.8.1" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz" - integrity sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g== + "glob" "^7.1.4" + "minimatch" "^3.0.4" + +"text-extensions@^1.0.0": + "integrity" "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==" + "resolved" "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz" + "version" "1.9.0" + +"text-table@^0.2.0": + "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + "version" "0.2.0" + +"throat@^6.0.1": + "integrity" "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + "resolved" "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" + "version" "6.0.1" + +"through@^2.3.6", "through@>=2.2.7 <3": + "integrity" "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "resolved" "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + "version" "2.3.8" + +"through2@^4.0.0": + "integrity" "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==" + "resolved" "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "readable-stream" "3" + +"tmp@^0.0.33": + "integrity" "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==" + "resolved" "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + "version" "0.0.33" + dependencies: + "os-tmpdir" "~1.0.2" + +"tmpl@1.0.x": + "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + "version" "1.0.5" + +"to-fast-properties@^2.0.0": + "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + "version" "2.0.0" + +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "is-number" "^7.0.0" + +"tough-cookie@^4.0.0": + "integrity" "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==" + "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "psl" "^1.1.33" + "punycode" "^2.1.1" + "universalify" "^0.1.2" + +"tr46@^2.1.0": + "integrity" "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==" + "resolved" "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "punycode" "^2.1.1" + +"trim-newlines@^2.0.0": + "integrity" "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=" + "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz" + "version" "2.0.0" + +"trim-newlines@^3.0.0": + "integrity" "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==" + "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" + "version" "3.0.1" + +"ts-jest@^27.1.4": + "integrity" "sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==" + "resolved" "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.4.tgz" + "version" "27.1.4" + dependencies: + "bs-logger" "0.x" + "fast-json-stable-stringify" "2.x" + "jest-util" "^27.0.0" + "json5" "2.x" + "lodash.memoize" "4.x" + "make-error" "1.x" + "semver" "7.x" + "yargs-parser" "20.x" + +"ts-node@^10.8.1", "ts-node@>=8.0.2", "ts-node@>=9.0.0": + "integrity" "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==" + "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz" + "version" "10.8.1" dependencies: "@cspotcode/source-map-support" "^0.8.0" "@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" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -ts-toolbelt@^6.3.6: - version "6.15.5" - resolved "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz" - integrity sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A== - -tslib@^1.8.1, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslint-config-prettier@^1.18.0: - version "1.18.0" - resolved "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz" - integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -ttypescript@^1.5.12: - version "1.5.12" - resolved "https://registry.npmjs.org/ttypescript/-/ttypescript-1.5.12.tgz" - integrity sha512-1ojRyJvpnmgN9kIHmUnQPlEV1gq+VVsxVYjk/NfvMlHSmYxjK5hEvOOU2MQASrbekTUiUM7pR/nXeCc8bzvMOQ== - dependencies: - resolve ">=1.9.0" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript-transform-paths@^2.0.0: - version "2.2.4" - resolved "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-2.2.4.tgz" - integrity sha512-i+/sgp3rw1ZronMCm2TKGBy1dlvN88Kd8CCb+HWnOE8+Hv0uIVnbC8xM5AD2t1JBCWabEhuH9p3n8DOVi0+R6g== - dependencies: - minimatch "^3.0.4" - -typescript@^4.7.3: - version "4.7.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz" - integrity sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA== - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== - -universalify@^0.1.0, universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -v8-to-istanbul@^8.1.0: - version "8.1.1" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz" - integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== + "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" + "v8-compile-cache-lib" "^3.0.1" + "yn" "3.1.1" + +"ts-toolbelt@^6.3.6": + "integrity" "sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==" + "resolved" "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz" + "version" "6.15.5" + +"tslib@^1.8.1", "tslib@^1.9.0": + "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + "version" "1.14.1" + +"tslint-config-prettier@^1.18.0": + "integrity" "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==" + "resolved" "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz" + "version" "1.18.0" + +"tsutils@^3.21.0": + "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" + "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + "version" "3.21.0" + dependencies: + "tslib" "^1.8.1" + +"ttypescript@^1.5.12": + "integrity" "sha512-1ojRyJvpnmgN9kIHmUnQPlEV1gq+VVsxVYjk/NfvMlHSmYxjK5hEvOOU2MQASrbekTUiUM7pR/nXeCc8bzvMOQ==" + "resolved" "https://registry.npmjs.org/ttypescript/-/ttypescript-1.5.12.tgz" + "version" "1.5.12" + dependencies: + "resolve" ">=1.9.0" + +"type-check@^0.4.0", "type-check@~0.4.0": + "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" + "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + "version" "0.4.0" + dependencies: + "prelude-ls" "^1.2.1" + +"type-check@~0.3.2": + "integrity" "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=" + "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + "version" "0.3.2" + dependencies: + "prelude-ls" "~1.1.2" + +"type-detect@4.0.8": + "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + "version" "4.0.8" + +"type-fest@^0.18.0": + "integrity" "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" + "version" "0.18.1" + +"type-fest@^0.20.2": + "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + "version" "0.20.2" + +"type-fest@^0.21.3": + "integrity" "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + "version" "0.21.3" + +"type-fest@^0.6.0": + "integrity" "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" + "version" "0.6.0" + +"type-fest@^0.8.1": + "integrity" "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + "version" "0.8.1" + +"typedarray-to-buffer@^3.1.5": + "integrity" "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==" + "resolved" "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + "version" "3.1.5" + dependencies: + "is-typedarray" "^1.0.0" + +"typescript-transform-paths@^2.0.0": + "integrity" "sha512-i+/sgp3rw1ZronMCm2TKGBy1dlvN88Kd8CCb+HWnOE8+Hv0uIVnbC8xM5AD2t1JBCWabEhuH9p3n8DOVi0+R6g==" + "resolved" "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-2.2.4.tgz" + "version" "2.2.4" + dependencies: + "minimatch" "^3.0.4" + +"typescript@^4.7.3", "typescript@>=2.7", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=3.2.2", "typescript@>=3.6.5", "typescript@>=3.8 <5.0": + "integrity" "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz" + "version" "4.7.3" + +"unbox-primitive@^1.0.1": + "integrity" "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==" + "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "function-bind" "^1.1.1" + "has-bigints" "^1.0.1" + "has-symbols" "^1.0.2" + "which-boxed-primitive" "^1.0.2" + +"unicode-canonical-property-names-ecmascript@^2.0.0": + "integrity" "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unicode-match-property-ecmascript@^2.0.0": + "integrity" "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==" + "resolved" "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "unicode-canonical-property-names-ecmascript" "^2.0.0" + "unicode-property-aliases-ecmascript" "^2.0.0" + +"unicode-match-property-value-ecmascript@^2.0.0": + "integrity" "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unicode-property-aliases-ecmascript@^2.0.0": + "integrity" "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + "resolved" "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"universalify@^0.1.0", "universalify@^0.1.2": + "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"uri-js@^4.2.2": + "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + "version" "4.4.1" + dependencies: + "punycode" "^2.1.0" + +"util-deprecate@^1.0.1": + "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"v8-compile-cache-lib@^3.0.1": + "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + "resolved" "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + "version" "3.0.1" + +"v8-compile-cache@^2.0.3": + "integrity" "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + "resolved" "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + "version" "2.3.0" + +"v8-to-istanbul@^8.1.0": + "integrity" "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==" + "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz" + "version" "8.1.1" dependencies: "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" + "convert-source-map" "^1.6.0" + "source-map" "^0.7.3" -v8flags@^3.1.1: - version "3.2.0" - resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" - integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== - dependencies: - homedir-polyfill "^1.0.1" +"v8flags@^3.1.1": + "integrity" "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==" + "resolved" "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "homedir-polyfill" "^1.0.1" -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== +"validate-npm-package-license@^3.0.1": + "integrity" "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==" + "resolved" "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + "version" "3.0.4" dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" + "spdx-correct" "^3.0.0" + "spdx-expression-parse" "^3.0.0" -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== +"w3c-hr-time@^1.0.2": + "integrity" "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==" + "resolved" "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" + "version" "1.0.2" dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which-pm-runs@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz" - integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= - -which@1.3.1, which@^1.2.14: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -word-wrap@^1.0.3, word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.7" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@13.1.2, yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - -yargs-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" - integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - -yargs@13.3.2, yargs@^13.3.0: - version "13.3.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^16.1.1, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + "browser-process-hrtime" "^1.0.0" + +"w3c-xmlserializer@^2.0.0": + "integrity" "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==" + "resolved" "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "xml-name-validator" "^3.0.0" + +"walker@^1.0.7": + "integrity" "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=" + "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" + "version" "1.0.7" + dependencies: + "makeerror" "1.0.x" + +"webidl-conversions@^5.0.0": + "integrity" "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" + "version" "5.0.0" + +"webidl-conversions@^6.1.0": + "integrity" "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" + "version" "6.1.0" + +"whatwg-encoding@^1.0.5": + "integrity" "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==" + "resolved" "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "iconv-lite" "0.4.24" + +"whatwg-mimetype@^2.3.0": + "integrity" "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + "resolved" "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" + "version" "2.3.0" + +"whatwg-url@^8.0.0", "whatwg-url@^8.5.0": + "integrity" "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" + "version" "8.7.0" + dependencies: + "lodash" "^4.7.0" + "tr46" "^2.1.0" + "webidl-conversions" "^6.1.0" + +"which-boxed-primitive@^1.0.2": + "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" + "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "is-bigint" "^1.0.1" + "is-boolean-object" "^1.1.0" + "is-number-object" "^1.0.4" + "is-string" "^1.0.5" + "is-symbol" "^1.0.3" + +"which-module@^2.0.0": + "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + "version" "2.0.0" + +"which-pm-runs@^1.0.0": + "integrity" "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" + "resolved" "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz" + "version" "1.0.0" + +"which@^1.2.14": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"which@^2.0.1": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" + +"which@1.3.1": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"wide-align@1.1.3": + "integrity" "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==" + "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "string-width" "^1.0.2 || 2" + +"word-wrap@^1.0.3", "word-wrap@^1.2.3", "word-wrap@~1.2.3": + "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + "version" "1.2.3" + +"wrap-ansi@^5.1.0": + "integrity" "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "ansi-styles" "^3.2.0" + "string-width" "^3.0.0" + "strip-ansi" "^5.0.0" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrappy@1": + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"write-file-atomic@^3.0.0": + "integrity" "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "imurmurhash" "^0.1.4" + "is-typedarray" "^1.0.0" + "signal-exit" "^3.0.2" + "typedarray-to-buffer" "^3.1.5" + +"ws@^7.4.6": + "integrity" "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==" + "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" + "version" "7.5.7" + +"xml-name-validator@^3.0.0": + "integrity" "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + "resolved" "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" + "version" "3.0.0" + +"xmlchars@^2.2.0": + "integrity" "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + "resolved" "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" + "version" "2.2.0" + +"y18n@^4.0.0": + "integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + "version" "4.0.3" + +"y18n@^5.0.5": + "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + "version" "5.0.8" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yaml@^1.10.0": + "integrity" "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + "version" "1.10.2" + +"yargs-parser@^10.0.0": + "integrity" "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz" + "version" "10.1.0" + dependencies: + "camelcase" "^4.1.0" + +"yargs-parser@^13.1.2", "yargs-parser@13.1.2": + "integrity" "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" + "version" "13.1.2" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs-parser@^20.2.2": + "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + "version" "20.2.9" + +"yargs-parser@^20.2.3": + "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + "version" "20.2.9" + +"yargs-parser@20.x": + "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + "version" "20.2.9" + +"yargs-unparser@1.6.0": + "integrity" "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==" + "resolved" "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" + "version" "1.6.0" + dependencies: + "flat" "^4.1.0" + "lodash" "^4.17.15" + "yargs" "^13.3.0" + +"yargs@^13.3.0": + "integrity" "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" + "version" "13.3.2" + dependencies: + "cliui" "^5.0.0" + "find-up" "^3.0.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^3.0.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^13.1.2" + +"yargs@^16.1.1", "yargs@^16.2.0": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yargs@13.3.2": + "integrity" "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" + "version" "13.3.2" + dependencies: + "cliui" "^5.0.0" + "find-up" "^3.0.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^3.0.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^13.1.2" + +"yn@3.1.1": + "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + "version" "3.1.1" + +"yocto-queue@^0.1.0": + "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + "version" "0.1.0" From 7e53d6d440ae15df82374c6db2a43083dc69f005 Mon Sep 17 00:00:00 2001 From: aexol Date: Fri, 8 Jul 2022 12:07:24 +0200 Subject: [PATCH 67/74] :bookmark: release 5.1.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b8ce787a..77133f5d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.1.6", + "version": "5.1.7", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", From dbaad5ec530903ede49e66f1cc4a1b0a45f5edf1 Mon Sep 17 00:00:00 2001 From: alonbdmelio <58134973+alonbdmelio@users.noreply.github.com> Date: Sun, 17 Jul 2022 18:00:22 +0300 Subject: [PATCH 68/74] fix: variable generation with no enums Changed empty ZEUS_VARIABLES to empty object instead of never. --- src/TreeToTS/templates/variableTypes/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TreeToTS/templates/variableTypes/index.ts b/src/TreeToTS/templates/variableTypes/index.ts index 5635e1f0..cc3fabad 100644 --- a/src/TreeToTS/templates/variableTypes/index.ts +++ b/src/TreeToTS/templates/variableTypes/index.ts @@ -12,5 +12,5 @@ export const resolveVariableTypes = (rootNodes: ParserField[]): string => { ) .map((rn) => `\t["${rn.name}"]: ${VALUETYPES}["${rn.name}"];`) .join('\n'); - return `type ${ZEUS_VARIABLES} = ${variableTypes ? `{\n${variableTypes}\n}` : 'never'}`; + return `type ${ZEUS_VARIABLES} = ${variableTypes ? `{\n${variableTypes}\n}` : '{}'}`; }; From ec0ec918337c628fe081286aa318399e4b25c21d Mon Sep 17 00:00:00 2001 From: Kamil Jakrzewski <96.kamil.j@gmail.com> Date: Wed, 10 Aug 2022 11:08:38 +1000 Subject: [PATCH 69/74] Dont decode null values --- src/TreeToTS/functions/generated.ts | 3 +++ src/TreeToTS/functions/new/decodeScalarsInResponse.ts | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 2c34016b..e520fbfb 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -260,6 +260,9 @@ export const traverseResponse = ({ if (Array.isArray(o)) { return o.map((eachO) => ibb(k, eachO, p)); } + if (o == null) { + return o; + } const scalarPathString = p.join(SEPARATOR); const currentScalarString = scalarPaths[scalarPathString]; if (currentScalarString) { diff --git a/src/TreeToTS/functions/new/decodeScalarsInResponse.ts b/src/TreeToTS/functions/new/decodeScalarsInResponse.ts index 10ecf595..6b65d56f 100644 --- a/src/TreeToTS/functions/new/decodeScalarsInResponse.ts +++ b/src/TreeToTS/functions/new/decodeScalarsInResponse.ts @@ -47,6 +47,9 @@ export const traverseResponse = ({ if (Array.isArray(o)) { return o.map((eachO) => ibb(k, eachO, p)); } + if (o == null) { + return o; + } const scalarPathString = p.join(SEPARATOR); const currentScalarString = scalarPaths[scalarPathString]; if (currentScalarString) { From 360ec3472764d63ef49875be9ecd26d63116056c Mon Sep 17 00:00:00 2001 From: Kamil Jakrzewski <96.kamil.j@gmail.com> Date: Mon, 29 Aug 2022 14:14:48 +1000 Subject: [PATCH 70/74] Fix Scalar Path generation for queries with inline fragments --- src/TreeToTS/functions/generated.ts | 15 ++++++-- .../new/decodeScalarsInResponse.spec.ts | 36 +++++++++++++++++++ .../functions/new/prepareScalarPaths.spec.ts | 15 +++++++- .../functions/new/prepareScalarPaths.ts | 15 ++++++-- 4 files changed, 74 insertions(+), 7 deletions(-) diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 2c34016b..40f0f697 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -422,9 +422,18 @@ export const PrepareScalarPaths = ({ ops, returns }: { returns: ReturnTypesType; const keyName = root ? ops[k] : k; return Object.entries(o) .filter(([k]) => k !== '__directives') - .map(([k, v]) => - ibb(k, k, v, [...p, purifyGraphQLKey(keyName || k)], [...pOriginals, purifyGraphQLKey(originalKey)], false), - ) + .map(([k, v]) => { + // Inline fragments shouldn't be added to the path as they aren't a field + const isInlineFragment = originalKey.match(/^...\\s*on/) != null; + return ibb( + k, + k, + v, + isInlineFragment ? p : [...p, purifyGraphQLKey(keyName || k)], + isInlineFragment ? pOriginals : [...pOriginals, purifyGraphQLKey(originalKey)], + false, + ); + }) .reduce((a, b) => ({ ...a, ...b, diff --git a/src/TreeToTS/functions/new/decodeScalarsInResponse.spec.ts b/src/TreeToTS/functions/new/decodeScalarsInResponse.spec.ts index 691bbcd2..98d277d5 100644 --- a/src/TreeToTS/functions/new/decodeScalarsInResponse.spec.ts +++ b/src/TreeToTS/functions/new/decodeScalarsInResponse.spec.ts @@ -34,4 +34,40 @@ describe('Scalars in response get decoded', () => { }); expect(decodedResponse['drawCard']?.['info']).toEqual(cardInfo); }); + + test('Inline fragments get decoded correctly', () => { + const cardInfo = { + power: 9001, + speed: 100, + }; + const response = { + drawCard: { + name: 'Adanos', + info: JSON.stringify(cardInfo), + }, + }; + + const decodedResponse = decodeScalarsInResponse({ + ops: Ops, + response, + returns: ReturnTypes, + initialOp: 'query', + initialZeusQuery: { + drawCard: { + '...on Card': { + name: true, + info: true, + }, + }, + }, + scalars: { + JSON: { + decode: (e) => { + return JSON.parse(e as string) as typeof cardInfo; + }, + }, + }, + }); + expect(decodedResponse['drawCard']?.['info']).toEqual(cardInfo); + }); }); diff --git a/src/TreeToTS/functions/new/prepareScalarPaths.spec.ts b/src/TreeToTS/functions/new/prepareScalarPaths.spec.ts index 4df05797..b0d970e1 100644 --- a/src/TreeToTS/functions/new/prepareScalarPaths.spec.ts +++ b/src/TreeToTS/functions/new/prepareScalarPaths.spec.ts @@ -3,7 +3,7 @@ import { PrepareScalarPaths } from '@/TreeToTS/functions/new/prepareScalarPaths' const builder = PrepareScalarPaths({ returns: ReturnTypes, ops: Ops }); -describe('Test generated function buildQuery', () => { +describe('Test PrepareScalarPaths function', () => { test('Simple query', () => { const matchExact = builder('query', 'Query', { cards: { @@ -18,4 +18,17 @@ describe('Test generated function buildQuery', () => { }; expect(o).toEqual(matchExact); }); + test('Discards inline fragment from path', () => { + const matchExact = builder('query', 'Query', { + cards: { + '... on Card': { + info: true, + }, + }, + }); + const o = { + 'Query|cards|info': 'scalar.JSON', + }; + expect(o).toEqual(matchExact); + }); }); diff --git a/src/TreeToTS/functions/new/prepareScalarPaths.ts b/src/TreeToTS/functions/new/prepareScalarPaths.ts index a7a6bdc8..5f42bcaf 100644 --- a/src/TreeToTS/functions/new/prepareScalarPaths.ts +++ b/src/TreeToTS/functions/new/prepareScalarPaths.ts @@ -63,9 +63,18 @@ export const PrepareScalarPaths = ({ ops, returns }: { returns: ReturnTypesType; const keyName = root ? ops[k] : k; return Object.entries(o) .filter(([k]) => k !== '__directives') - .map(([k, v]) => - ibb(k, k, v, [...p, purifyGraphQLKey(keyName || k)], [...pOriginals, purifyGraphQLKey(originalKey)], false), - ) + .map(([k, v]) => { + // Inline fragments shouldn't be added to the path as they aren't a field + const isInlineFragment = originalKey.match(/^...\s*on/) != null; + return ibb( + k, + k, + v, + isInlineFragment ? p : [...p, purifyGraphQLKey(keyName || k)], + isInlineFragment ? pOriginals : [...pOriginals, purifyGraphQLKey(originalKey)], + false, + ); + }) .reduce((a, b) => ({ ...a, ...b, From fda3aa9df9ee56181ad53569aaab940d661e2ea0 Mon Sep 17 00:00:00 2001 From: aexol Date: Thu, 1 Sep 2022 10:14:27 +0200 Subject: [PATCH 71/74] :bug: fix #331 scalars are now decoded in all ops --- examples/typescript-node/src/index.ts | 1 + examples/typescript-node/src/zeus/apollo.ts | 28 +- examples/typescript-node/src/zeus/const.ts | 86 ++--- examples/typescript-node/src/zeus/index.ts | 355 +++++++++--------- .../typescript-node/src/zeus/reactQuery.ts | 24 +- examples/typescript-node/zeus.graphql | 120 +++--- src/TreeToTS/functions/generated.ts | 2 +- .../new/decodeScalarsInResponse.spec.ts | 32 ++ .../functions/new/decodeScalarsInResponse.ts | 2 +- src/TreeToTS/functions/new/mocks.ts | 3 + yarn.lock | 222 +++++------ 11 files changed, 462 insertions(+), 413 deletions(-) diff --git a/examples/typescript-node/src/index.ts b/examples/typescript-node/src/index.ts index c21271ba..ffae5684 100644 --- a/examples/typescript-node/src/index.ts +++ b/examples/typescript-node/src/index.ts @@ -37,6 +37,7 @@ export const testMutate = () => { ], }), ); + mutate({ variables: { name: 'DDD', diff --git a/examples/typescript-node/src/zeus/apollo.ts b/examples/typescript-node/src/zeus/apollo.ts index 0d167d82..c29db73d 100644 --- a/examples/typescript-node/src/zeus/apollo.ts +++ b/examples/typescript-node/src/zeus/apollo.ts @@ -1,8 +1,8 @@ /* eslint-disable */ import { Zeus, GraphQLTypes, InputType, ValueTypes, OperationOptions, ScalarDefinition } from './index'; -import { gql, useSubscription, useMutation, useQuery, useLazyQuery } from '@apollo/client'; -import type { SubscriptionHookOptions, MutationHookOptions, QueryHookOptions, LazyQueryHookOptions } from '@apollo/client'; +import { gql, useSubscription, useQuery, useLazyQuery, useMutation } from '@apollo/client'; +import type { SubscriptionHookOptions, QueryHookOptions, LazyQueryHookOptions, MutationHookOptions } from '@apollo/client'; export function useTypedSubscription( @@ -18,41 +18,41 @@ export function useTypedSubscription( - mutation: Z | ValueTypes[O], +export function useTypedQuery( + query: Z | ValueTypes[O], options?:{ - apolloOptions?: MutationHookOptions>, + apolloOptions?: QueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useMutation>(gql(Zeus("mutation",mutation, { + return useQuery>(gql(Zeus("query",query, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedQuery( - query: Z | ValueTypes[O], +export function useTypedLazyQuery( + LazyQuery: Z | ValueTypes[O], options?:{ - apolloOptions?: QueryHookOptions>, + apolloOptions?: LazyQueryHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useQuery>(gql(Zeus("query",query, { + return useLazyQuery>(gql(Zeus("query",LazyQuery, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); } -export function useTypedLazyQuery( - LazyQuery: Z | ValueTypes[O], +export function useTypedMutation( + mutation: Z | ValueTypes[O], options?:{ - apolloOptions?: LazyQueryHookOptions>, + apolloOptions?: MutationHookOptions>, operationOptions?: OperationOptions, scalars?: SCLR } ) { - return useLazyQuery>(gql(Zeus("query",LazyQuery, { + return useMutation>(gql(Zeus("mutation",mutation, { operationOptions: options?.operationOptions, scalars: options?.scalars })), options?.apolloOptions); diff --git a/examples/typescript-node/src/zeus/const.ts b/examples/typescript-node/src/zeus/const.ts index 5ed67109..88ce663d 100644 --- a/examples/typescript-node/src/zeus/const.ts +++ b/examples/typescript-node/src/zeus/const.ts @@ -2,66 +2,38 @@ export const AllTypesProps: Record = { SpecialSkills: "enum" as const, - Mutation:{ - addCard:{ - card:"createCard" - } - }, createCard:{ skills:"SpecialSkills" }, - Query:{ - cardById:{ + Card:{ + attack:{ } }, - Card:{ - attack:{ + Query:{ + cardById:{ } }, - JSON: `scalar.JSON` as const + JSON: `scalar.JSON` as const, + Mutation:{ + addCard:{ + card:"createCard" + } + } } export const ReturnTypes: Record = { - S3Object:{ - bucket:"String", - key:"String", - region:"String" - }, Subscription:{ deck:"Card" }, Nameable:{ - "...on SpecialCard": "SpecialCard", - "...on EffectCard": "EffectCard", "...on Card": "Card", "...on CardStack": "CardStack", + "...on SpecialCard": "SpecialCard", + "...on EffectCard": "EffectCard", name:"String" }, - Mutation:{ - addCard:"Card" - }, - ChangeCard:{ - "...on SpecialCard":"SpecialCard", - "...on EffectCard":"EffectCard" - }, - SpecialCard:{ - effect:"String", - name:"String" - }, - EffectCard:{ - effectSize:"Float", - name:"String" - }, - Query:{ - cardById:"Card", - drawCard:"Card", - drawChangeCard:"ChangeCard", - listCards:"Card", - myStacks:"CardStack", - nameables:"Nameable" - }, Card:{ Attack:"Int", Children:"Int", @@ -75,15 +47,43 @@ export const ReturnTypes: Record = { name:"String", skills:"SpecialSkills" }, - JSON: `scalar.JSON` as const, CardStack:{ cards:"Card", name:"String" + }, + Query:{ + cardById:"Card", + drawCard:"Card", + drawChangeCard:"ChangeCard", + listCards:"Card", + myStacks:"CardStack", + nameables:"Nameable" + }, + JSON: `scalar.JSON` as const, + ChangeCard:{ + "...on SpecialCard":"SpecialCard", + "...on EffectCard":"EffectCard" + }, + Mutation:{ + addCard:"Card" + }, + S3Object:{ + bucket:"String", + key:"String", + region:"String" + }, + SpecialCard:{ + effect:"String", + name:"String" + }, + EffectCard:{ + effectSize:"Float", + name:"String" } } export const Ops = { subscription: "Subscription" as const, - mutation: "Mutation" as const, - query: "Query" as const + query: "Query" as const, + mutation: "Mutation" as const } \ No newline at end of file diff --git a/examples/typescript-node/src/zeus/index.ts b/examples/typescript-node/src/zeus/index.ts index 5bc6ac13..dee83c32 100644 --- a/examples/typescript-node/src/zeus/index.ts +++ b/examples/typescript-node/src/zeus/index.ts @@ -282,7 +282,7 @@ export const decodeScalarsInResponse = ({ const scalarPaths = builder(initialOp as string, ops[initialOp], initialZeusQuery); if (scalarPaths) { - const r = traverseResponse({ scalarPaths, resolvers: scalars })('Query', response, ['Query']); + const r = traverseResponse({ scalarPaths, resolvers: scalars })(initialOp as string, response, [ops[initialOp]]); return r; } return response; @@ -301,6 +301,9 @@ export const traverseResponse = ({ if (Array.isArray(o)) { return o.map((eachO) => ibb(k, eachO, p)); } + if (o == null) { + return o; + } const scalarPathString = p.join(SEPARATOR); const currentScalarString = scalarPaths[scalarPathString]; if (currentScalarString) { @@ -463,9 +466,18 @@ export const PrepareScalarPaths = ({ ops, returns }: { returns: ReturnTypesType; const keyName = root ? ops[k] : k; return Object.entries(o) .filter(([k]) => k !== '__directives') - .map(([k, v]) => - ibb(k, k, v, [...p, purifyGraphQLKey(keyName || k)], [...pOriginals, purifyGraphQLKey(originalKey)], false), - ) + .map(([k, v]) => { + // Inline fragments shouldn't be added to the path as they aren't a field + const isInlineFragment = originalKey.match(/^...\s*on/) != null; + return ibb( + k, + k, + v, + isInlineFragment ? p : [...p, purifyGraphQLKey(keyName || k)], + isInlineFragment ? pOriginals : [...pOriginals, purifyGraphQLKey(originalKey)], + false, + ); + }) .reduce((a, b) => ({ ...a, ...b, @@ -538,6 +550,7 @@ export const ResolveFromPath = (props: AllTypesPropsType, returns: ReturnTypesTy const oKey = ops[mappedParts[0].v]; const returnP1 = oKey ? returns[oKey] : returns[mappedParts[0].v]; if (typeof returnP1 === 'object') { + if (!mappedParts[1]) throw new Error(`${mappedParts[0].v} does not take arguments`); const returnP2 = returnP1[mappedParts[1].v]; if (returnP2) { return rpp( @@ -815,34 +828,21 @@ export type ScalarCoders = { type ZEUS_UNIONS = GraphQLTypes["ChangeCard"] export type ValueTypes = { - /** Aws S3 File */ -["S3Object"]: AliasType<{ - bucket?:boolean | `@${string}`, - key?:boolean | `@${string}`, - region?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Subscription"]: AliasType<{ + ["Subscription"]: AliasType<{ deck?:ValueTypes["Card"], __typename?: boolean | `@${string}` }>; ["Nameable"]:AliasType<{ name?:boolean | `@${string}`; - ['...on SpecialCard']?: Omit; - ['...on EffectCard']?: Omit; ['...on Card']?: Omit; ['...on CardStack']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; __typename?: boolean | `@${string}` }>; ["SpecialSkills"]:SpecialSkills; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], - __typename?: boolean | `@${string}` -}>; /** create card inputs
    */ ["createCard"]: { - /** input skills */ - skills?: Array | undefined | null | Variable, /** The name of a card
    */ name: string | Variable, /** Description of a card
    */ @@ -852,33 +852,10 @@ addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes[ /** The attack power
    */ Attack: number | Variable, /** The defense power
    */ - Defense: number | Variable + Defense: number | Variable, + /** input skills */ + skills?: Array | undefined | null | Variable }; - ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], - ["...on EffectCard"] : ValueTypes["EffectCard"] - __typename?: boolean | `@${string}` -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null | Variable},ValueTypes["Card"]], - /** Draw a card
    */ - drawCard?:ValueTypes["Card"], - drawChangeCard?:ValueTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards?:ValueTypes["Card"], - myStacks?:ValueTypes["CardStack"], - nameables?:ValueTypes["Nameable"], - __typename?: boolean | `@${string}` -}>; /** Card used in card game
    */ ["Card"]: AliasType<{ /** The attack power
    */ @@ -901,44 +878,67 @@ attack?: [{ /** Attacked card/card ids
    */ skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["JSON"]:unknown; /** Stack of cards */ ["CardStack"]: AliasType<{ cards?:ValueTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` -}> - } - -export type ResolverInputTypes = { - /** Aws S3 File */ +}>; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null | Variable},ValueTypes["Card"]], + /** Draw a card
    */ + drawCard?:ValueTypes["Card"], + drawChangeCard?:ValueTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards?:ValueTypes["Card"], + myStacks?:ValueTypes["CardStack"], + nameables?:ValueTypes["Nameable"], + __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; + ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], + ["...on EffectCard"] : ValueTypes["EffectCard"] + __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ValueTypes["createCard"] | Variable},ValueTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + /** Aws S3 File */ ["S3Object"]: AliasType<{ bucket?:boolean | `@${string}`, key?:boolean | `@${string}`, region?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["Subscription"]: AliasType<{ + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}> + } + +export type ResolverInputTypes = { + ["Subscription"]: AliasType<{ deck?:ResolverInputTypes["Card"], __typename?: boolean | `@${string}` }>; ["Nameable"]:AliasType<{ name?:boolean | `@${string}`; - ['...on SpecialCard']?: Omit; - ['...on EffectCard']?: Omit; ['...on Card']?: Omit; ['...on CardStack']?: Omit; + ['...on SpecialCard']?: Omit; + ['...on EffectCard']?: Omit; __typename?: boolean | `@${string}` }>; ["SpecialSkills"]:SpecialSkills; - ["Mutation"]: AliasType<{ -addCard?: [{ card: ResolverInputTypes["createCard"]},ResolverInputTypes["Card"]], - __typename?: boolean | `@${string}` -}>; /** create card inputs
    */ ["createCard"]: { - /** input skills */ - skills?: Array | undefined | null, /** The name of a card
    */ name: string, /** Description of a card
    */ @@ -948,34 +948,10 @@ addCard?: [{ card: ResolverInputTypes["createCard"]},ResolverInputTypes["Card"]] /** The attack power
    */ Attack: number, /** The defense power
    */ - Defense: number + Defense: number, + /** input skills */ + skills?: Array | undefined | null }; - ["ChangeCard"]: AliasType<{ - SpecialCard?:ResolverInputTypes["SpecialCard"], - EffectCard?:ResolverInputTypes["EffectCard"], - __typename?: boolean | `@${string}` -}>; - ["SpecialCard"]: AliasType<{ - effect?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["EffectCard"]: AliasType<{ - effectSize?:boolean | `@${string}`, - name?:boolean | `@${string}`, - __typename?: boolean | `@${string}` -}>; - ["Query"]: AliasType<{ -cardById?: [{ cardId?: string | undefined | null},ResolverInputTypes["Card"]], - /** Draw a card
    */ - drawCard?:ResolverInputTypes["Card"], - drawChangeCard?:ResolverInputTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards?:ResolverInputTypes["Card"], - myStacks?:ResolverInputTypes["CardStack"], - nameables?:ResolverInputTypes["Nameable"], - __typename?: boolean | `@${string}` -}>; /** Card used in card game
    */ ["Card"]: AliasType<{ /** The attack power
    */ @@ -998,35 +974,60 @@ attack?: [{ /** Attacked card/card ids
    */ skills?:boolean | `@${string}`, __typename?: boolean | `@${string}` }>; - ["JSON"]:unknown; /** Stack of cards */ ["CardStack"]: AliasType<{ cards?:ResolverInputTypes["Card"], name?:boolean | `@${string}`, __typename?: boolean | `@${string}` +}>; + ["Query"]: AliasType<{ +cardById?: [{ cardId?: string | undefined | null},ResolverInputTypes["Card"]], + /** Draw a card
    */ + drawCard?:ResolverInputTypes["Card"], + drawChangeCard?:ResolverInputTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards?:ResolverInputTypes["Card"], + myStacks?:ResolverInputTypes["CardStack"], + nameables?:ResolverInputTypes["Nameable"], + __typename?: boolean | `@${string}` +}>; + ["JSON"]:unknown; + ["ChangeCard"]: AliasType<{ + SpecialCard?:ResolverInputTypes["SpecialCard"], + EffectCard?:ResolverInputTypes["EffectCard"], + __typename?: boolean | `@${string}` +}>; + ["Mutation"]: AliasType<{ +addCard?: [{ card: ResolverInputTypes["createCard"]},ResolverInputTypes["Card"]], + __typename?: boolean | `@${string}` +}>; + /** Aws S3 File */ +["S3Object"]: AliasType<{ + bucket?:boolean | `@${string}`, + key?:boolean | `@${string}`, + region?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["SpecialCard"]: AliasType<{ + effect?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` +}>; + ["EffectCard"]: AliasType<{ + effectSize?:boolean | `@${string}`, + name?:boolean | `@${string}`, + __typename?: boolean | `@${string}` }> } export type ModelTypes = { - /** Aws S3 File */ -["S3Object"]: { - bucket: string, - key: string, - region: string -}; - ["Subscription"]: { + ["Subscription"]: { deck?: Array | undefined }; - ["Nameable"]: ModelTypes["SpecialCard"] | ModelTypes["EffectCard"] | ModelTypes["Card"] | ModelTypes["CardStack"]; + ["Nameable"]: ModelTypes["Card"] | ModelTypes["CardStack"] | ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; ["SpecialSkills"]:SpecialSkills; - ["Mutation"]: { - /** add Card to Cards database
    */ - addCard: ModelTypes["Card"] -}; /** create card inputs
    */ ["createCard"]: { - /** input skills */ - skills?: Array | undefined, /** The name of a card
    */ name: string, /** Description of a card
    */ @@ -1036,26 +1037,9 @@ export type ModelTypes = { /** The attack power
    */ Attack: number, /** The defense power
    */ - Defense: number -}; - ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; - ["SpecialCard"]: { - effect: string, - name: string -}; - ["EffectCard"]: { - effectSize: number, - name: string -}; - ["Query"]: { - cardById?: ModelTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: ModelTypes["Card"], - drawChangeCard: ModelTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array + Defense: number, + /** input skills */ + skills?: Array | undefined }; /** Card used in card game
    */ ["Card"]: { @@ -1078,45 +1062,60 @@ export type ModelTypes = { name: string, skills?: Array | undefined }; - ["JSON"]:any; /** Stack of cards */ ["CardStack"]: { cards?: Array | undefined, name: string -} - } - -export type GraphQLTypes = { - /** Aws S3 File */ +}; + ["Query"]: { + cardById?: ModelTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: ModelTypes["Card"], + drawChangeCard: ModelTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["JSON"]:any; + ["ChangeCard"]:ModelTypes["SpecialCard"] | ModelTypes["EffectCard"]; + ["Mutation"]: { + /** add Card to Cards database
    */ + addCard: ModelTypes["Card"] +}; + /** Aws S3 File */ ["S3Object"]: { - __typename: "S3Object", - bucket: string, + bucket: string, key: string, region: string }; - ["Subscription"]: { + ["SpecialCard"]: { + effect: string, + name: string +}; + ["EffectCard"]: { + effectSize: number, + name: string +} + } + +export type GraphQLTypes = { + ["Subscription"]: { __typename: "Subscription", deck?: Array | undefined }; ["Nameable"]: { - __typename:"SpecialCard" | "EffectCard" | "Card" | "CardStack", + __typename:"Card" | "CardStack" | "SpecialCard" | "EffectCard", name: string - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; ['...on Card']: '__union' & GraphQLTypes["Card"]; ['...on CardStack']: '__union' & GraphQLTypes["CardStack"]; + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; }; ["SpecialSkills"]: SpecialSkills; - ["Mutation"]: { - __typename: "Mutation", - /** add Card to Cards database
    */ - addCard: GraphQLTypes["Card"] -}; /** create card inputs
    */ ["createCard"]: { - /** input skills */ - skills?: Array | undefined, - /** The name of a card
    */ + /** The name of a card
    */ name: string, /** Description of a card
    */ description: string, @@ -1125,33 +1124,9 @@ export type GraphQLTypes = { /** The attack power
    */ Attack: number, /** The defense power
    */ - Defense: number -}; - ["ChangeCard"]:{ - __typename:"SpecialCard" | "EffectCard" - ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; - ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; -}; - ["SpecialCard"]: { - __typename: "SpecialCard", - effect: string, - name: string -}; - ["EffectCard"]: { - __typename: "EffectCard", - effectSize: number, - name: string -}; - ["Query"]: { - __typename: "Query", - cardById?: GraphQLTypes["Card"] | undefined, - /** Draw a card
    */ - drawCard: GraphQLTypes["Card"], - drawChangeCard: GraphQLTypes["ChangeCard"], - /** list All Cards availble
    */ - listCards: Array, - myStacks?: Array | undefined, - nameables: Array + Defense: number, + /** input skills */ + skills?: Array | undefined }; /** Card used in card game
    */ ["Card"]: { @@ -1175,12 +1150,50 @@ export type GraphQLTypes = { name: string, skills?: Array | undefined }; - ["JSON"]: "scalar" & { name: "JSON" }; /** Stack of cards */ ["CardStack"]: { __typename: "CardStack", cards?: Array | undefined, name: string +}; + ["Query"]: { + __typename: "Query", + cardById?: GraphQLTypes["Card"] | undefined, + /** Draw a card
    */ + drawCard: GraphQLTypes["Card"], + drawChangeCard: GraphQLTypes["ChangeCard"], + /** list All Cards availble
    */ + listCards: Array, + myStacks?: Array | undefined, + nameables: Array +}; + ["JSON"]: "scalar" & { name: "JSON" }; + ["ChangeCard"]:{ + __typename:"SpecialCard" | "EffectCard" + ['...on SpecialCard']: '__union' & GraphQLTypes["SpecialCard"]; + ['...on EffectCard']: '__union' & GraphQLTypes["EffectCard"]; +}; + ["Mutation"]: { + __typename: "Mutation", + /** add Card to Cards database
    */ + addCard: GraphQLTypes["Card"] +}; + /** Aws S3 File */ +["S3Object"]: { + __typename: "S3Object", + bucket: string, + key: string, + region: string +}; + ["SpecialCard"]: { + __typename: "SpecialCard", + effect: string, + name: string +}; + ["EffectCard"]: { + __typename: "EffectCard", + effectSize: number, + name: string } } export const enum SpecialSkills { diff --git a/examples/typescript-node/src/zeus/reactQuery.ts b/examples/typescript-node/src/zeus/reactQuery.ts index f2af0610..8a606e6d 100644 --- a/examples/typescript-node/src/zeus/reactQuery.ts +++ b/examples/typescript-node/src/zeus/reactQuery.ts @@ -1,20 +1,10 @@ /* eslint-disable */ import { ValueTypes, GraphQLTypes, InputType, Chain, OperationOptions, chainOptions } from './index'; -import { useMutation, useQuery } from 'react-query'; -import type { UseMutationOptions, UseQueryOptions } from 'react-query'; +import { useQuery, useMutation } from 'react-query'; +import type { UseQueryOptions, UseMutationOptions } from 'react-query'; -export function useTypedMutation>( - mutationKey: string | unknown[], - mutation: TData | ValueTypes[O], - options?: Omit, 'mutationKey' | 'mutationFn'>, - zeusOptions?: OperationOptions, - host = "https://faker.graphqleditor.com/a-team/olympus/graphql", - hostOptions: chainOptions[1] = {}, -) { - return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); -} export function useTypedQuery>( queryKey: string | unknown[], query: TData | ValueTypes[O], @@ -25,3 +15,13 @@ export function useTypedQuery(queryKey, () => Chain(host, hostOptions)("query")(query, zeusOptions) as Promise, options); } +export function useTypedMutation>( + mutationKey: string | unknown[], + mutation: TData | ValueTypes[O], + options?: Omit, 'mutationKey' | 'mutationFn'>, + zeusOptions?: OperationOptions, + host = "https://faker.graphqleditor.com/a-team/olympus/graphql", + hostOptions: chainOptions[1] = {}, +) { + return useMutation(mutationKey, () => Chain(host, hostOptions)("mutation")(mutation, zeusOptions) as Promise, options); +} diff --git a/examples/typescript-node/zeus.graphql b/examples/typescript-node/zeus.graphql index 01e83e19..3b6f0af4 100644 --- a/examples/typescript-node/zeus.graphql +++ b/examples/typescript-node/zeus.graphql @@ -1,15 +1,3 @@ -"""Aws S3 File""" -type S3Object { - """""" - bucket: String! - - """""" - key: String! - - """""" - region: String! -} - """""" type Subscription { """""" @@ -34,17 +22,8 @@ enum SpecialSkills { FIRE } -"""""" -type Mutation { - """add Card to Cards database
    """ - addCard(card: createCard!): Card! -} - """create card inputs
    """ input createCard { - """input skills""" - skills: [SpecialSkills!] - """The name of a card
    """ name: String! @@ -59,24 +38,54 @@ input createCard { """The defense power
    """ Defense: Int! + + """input skills""" + skills: [SpecialSkills!] } -"""""" -union ChangeCard = SpecialCard | EffectCard +"""Card used in card game
    """ +type Card implements Nameable { + """The attack power
    """ + Attack: Int! + + """
    How many children the greek god had
    """ + Children: Int + + """The defense power
    """ + Defense: Int! + + """Attack other cards on the table , returns Cards after attack
    """ + attack( + """Attacked card/card ids
    """ + cardID: [String!]! + ): [Card!] + + """Put your description here""" + cardImage: S3Object + + """Description of a card
    """ + description: String! -"""""" -type SpecialCard implements Nameable { """""" - effect: String! + id: ID! """""" + image: String! + + """""" + info: JSON! + + """The name of a card
    """ name: String! + + """""" + skills: [SpecialSkills!] } -"""""" -type EffectCard implements Nameable { +"""Stack of cards""" +type CardStack implements Nameable { """""" - effectSize: Float! + cards: [Card!] """""" name: String! @@ -103,52 +112,43 @@ type Query { nameables: [Nameable!]! } -"""Card used in card game
    """ -type Card implements Nameable { - """The attack power
    """ - Attack: Int! - - """
    How many children the greek god had
    """ - Children: Int - - """The defense power
    """ - Defense: Int! - - """Attack other cards on the table , returns Cards after attack
    """ - attack( - """Attacked card/card ids
    """ - cardID: [String!]! - ): [Card!] +"""""" +scalar JSON - """Put your description here""" - cardImage: S3Object +"""""" +union ChangeCard = SpecialCard | EffectCard - """Description of a card
    """ - description: String! +"""""" +type Mutation { + """add Card to Cards database
    """ + addCard(card: createCard!): Card! +} +"""Aws S3 File""" +type S3Object { """""" - id: ID! + bucket: String! """""" - image: String! + key: String! """""" - info: JSON! + region: String! +} - """The name of a card
    """ - name: String! +"""""" +type SpecialCard implements Nameable { + """""" + effect: String! """""" - skills: [SpecialSkills!] + name: String! } """""" -scalar JSON - -"""Stack of cards""" -type CardStack implements Nameable { +type EffectCard implements Nameable { """""" - cards: [Card!] + effectSize: Float! """""" name: String! diff --git a/src/TreeToTS/functions/generated.ts b/src/TreeToTS/functions/generated.ts index 7f751f93..8623ae10 100644 --- a/src/TreeToTS/functions/generated.ts +++ b/src/TreeToTS/functions/generated.ts @@ -241,7 +241,7 @@ export const decodeScalarsInResponse = ({ const scalarPaths = builder(initialOp as string, ops[initialOp], initialZeusQuery); if (scalarPaths) { - const r = traverseResponse({ scalarPaths, resolvers: scalars })('Query', response, ['Query']); + const r = traverseResponse({ scalarPaths, resolvers: scalars })(initialOp as string, response, [ops[initialOp]]); return r; } return response; diff --git a/src/TreeToTS/functions/new/decodeScalarsInResponse.spec.ts b/src/TreeToTS/functions/new/decodeScalarsInResponse.spec.ts index 98d277d5..f1bd5093 100644 --- a/src/TreeToTS/functions/new/decodeScalarsInResponse.spec.ts +++ b/src/TreeToTS/functions/new/decodeScalarsInResponse.spec.ts @@ -34,6 +34,38 @@ describe('Scalars in response get decoded', () => { }); expect(decodedResponse['drawCard']?.['info']).toEqual(cardInfo); }); + test('JSON scalar decoded in response of mutation', () => { + const cardInfo = { + power: 9000, + speed: 100, + }; + const response = { + getCardAndPop: { + name: 'Adanos', + info: JSON.stringify(cardInfo), + }, + }; + const decodedResponse = decodeScalarsInResponse({ + ops: Ops, + response, + returns: ReturnTypes, + initialOp: 'mutation', + initialZeusQuery: { + getCardAndPop: { + name: true, + info: true, + }, + }, + scalars: { + JSON: { + decode: (e) => { + return JSON.parse(e as string) as typeof cardInfo; + }, + }, + }, + }); + expect(decodedResponse['getCardAndPop']?.['info']).toEqual(cardInfo); + }); test('Inline fragments get decoded correctly', () => { const cardInfo = { diff --git a/src/TreeToTS/functions/new/decodeScalarsInResponse.ts b/src/TreeToTS/functions/new/decodeScalarsInResponse.ts index 6b65d56f..b84e0299 100644 --- a/src/TreeToTS/functions/new/decodeScalarsInResponse.ts +++ b/src/TreeToTS/functions/new/decodeScalarsInResponse.ts @@ -28,7 +28,7 @@ export const decodeScalarsInResponse = ({ const scalarPaths = builder(initialOp as string, ops[initialOp], initialZeusQuery); if (scalarPaths) { - const r = traverseResponse({ scalarPaths, resolvers: scalars })('Query', response, ['Query']); + const r = traverseResponse({ scalarPaths, resolvers: scalars })(initialOp as string, response, [ops[initialOp]]); return r; } return response; diff --git a/src/TreeToTS/functions/new/mocks.ts b/src/TreeToTS/functions/new/mocks.ts index 854abfaf..fa426878 100644 --- a/src/TreeToTS/functions/new/mocks.ts +++ b/src/TreeToTS/functions/new/mocks.ts @@ -36,6 +36,9 @@ export const ReturnTypes = { drawCard: 'Card', cards: 'Card', }, + Mutation: { + getCardAndPop: 'Card', + }, Card: { attack: 'Card', info: 'JSON', diff --git a/yarn.lock b/yarn.lock index ef3a58d0..ce96e728 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1294,7 +1294,7 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@marionebl/sander@^0.6.0": - "integrity" "sha1-GViWWHTyS8Ub5Ih1/rUNZC/EH3s=" + "integrity" "sha1-GViWWHTyS8Ub5Ih1/rUNZC/EH3s= sha512-7f3zZddAk92G1opoX/glbDO6YbrzmMAJAw0RJAcvunnV7sR4L9llyBUAABptKoF1Jf37UQ1QTJy5p2H4J4rBNA==" "resolved" "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz" "version" "0.6.1" dependencies: @@ -1661,7 +1661,7 @@ "type-fest" "^0.21.3" "ansi-regex@^3.0.0": - "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= sha512-wFUFA5bg5dviipbQQ32yOQhl6gcJaJXiHE7dvR8VYPG97+J/GNC5FKGepKdEDUFeXRzDxPF1X/Btc8L+v7oqIQ==" "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" "version" "3.0.0" @@ -1722,12 +1722,12 @@ "sprintf-js" "~1.0.2" "array-find-index@^1.0.1": - "integrity" "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + "integrity" "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==" "resolved" "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" "version" "1.0.2" "array-ify@^1.0.0": - "integrity" "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" + "integrity" "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==" "resolved" "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" "version" "1.0.0" @@ -1737,7 +1737,7 @@ "version" "2.1.0" "arrify@^1.0.1": - "integrity" "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "integrity" "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" "resolved" "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" "version" "1.0.1" @@ -1747,7 +1747,7 @@ "version" "2.0.0" "asynckit@^0.4.0": - "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k= sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" "version" "0.4.0" @@ -1818,7 +1818,7 @@ "@babel/helper-define-polyfill-provider" "^0.2.2" "babel-polyfill@6.26.0": - "integrity" "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=" + "integrity" "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==" "resolved" "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz" "version" "6.26.0" dependencies: @@ -1853,7 +1853,7 @@ "babel-preset-current-node-syntax" "^1.0.0" "babel-runtime@^6.23.0", "babel-runtime@^6.26.0": - "integrity" "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=" + "integrity" "sha1-llxwWGaOgrVde/4E/yM3vItWR/4= sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==" "resolved" "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" "version" "6.26.0" dependencies: @@ -1939,21 +1939,21 @@ "get-intrinsic" "^1.0.2" "caller-callsite@^2.0.0": - "integrity" "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=" + "integrity" "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==" "resolved" "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" "version" "2.0.0" dependencies: "callsites" "^2.0.0" "caller-path@^2.0.0": - "integrity" "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=" + "integrity" "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==" "resolved" "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" "version" "2.0.0" dependencies: "caller-callsite" "^2.0.0" "callsites@^2.0.0": - "integrity" "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + "integrity" "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==" "resolved" "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" "version" "2.0.0" @@ -1963,7 +1963,7 @@ "version" "3.1.0" "camelcase-keys@^4.0.0": - "integrity" "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=" + "integrity" "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==" "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz" "version" "4.2.0" dependencies: @@ -1981,7 +1981,7 @@ "quick-lru" "^4.0.1" "camelcase@^4.1.0": - "integrity" "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "integrity" "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==" "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz" "version" "4.1.0" @@ -2058,7 +2058,7 @@ "version" "1.2.2" "cli-cursor@^2.1.0": - "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" + "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==" "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" "version" "2.1.0" dependencies: @@ -2097,7 +2097,7 @@ "shallow-clone" "^3.0.0" "co@^4.6.0": - "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" "version" "4.6.0" @@ -2126,7 +2126,7 @@ "version" "1.1.4" "color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" "version" "1.1.3" @@ -2163,7 +2163,7 @@ "strip-json-comments" "3.0.1" "commondir@^1.0.1": - "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" "version" "1.0.1" @@ -2181,7 +2181,7 @@ "version" "3.6.0" "concat-map@0.0.1": - "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" "version" "0.0.1" @@ -2309,7 +2309,7 @@ "cssom" "~0.3.6" "currently-unhandled@^0.4.1": - "integrity" "sha1-mI3zP+qxke95mmE2nddsF635V+o=" + "integrity" "sha1-mI3zP+qxke95mmE2nddsF635V+o= sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==" "resolved" "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" "version" "0.4.1" dependencies: @@ -2372,7 +2372,7 @@ "ms" "^2.1.1" "decamelize-keys@^1.0.0", "decamelize-keys@^1.1.0": - "integrity" "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=" + "integrity" "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==" "resolved" "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" "version" "1.1.0" dependencies: @@ -2380,7 +2380,7 @@ "map-obj" "^1.0.0" "decamelize@^1.1.0", "decamelize@^1.2.0": - "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" "version" "1.2.0" @@ -2390,7 +2390,7 @@ "version" "10.3.1" "dedent@^0.7.0", "dedent@0.7.0": - "integrity" "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + "integrity" "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" "version" "0.7.0" @@ -2412,12 +2412,12 @@ "object-keys" "^1.0.12" "delayed-stream@~1.0.0": - "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk= sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" "version" "1.0.0" "detect-file@^1.0.0": - "integrity" "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + "integrity" "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==" "resolved" "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" "version" "1.0.0" @@ -2468,7 +2468,7 @@ "webidl-conversions" "^5.0.0" "dot-prop@^3.0.0": - "integrity" "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=" + "integrity" "sha1-G3CK8JSknJoOfbyteQq6U52sEXc= sha512-k4ELWeEU3uCcwub7+dWydqQBRjAjkV9L33HjVRG5Xo2QybI6ja/v+4W73SRi8ubCqJz0l9XsTP1NbewfyqaSlw==" "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz" "version" "3.0.0" dependencies: @@ -2547,7 +2547,7 @@ "version" "3.1.1" "escape-string-regexp@^1.0.5", "escape-string-regexp@1.0.5": - "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" "version" "1.0.5" @@ -2732,12 +2732,12 @@ "strip-final-newline" "^2.0.0" "exit@^0.1.2": - "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" "version" "0.1.2" "expand-tilde@^2.0.0", "expand-tilde@^2.0.2": - "integrity" "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=" + "integrity" "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==" "resolved" "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" "version" "2.0.2" dependencies: @@ -2789,7 +2789,7 @@ "version" "2.1.0" "fast-levenshtein@^2.0.6", "fast-levenshtein@~2.0.6": - "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" "version" "2.0.6" @@ -2808,7 +2808,7 @@ "bser" "2.1.1" "figures@^2.0.0": - "integrity" "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=" + "integrity" "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==" "resolved" "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" "version" "2.0.0" dependencies: @@ -2851,7 +2851,7 @@ "version" "1.1.0" "find-up@^2.0.0": - "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" + "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c= sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==" "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" "version" "2.1.0" dependencies: @@ -2936,7 +2936,7 @@ "universalify" "^0.1.0" "fs.realpath@^1.0.0": - "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" "version" "1.0.0" @@ -2946,7 +2946,7 @@ "version" "1.1.1" "functional-red-black-tree@^1.0.1": - "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" "version" "1.0.1" @@ -3035,7 +3035,7 @@ "path-is-absolute" "^1.0.0" "global-dirs@^0.1.1": - "integrity" "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=" + "integrity" "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==" "resolved" "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" "version" "0.1.1" dependencies: @@ -3051,7 +3051,7 @@ "resolve-dir" "^1.0.0" "global-prefix@^1.0.1": - "integrity" "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=" + "integrity" "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==" "resolved" "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" "version" "1.0.2" dependencies: @@ -3135,7 +3135,7 @@ "version" "1.0.1" "has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0= sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" "version" "3.0.0" @@ -3255,7 +3255,7 @@ "version" "5.1.8" "import-fresh@^2.0.0": - "integrity" "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=" + "integrity" "sha1-2BNVwVYS04bGH53dOSLUMEgipUY= sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==" "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" "version" "2.0.0" dependencies: @@ -3279,12 +3279,12 @@ "resolve-cwd" "^3.0.0" "imurmurhash@^0.1.4": - "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" "version" "0.1.4" "indent-string@^3.0.0": - "integrity" "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" + "integrity" "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==" "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz" "version" "3.2.0" @@ -3294,7 +3294,7 @@ "version" "4.0.0" "inflight@^1.0.4": - "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" "version" "1.0.6" dependencies: @@ -3340,7 +3340,7 @@ "side-channel" "^1.0.4" "is-arrayish@^0.2.1": - "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" "version" "0.2.1" @@ -3391,17 +3391,17 @@ "has-tostringtag" "^1.0.0" "is-directory@^0.3.1": - "integrity" "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + "integrity" "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==" "resolved" "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" "version" "0.3.1" "is-extglob@^2.1.1": - "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" "version" "2.1.1" "is-fullwidth-code-point@^2.0.0": - "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" "version" "2.0.0" @@ -3440,12 +3440,12 @@ "version" "7.0.0" "is-obj@^1.0.0": - "integrity" "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "integrity" "sha1-PkcprB9f3gJc19g6iW2rn09n2w8= sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" "version" "1.0.1" "is-plain-obj@^1.1.0": - "integrity" "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "integrity" "sha1-caUMhCnfync8kqOQpKA7OfzVHT4= sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" "version" "1.1.0" @@ -3489,19 +3489,19 @@ "has-symbols" "^1.0.2" "is-text-path@^1.0.1": - "integrity" "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=" + "integrity" "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==" "resolved" "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" "version" "1.0.1" dependencies: "text-extensions" "^1.0.0" "is-typedarray@^1.0.0": - "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" "version" "1.0.0" "is-utf8@^0.2.1": - "integrity" "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "integrity" "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" "resolved" "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" "version" "0.2.1" @@ -3511,12 +3511,12 @@ "version" "1.0.2" "isexe@^2.0.0": - "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" "version" "2.0.0" "isobject@^3.0.1": - "integrity" "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity" "sha1-TkMekrEalzFjaqH5yNHMvP2reN8= sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" "version" "3.0.1" @@ -4027,7 +4027,7 @@ "version" "2.5.2" "jsesc@~0.5.0": - "integrity" "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "integrity" "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" "version" "0.5.0" @@ -4057,7 +4057,7 @@ "version" "0.3.0" "json-stable-stringify-without-jsonify@^1.0.1": - "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" "version" "1.0.1" @@ -4069,14 +4069,14 @@ "minimist" "^1.2.5" "jsonfile@^4.0.0": - "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" + "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==" "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" "version" "4.0.0" optionalDependencies: "graceful-fs" "^4.1.6" "jsonparse@^1.2.0": - "integrity" "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + "integrity" "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" "resolved" "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" "version" "1.3.1" @@ -4112,7 +4112,7 @@ "type-check" "~0.4.0" "levn@~0.3.0": - "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" + "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==" "resolved" "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" "version" "0.3.0" dependencies: @@ -4120,12 +4120,12 @@ "type-check" "~0.3.2" "lines-and-columns@^1.1.6": - "integrity" "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "integrity" "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ==" "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" "version" "1.1.6" "load-json-file@^4.0.0": - "integrity" "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=" + "integrity" "sha1-L19Fq5HjMhYjT9U62rZo607AmTs= sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==" "resolved" "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" "version" "4.0.0" dependencies: @@ -4135,7 +4135,7 @@ "strip-bom" "^3.0.0" "locate-path@^2.0.0": - "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" + "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==" "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" "version" "2.0.0" dependencies: @@ -4165,22 +4165,22 @@ "p-locate" "^5.0.0" "lodash.clonedeep@^4.5.0": - "integrity" "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + "integrity" "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" "resolved" "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" "version" "4.5.0" "lodash.debounce@^4.0.8": - "integrity" "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity" "sha1-gteb/zCmfEAF/9XiUVMArZyk168= sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" "version" "4.0.8" "lodash.map@^4.5.1": - "integrity" "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" + "integrity" "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==" "resolved" "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz" "version" "4.6.0" "lodash.memoize@4.x": - "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" "version" "4.1.2" @@ -4190,7 +4190,7 @@ "version" "4.6.2" "lodash.truncate@^4.4.2": - "integrity" "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" + "integrity" "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" "resolved" "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" "version" "4.4.2" @@ -4212,12 +4212,12 @@ "chalk" "^2.4.2" "longest@^2.0.1": - "integrity" "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=" + "integrity" "sha1-eB4YMpaqlPbU2RbcM10NF676I/g= sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==" "resolved" "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz" "version" "2.0.1" "loud-rejection@^1.0.0": - "integrity" "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" + "integrity" "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==" "resolved" "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" "version" "1.6.0" dependencies: @@ -4252,19 +4252,19 @@ "version" "1.3.6" "makeerror@1.0.x": - "integrity" "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=" + "integrity" "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= sha512-M/XvMZ6oK4edXjvg/ZYyzByg8kjpVrF/m0x3wbhOlzJfsQgFkqP1rJnLnJExOcslmLSSeLiN6NmF+cBoKJHGTg==" "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" "version" "1.0.11" dependencies: "tmpl" "1.0.x" "map-obj@^1.0.0": - "integrity" "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + "integrity" "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==" "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" "version" "1.0.1" "map-obj@^2.0.0": - "integrity" "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=" + "integrity" "sha1-plzSkIepJZi4eRJXpSPgISIqwfk= sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==" "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz" "version" "2.0.0" @@ -4432,7 +4432,7 @@ "version" "2.1.2" "mute-stream@0.0.7": - "integrity" "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + "integrity" "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==" "resolved" "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" "version" "0.0.7" @@ -4442,7 +4442,7 @@ "version" "0.2.12" "natural-compare@^1.4.0": - "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" "version" "1.4.0" @@ -4460,7 +4460,7 @@ "version" "2.6.1" "node-int64@^0.4.0": - "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" "version" "0.4.0" @@ -4556,14 +4556,14 @@ "es-abstract" "^1.18.0-next.2" "once@^1.3.0": - "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" "version" "1.4.0" dependencies: "wrappy" "1" "onetime@^2.0.0": - "integrity" "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" + "integrity" "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==" "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" "version" "2.0.1" dependencies: @@ -4606,7 +4606,7 @@ "word-wrap" "^1.2.3" "os-tmpdir@~1.0.2": - "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" "version" "1.0.2" @@ -4632,7 +4632,7 @@ "yocto-queue" "^0.1.0" "p-locate@^2.0.0": - "integrity" "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" + "integrity" "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==" "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" "version" "2.0.0" dependencies: @@ -4660,7 +4660,7 @@ "p-limit" "^3.0.2" "p-try@^1.0.0": - "integrity" "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "integrity" "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==" "resolved" "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" "version" "1.0.0" @@ -4677,7 +4677,7 @@ "callsites" "^3.0.0" "parse-json@^4.0.0": - "integrity" "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=" + "integrity" "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==" "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" "version" "4.0.0" dependencies: @@ -4705,7 +4705,7 @@ "lines-and-columns" "^1.1.6" "parse-passwd@^1.0.0": - "integrity" "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "integrity" "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" "resolved" "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" "version" "1.0.0" @@ -4715,7 +4715,7 @@ "version" "6.0.1" "path-exists@^3.0.0": - "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" "version" "3.0.0" @@ -4725,7 +4725,7 @@ "version" "4.0.0" "path-is-absolute@^1.0.0": - "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" "version" "1.0.1" @@ -4757,7 +4757,7 @@ "version" "2.3.0" "pify@^3.0.0": - "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" "version" "3.0.0" @@ -4805,7 +4805,7 @@ "version" "1.2.1" "prelude-ls@~1.1.2": - "integrity" "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "integrity" "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" "version" "1.1.2" @@ -4854,7 +4854,7 @@ "version" "2.1.1" "q@^1.5.1": - "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" "resolved" "https://registry.npmjs.org/q/-/q-1.5.1.tgz" "version" "1.5.1" @@ -4864,7 +4864,7 @@ "version" "1.2.3" "quick-lru@^1.0.0": - "integrity" "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=" + "integrity" "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==" "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz" "version" "1.1.0" @@ -4879,7 +4879,7 @@ "version" "17.0.2" "read-pkg-up@^3.0.0": - "integrity" "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=" + "integrity" "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==" "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz" "version" "3.0.0" dependencies: @@ -4896,7 +4896,7 @@ "type-fest" "^0.8.1" "read-pkg@^3.0.0": - "integrity" "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=" + "integrity" "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==" "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" "version" "3.0.0" dependencies: @@ -4931,7 +4931,7 @@ "picomatch" "^2.0.4" "redent@^2.0.0": - "integrity" "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=" + "integrity" "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==" "resolved" "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz" "version" "2.0.0" dependencies: @@ -4959,7 +4959,7 @@ "version" "1.4.2" "regenerator-runtime@^0.10.5": - "integrity" "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + "integrity" "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==" "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz" "version" "0.10.5" @@ -5010,7 +5010,7 @@ "jsesc" "~0.5.0" "require-directory@^2.1.1": - "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I= sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" "version" "2.1.1" @@ -5032,7 +5032,7 @@ "resolve-from" "^5.0.0" "resolve-dir@^1.0.0", "resolve-dir@^1.0.1": - "integrity" "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=" + "integrity" "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==" "resolved" "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" "version" "1.0.1" dependencies: @@ -5040,7 +5040,7 @@ "global-modules" "^1.0.0" "resolve-from@^3.0.0": - "integrity" "sha1-six699nWiBvItuZTM17rywoYh0g=" + "integrity" "sha1-six699nWiBvItuZTM17rywoYh0g= sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" "version" "3.0.0" @@ -5075,7 +5075,7 @@ "path-parse" "^1.0.6" "restore-cursor@^2.0.0": - "integrity" "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" + "integrity" "sha1-n37ih/gv0ybU/RYpI9YhKe7g368= sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==" "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" "version" "2.0.0" dependencies: @@ -5150,7 +5150,7 @@ "xmlchars" "^2.2.0" "semver-compare@^1.0.0": - "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w= sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" "version" "1.0.0" @@ -5220,7 +5220,7 @@ "lru-cache" "^6.0.0" "set-blocking@^2.0.0": - "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc= sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" "version" "2.0.0" @@ -5285,7 +5285,7 @@ "source-map" "^0.6.0" "source-map@^0.5.0": - "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" "version" "0.5.7" @@ -5343,7 +5343,7 @@ "readable-stream" "^3.0.0" "sprintf-js@~1.0.2": - "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" "version" "1.0.3" @@ -5430,7 +5430,7 @@ "define-properties" "^1.1.3" "strip-ansi@^4.0.0": - "integrity" "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" + "integrity" "sha1-qEeQIusaw2iocTibY1JixQXuNo8= sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==" "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" "version" "4.0.0" dependencies: @@ -5451,7 +5451,7 @@ "ansi-regex" "^5.0.1" "strip-bom@^3.0.0": - "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" "version" "3.0.0" @@ -5466,7 +5466,7 @@ "version" "2.0.0" "strip-indent@^2.0.0": - "integrity" "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" + "integrity" "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==" "resolved" "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz" "version" "2.0.0" @@ -5488,7 +5488,7 @@ "version" "3.1.1" "strip-json-comments@2.0.1": - "integrity" "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity" "sha1-PFMZQukIwml8DsNEhYwobHygpgo= sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" "version" "2.0.1" @@ -5580,7 +5580,7 @@ "version" "1.9.0" "text-table@^0.2.0": - "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" "version" "0.2.0" @@ -5590,7 +5590,7 @@ "version" "6.0.1" "through@^2.3.6", "through@>=2.2.7 <3": - "integrity" "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity" "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" "resolved" "https://registry.npmjs.org/through/-/through-2.3.8.tgz" "version" "2.3.8" @@ -5614,7 +5614,7 @@ "version" "1.0.5" "to-fast-properties@^2.0.0": - "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" "version" "2.0.0" @@ -5642,7 +5642,7 @@ "punycode" "^2.1.1" "trim-newlines@^2.0.0": - "integrity" "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=" + "integrity" "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==" "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz" "version" "2.0.0" @@ -5721,7 +5721,7 @@ "prelude-ls" "^1.2.1" "type-check@~0.3.2": - "integrity" "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=" + "integrity" "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==" "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" "version" "0.3.2" dependencies: @@ -5822,7 +5822,7 @@ "punycode" "^2.1.0" "util-deprecate@^1.0.1": - "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" "version" "1.0.2" @@ -5875,7 +5875,7 @@ "xml-name-validator" "^3.0.0" "walker@^1.0.7": - "integrity" "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=" + "integrity" "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= sha512-cF4je9Fgt6sj1PKfuFt9jpQPeHosM+Ryma/hfY9U7uXGKM7pJCsF0v2r55o+Il54+i77SyYWetB4tD1dEygRkw==" "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" "version" "1.0.7" dependencies: @@ -5924,12 +5924,12 @@ "is-symbol" "^1.0.3" "which-module@^2.0.0": - "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" "version" "2.0.0" "which-pm-runs@^1.0.0": - "integrity" "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" + "integrity" "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= sha512-SIqZVnlKPt/s5tOArosKIvGC1bwpoj6w5Q3SmimaVOOU8YFsjuMvvZO1MbKCbO8D6VV0XkROC8jrXJNYa1xBDA==" "resolved" "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz" "version" "1.0.0" @@ -5985,7 +5985,7 @@ "strip-ansi" "^6.0.0" "wrappy@1": - "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" "version" "1.0.2" From 583a81bb069310f90508e0214eb769adaa6349f9 Mon Sep 17 00:00:00 2001 From: aexol Date: Thu, 1 Sep 2022 10:15:42 +0200 Subject: [PATCH 72/74] :bookmark: 5.1.8 fixed many bugs and merged prs --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 77133f5d..065cae14 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "graphql-zeus", - "version": "5.1.7", + "version": "5.1.8", "private": false, "license": "MIT", "description": "Generate Client Libary for GraphQL Schema", From f298564e30781bff9145e23860d1d114a5154667 Mon Sep 17 00:00:00 2001 From: Valentin Hervieu Date: Wed, 7 Sep 2022 18:28:42 +0200 Subject: [PATCH 73/74] fix: use null instead of undefined for non-required fields --- src/TreeToTS/templates/shared/field.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/TreeToTS/templates/shared/field.ts b/src/TreeToTS/templates/shared/field.ts index f473b696..8bc71d15 100644 --- a/src/TreeToTS/templates/shared/field.ts +++ b/src/TreeToTS/templates/shared/field.ts @@ -10,13 +10,13 @@ export const resolveFieldType = ( isRequired = false, ): string => { if (fType.type === Options.name) { - return fn(isRequired ? name : `${name} | undefined`); + return fn(isRequired ? name : `${name} | null`); } if (fType.type === Options.array) { return resolveFieldType( name, fType.nest, - isRequired ? (x) => `Array<${fn(x)}>` : (x) => `Array<${fn(x)}> | undefined`, + isRequired ? (x) => `Array<${fn(x)}>` : (x) => `Array<${fn(x)}> | null`, false, ); } @@ -28,7 +28,7 @@ export const resolveFieldType = ( export const resolveField = (f: ParserField, t = TYPES): string => { const isNullType = (type: string): string => { - return f.type.fieldType.type === Options.required ? `: ${type}` : `?: ${type}`; + return f.type.fieldType.type === Options.required ? `: ${type}` : `: ${type}`; }; return `${plusDescription(f.description, '\t')}\t${f.name}${isNullType( resolveFieldType(toTypeScriptPrimitive(getTypeName(f.type.fieldType), t), f.type.fieldType), From 7b2c6cb31aee5c4457049bdd4a65b8526232b9c4 Mon Sep 17 00:00:00 2001 From: Valentin Hervieu Date: Wed, 7 Sep 2022 18:36:25 +0200 Subject: [PATCH 74/74] chore: use literal union type instead of enums In order to be able to generate two versions of the codegen: - one for the backend generated from the "admin" permissions - one for the frontend generated from the "org_owner" permissions we need to replace enums by literals unions so that we can share some code between the 2 SDKs. Indeed, when using enums, Typescript complains about not having any overlap between enums even if they have the same values: image ([code](https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBMAdgVwLYJag+gZwJapgA2wcA3gLABQccAxgIY7ACMcAvHAOSPMtcAaarV7AATB26ixg6gF9qoSLAxpV2fIRJYJlGvSatJPQ-yH7px6bKoKq1OhEQ4IJAHREIAcwAUSNLgExMBuomzsEeqBWsA6AJRAA)) While string literals unions can simply be compared: image Another benefit of using string literals unions is that they are non generated to the build output. --- src/TreeToTS/templates/modelTypes/index.ts | 3 ++- src/TreeToTS/templates/returnedTypes/enum.ts | 7 ++++--- src/TreeToTS/templates/returnedTypes/index.ts | 3 ++- src/TreeToTS/templates/shared/enums.ts | 6 ++++++ src/TreeToTS/templates/valueTypes/index.ts | 3 ++- src/TreeToTS/templates/valueTypes/inputTypes/index.ts | 3 ++- 6 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 src/TreeToTS/templates/shared/enums.ts diff --git a/src/TreeToTS/templates/modelTypes/index.ts b/src/TreeToTS/templates/modelTypes/index.ts index a50d184c..182b5fc0 100644 --- a/src/TreeToTS/templates/modelTypes/index.ts +++ b/src/TreeToTS/templates/modelTypes/index.ts @@ -1,6 +1,7 @@ import { plusDescription } from '@/TreeToTS/templates/shared/description'; import { resolveField } from '@/TreeToTS/templates/shared/field'; import { ParserField, TypeSystemDefinition, TypeDefinition } from 'graphql-js-tree'; +import { toTypeNameFromEnum } from '../shared/enums'; export const MODEL_TYPES = 'ModelTypes'; @@ -9,7 +10,7 @@ const resolveTypeFromRoot = (i: ParserField, rootNodes: ParserField[]): string = return ''; } if (i.data.type === TypeDefinition.EnumTypeDefinition) { - return `["${i.name}"]:${i.name}`; + return `["${i.name}"]:${toTypeNameFromEnum(i.name)}`; } if (i.data.type === TypeDefinition.ScalarTypeDefinition) { return `${plusDescription(i.description)}["${i.name}"]:any`; diff --git a/src/TreeToTS/templates/returnedTypes/enum.ts b/src/TreeToTS/templates/returnedTypes/enum.ts index cfe17ed9..3929e05b 100644 --- a/src/TreeToTS/templates/returnedTypes/enum.ts +++ b/src/TreeToTS/templates/returnedTypes/enum.ts @@ -1,11 +1,12 @@ import { plusDescription } from '@/TreeToTS/templates/shared/description'; import { ParserField } from 'graphql-js-tree'; +import { toTypeNameFromEnum } from '../shared/enums'; export const resolveEnum = (i: ParserField): string => { if (!i.args) { throw new Error('Empty enum error'); } - return `${plusDescription(i.description)}export const enum ${i.name} {\n${i.args - .map((f) => `\t${f.name} = "${f.name}"`) - .join(',\n')}\n}`; + const typeName = toTypeNameFromEnum(i.name); + const stringLiterals = i.args.map((f) => `'${f.name}'`).join(' | '); + return `${plusDescription(i.description)}export type ${typeName} = ${stringLiterals}\n`; }; diff --git a/src/TreeToTS/templates/returnedTypes/index.ts b/src/TreeToTS/templates/returnedTypes/index.ts index 99a5219f..aef256c5 100644 --- a/src/TreeToTS/templates/returnedTypes/index.ts +++ b/src/TreeToTS/templates/returnedTypes/index.ts @@ -4,11 +4,12 @@ import { resolveUnionMember } from '@/TreeToTS/templates/returnedTypes/unionMemb import { plusDescription } from '@/TreeToTS/templates/shared/description'; import { resolveField } from '@/TreeToTS/templates/shared/field'; import { ParserField, TypeDefinition, TypeSystemDefinition, Helpers } from 'graphql-js-tree'; +import { toTypeNameFromEnum } from '../shared/enums'; const resolveType = ({ data, name, args }: ParserField, rootNodes: ParserField[]) => { switch (data.type) { case TypeDefinition.EnumTypeDefinition: - return `["${name}"]: ${name}`; + return `["${name}"]: ${toTypeNameFromEnum(name)}`; case TypeDefinition.InputObjectTypeDefinition: return `["${name}"]: {\n\t${args.map((f) => resolveField(f)).join(',\n')}\n}`; diff --git a/src/TreeToTS/templates/shared/enums.ts b/src/TreeToTS/templates/shared/enums.ts new file mode 100644 index 00000000..fb5e572f --- /dev/null +++ b/src/TreeToTS/templates/shared/enums.ts @@ -0,0 +1,6 @@ +export const toTypeNameFromEnum = (enumName: string) => { + return enumName + .split('_') + .map((part) => `${part[0].toUpperCase()}${part.slice(1).toLowerCase()}`) + .join(''); +}; diff --git a/src/TreeToTS/templates/valueTypes/index.ts b/src/TreeToTS/templates/valueTypes/index.ts index 1a24ac66..92b1b23a 100644 --- a/src/TreeToTS/templates/valueTypes/index.ts +++ b/src/TreeToTS/templates/valueTypes/index.ts @@ -3,6 +3,7 @@ import { ParserField, TypeSystemDefinition, Helpers, TypeDefinition, getTypeName import { createValueType, resolveArg, resolveValueField } from '@/TreeToTS/templates/valueTypes/arg'; import { plusDescription } from '@/TreeToTS/templates/shared/description'; import { VALUETYPES } from '@/TreeToTS/templates/valueTypes/models'; +import { toTypeNameFromEnum } from '../shared/enums'; const AliasType = (code: string): string => `AliasType<${code}>`; const resolveValueTypeFromRoot = (i: ParserField, rootNodes: ParserField[], enumsAndScalars: string[]): string => { @@ -19,7 +20,7 @@ const resolveValueTypeFromRoot = (i: ParserField, rootNodes: ParserField[], enum )}`; } if (i.data.type === TypeDefinition.EnumTypeDefinition) { - return `["${i.name}"]:${i.name}`; + return `["${i.name}"]:${toTypeNameFromEnum(i.name)}`; } if (i.data.type === TypeDefinition.InputObjectTypeDefinition) { return `["${i.name}"]: {\n${i.args.map((f) => resolveArg(f)).join(',\n')}\n}`; diff --git a/src/TreeToTS/templates/valueTypes/inputTypes/index.ts b/src/TreeToTS/templates/valueTypes/inputTypes/index.ts index 1345924f..9bf2af43 100644 --- a/src/TreeToTS/templates/valueTypes/inputTypes/index.ts +++ b/src/TreeToTS/templates/valueTypes/inputTypes/index.ts @@ -3,6 +3,7 @@ import { ParserField, TypeSystemDefinition, Helpers, TypeDefinition } from 'grap import { createInputType, resolveInputArg, resolveInputField } from '@/TreeToTS/templates/valueTypes/inputTypes/arg'; import { plusDescription } from '@/TreeToTS/templates/shared/description'; import { INPUTTYPES } from '@/TreeToTS/templates/valueTypes/models'; +import { toTypeNameFromEnum } from '../../shared/enums'; const AliasType = (code: string): string => `AliasType<${code}>`; const resolveValueTypeFromRoot = (i: ParserField, rootNodes: ParserField[], enumsAndScalars: string[]): string => { @@ -10,7 +11,7 @@ const resolveValueTypeFromRoot = (i: ParserField, rootNodes: ParserField[], enum return `["${i.name}"]:unknown`; } if (i.data.type === TypeDefinition.EnumTypeDefinition) { - return `["${i.name}"]:${i.name}`; + return `["${i.name}"]:${toTypeNameFromEnum(i.name)}`; } if (i.data.type === TypeDefinition.InputObjectTypeDefinition) { return `["${i.name}"]: {\n${i.args.map((f) => resolveInputArg(f)).join(',\n')}\n}`;